这是我的web.xml文件:
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
<web-app xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”
version=”2.4”>
<servlet>
<servlet-name>Chapter1 Servlet</servlet-name>
<servlet-class>Ch1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chapter1 Servlet</servlet-name>
<url-pattern>/Serv1</url-pattern>
</servlet-mapping>
</web-app>
我有一个Ch1Servlet.java文件,如下所示:
import javax.servlet.http.*;
import java.io.*;
public class Ch1Servlet extends HttpServlet {
private static final long serialVersionUID = 5778266762215708858L;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException {
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println("<html> " +
"<body>" +
"<h1 align=center>HF\'s Chapter1 Servlet</h1>" +
"<br>" + today + "</body>" + "</html>");
}
}
我编译了这个类,并将它放在WEB-INF / classes下。
这是我的目录结构:
ch1
WEB-INF
web.xml
classes
Ch1Servlet.class
当我尝试访问http://localhost:8080/ch1/Serv1时,我得到了这个:
description请求的资源(/ ch1 / Serv1)不可用。
任何人都可以提供一些指导,如何克服这个问题?
答案 0 :(得分:0)
您使用的是什么IDE?例如,如果您在创建项目时使用了Eclipse
,则可以选择更改应用程序上下文名称。这样,虽然您的项目名称为ch1
,但您可能需要在浏览器中输入其他地址。
答案 1 :(得分:0)
就像所有其他Java类一样,您希望将其自身公开地显示在包中的其他类中,您需要将servlet类放在包中。这样任何体面的容器都可以找到并加载它。无包装servlet仅适用于某些版本的Tomcat以及某些JDK版本。你不想依赖它。
无关,请确保您正在阅读正确的最新书籍/教程。您的web.xml
(在语法上无效)指定旧的Servlet 2.4版本,该版本已在5年前升级。我建议从our Servlets wiki page开始。它包含一些具体的Hello World示例以及页脚中的几个优秀(和最新)教程。