我在执行Servlet时遇到404 Resource not found错误任何人都可以纠正它吗?

时间:2015-10-30 16:16:31

标签: java servlets

以下是我的Servlet代码:

import javax.servlet.*;
    import java.io.*;

    public class HelloWorldServlet extends GenericServlet
    {
       public void service(ServletRequest request,ServletResponse response)throws ServletException,IOException
       {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println("<HTML>");
            out.println("<BODY BGCOLOR = yellow>");
            out.println("<H1>Hello Web World!</H1>");
            out.println("<BODY>");
            out.println("</HTML>");
            out.close();
        }
    }

下面是web.xml:

<web-app>
   <servlet>
      <servlet-name>HelloWorldServlet</servlet-name>
      <servlet-class>HelloWorldServlet</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>HelloWorldServlet</servlet-name>
       <url-pattern>/hello</url-pattern>
   </servlet-mapping>
</web-app>

我将web.xml放在WEB-INF文件夹中。但即使它显示资源未找到错误。

2 个答案:

答案 0 :(得分:1)

如果你打出正确的网址,你会很好。
在我的情况下http://localhost:8080/MyWebapp/hello工作。

Note - 如果你的servlet在一个包中,那么在你的web.xml中使用这样的包指定classname。

   <servlet>
      <servlet-name>HelloWorldServlet</servlet-name>
      <servlet-class>your.package.HelloWorldServlet</servlet-class>
   </servlet>

答案 1 :(得分:1)

&#34;我将web.xml放在WEB-INF文件夹中。但即使它显示资源未找到错误。&#34;

web.xml文件必须位于WEB-INF文件夹中。

<servlet-class> HelloWorldServlet </servlet-class>

在内部标记中,您必须指定完全限定的类路径(包括包名称)。

作为惯例,我们不会对<servlet-name><servlet-class>使用相同的名称。使用映射的整个目的将毫无价值。我们为 servlet-name 使用了另一个名称,该名称将在客户端的浏览器中显示。