【发布时间】:2012-01-18 09:02:53
【问题描述】:
这是我的第一个 servlet。这是它的代码。
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Ch1Servlet extends HttpServlet {
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>");
}
}
我使用这个命令编译它
javac -classpath /usr/share/tomcat7/common/lib/servlet-api.jar -d classes src/Ch1servlet.java
然后我将.class 文件放在我的WEB-INF 文件夹的classes 文件夹中。
这是我的 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>
Tomcat7 一直在 http://127.0.0.1:8080/ch1/Serv1/ 上给我一个 404,说 The requested resource (/ch1/Serv1/) is not available.
文件树:
我在这里做错了什么?
【问题讨论】:
-
http://localhost:8080/Serv1/怎么样?此外,您应该在包中使用servlet-class中的完全限定名称(我希望您的 servlet 不在默认包中)。 -
请告诉我们ch1目录的结构,并告诉我们你把它放在哪里。还要告诉我们你把这个 ch1 目录放在哪里,以及 tomcat 日志说什么。哦,我同意 Viruzzo:永远不要使用默认包。
-
查看war文件(或文件夹)名称,应该是ch1。
-
tomcat/logs 目录应该包含日志文件。检查并共享异常堆栈跟踪
-
@Viruzzo 不幸的是我正在使用默认包。所以告诉我如果我的包是 me.firstServlet 那么完全限定名是什么?