2016-10-19 3 views
1

このサーブレットを試してみました。今はJRE v1.7とTomcat v7でJava EE用Keplerを使用しています。以下は私のJavaソースとhtmlです - 問題はdoGetメソッド自体と思っていますが、ファイルパスは正しく指定されていると思うので空白のページを返しています。問題はフォームアクションであるかもしれませんが - 私は完全に日食に慣れています。送信ボタンをクリックしたときにhello worldのJavaサーブレットで空白のページを返す

<!DOCTYPE html> 
    <html> 
     <head> <meta charset="ISO-8859-1"> 
      <title>Insert title here</title> 
     </head> 
    <body> 
     <form action="/HelloWorld/HelloServlet" method="get"> 
      <input type="submit" value="go to hello servlet"/> 
     </form> 
    </body> 
    </html>` 

HelloServaled.java

package com.tutorials.servlets; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class HelloServlet 
*/ 
@WebServlet("/HelloServlet") 
public class HelloServlet extends HttpServlet { 


    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public HelloServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 
    /* @see Servlet#destroy() 
    */ 
    public void destroy() { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#service(HttpServletRequest request,                           >  HttpServletResponse response) 
    */ 
    protected void service(HttpServletRequest request, HttpServletResponse >  response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request,       >  HttpServletResponse response) 
    */ 

    protected void doGet(HttpServletRequest request, HttpServletResponse   >    response) throws ServletException, IOException { 


      PrintWriter out = response.getWriter(); 
      out.println("I am in go get mehtod"); 

     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request,           >  HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse    >  response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doPut(HttpServletRequest, HttpServletResponse) 
    */ 
    protected void doPut(HttpServletRequest request, HttpServletResponse     >  response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

} 
+0

この 置き換え、<フォームアクションを= "/ HelloWorldの/ HelloServlet" メソッド= "GET"> <フォームアクションで のを=」/HelloServlet "method =" get "> つまり、フォームアクションタグからHelloWorldを削除します。 – Abhishekkumar

答えて

0

あなたの主な問題は、フォームのaction属性は、サーブレットのマッピングとは異なるものの間のミスマッチです。

注釈:(@WebServlet("/HelloServlet"))は、アプリケーションサーバに「/ HelloServlet」へのリクエストをリッスンするように指示しています(例:http://eample.com/HelloServlet)。

あなたのフォームが、一方で、それはアクションはPOSTリクエストがhttp://example.com/HelloWorld/HelloServlet

が、ブラウザポストは、アプリケーションがそれを処理するとき、どのようにそれが必要になっていることを意味し、/HelloWorld/HelloServletに設定されています持っている、それはしていませんサーブレットが何かを聞いていないからです。

関連する問題