2

HelloServletという名前のサーブレットがあります。

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class HelloServlet extends HttpServlet
    {
public void doGet(ServletRequest request, ServletResponse response)
throws ServletException, IOException
{


        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.println("<html>");
        pw.println("<head>");
        pw.println("<title> Hello World </title>");
        pw.println("</head>");
        pw.println("<body>");
        pw.println("<h1> Hello, World!</h1>");
        pw.println("</body>");
        pw.println("</html>");
        pw.close();




}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
    doGet(request, response);
}
    }

それをファイルにコンパイル.classし、tomcatディレクトリにC:/tomcat/webapps/ALTest1/WEB-INF/classes/配置します-サーブレットマッピング(url-patternをとして配置/hi)とそのサーブレットエントリを作成しましたC:/tomcat/webapps/ALTest1/WEB-INF/web.xml

すべて正常に動作しますが、ブラウザにアクセスしてアクセスすると、http://localhost:8080/ALTest1/hi次のようなエラーメッセージが表示されます。

HTTP STATUS 405 - HTTP METHOD GET is not supported by this URL

...ファイルに両方doPostdoGetメソッドがあるので、これは奇妙です。HelloServlet.classしたがって、doGetサポートされていない場合でも、POSTを処理するdoPostメソッドがありますが、それでも機能しません。

4

2 に答える 2

8
 public void doGet(ServletRequest request, ServletResponse response)

これは、doPostの場合と同様に、HttpServletRequestとHttpServletResponseである必要があります。

常に@Overrideを使用してください。これにより、このエラーについて通知されます。

于 2012-04-08T00:04:43.293 に答える
0

サーブレット Java クラスのパッケージがないようです。throw main メソッドを実行している通常の Java プログラムでは、パッケージが指定されていない場合、Java クラスはデフォルト パッケージにあります。ただし、Web アプリケーションの場合は、web.xml でパッケージ名を指定する必要があります。

于 2012-04-08T00:04:58.057 に答える