我正在阅读另一个惊人的头先书。这一个是“头一个Servlets & JSP - 通过Sun认证的Web组件开发者考试”。我正在关注创建一个小型“hello world”类型的程序的第一个教程。这是在第30至31Servlet Hello World错误 - 根本原因:java.lang.ClassNotFoundException:
我编译Java源代码的方式如下: C:\Users\username\Desktop\Servlets_HF_Example\project1>javac -classpath C:\tomcat\ apache-tomcat-9.0.0.M26-windows-x86\apache-tomcat-9.0.0.M26\lib\servlet-api.jar -d classes src/Ch1Servlet.java
未发现类,500错误的原因,有以下的源代码:
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>Head First Chapter 1 Servlet</h1>"
+ "<br>" + today + "</body> " + "</html>");
}
}
web.xml文件具有下面的代码:
<?xml version="1.0" encoding="UTF-8"?>
<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>
我对代码以下文件夹结构:
project1
|
|
+classes
|
Ch1Servlet.class
+etc
|
web.xml
+src
|
Ch1Servlet.java
被放入Tomcat的webapps目录下的项目结构如下:
ch1
|
|
+classes
|
Ch1Servlet.class
+WEB-INF
|
web.xml
我有我的TOMCAT_HOME目录设置与在此Windows 7操作系统(OS)上设置JAVA_HOME。当我部署应用程序并启动Tomcat时1)我看到一个500错误,说没有找到该类。这是找不到的Ch1Servlet.class。然后,如果我刷新页面,我会看到2)404错误。这些错误如下所示。
我有什么错?
我其实有这个文件夹结构。也许我的图不清楚。我看到你使用了文件夹的加号。 – user3870315
@ user3870315如果你在'WEB-INF'下放置'classes'文件夹,那么你可能会遇到不同的问题。您应该提供更多详细信息,例如web.xml文件的内容以及可能的一些源代码。 –
嗨路易斯,当然给我一个小时左右。我在这里忙着工作。 – user3870315