以下是我的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文件夹中。但即使它显示资源未找到错误。
答案 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 使用了另一个名称,该名称将在客户端的浏览器中显示。