2

我有一个名为 HelloServlet 的 servlet..

    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/- 我制作了 servlet 映射(我将 url-pattern 作为/hi)和它的 servlet 条目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

...这很奇怪,因为我的文件中既有方法doPost又有doGet方法HelloServlet.class。因此,即使doGet不支持,我也有 doPost 方法来处理 POST,但它仍然无法正常工作。

4

2 回答 2

8
 public void doGet(ServletRequest request, ServletResponse response)

那应该是 HttpServletRequest 和 HttpServletResponse,就像在 doPost 中一样。

始终使用@Override,它会告诉你这个错误。

于 2012-04-08T00:04:43.293 回答
0

您的 servlet java 类似乎没有包。对于运行 throw main 方法的普通 java 程序,如果没有指定包,则 java 类在默认包中。但是,对于 Web 应用程序,您需要在 web.xml 中指定包名称。

于 2012-04-08T00:04:58.057 回答