我遵循了一个非常简单的示例。JSP开始时,但是我遇到了一个问题。当我尝试在WebApps/ch1/web-Inf/中访问一个名为Ch1Servlet
的servlet,映射到url-pattern:/serv1时,tomcat返回错误404:
HTTP Status 404 - /ch1/Serv1
我将Localhost:8080键入我的浏览器的地址栏,并显示了Tomcat的主页,这似乎对服务器还可以。然后,我创建了一个名为Ch1Servlet
的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>Today</h1>"+today+"</body></html>");
}
}
接下来,需要Web.xml配置文件。这就是:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<Servlet>
<Servlet-name>Ch1Servlet</Servlet-name>
<Servlet-class>Ch1Servlet</Servlet-class>
</Servlet>
<Servlet-mapping>
<Servlet-name>Ch1Servlet</Servlet-name>
<url-pattern>/Serv1</url-pattern>
</Servlet-mapping>
</web-app>
ch1servlet.java被编译后,我得到了一个集体文件,该文件放在Web-Inf/class中,然后将Web.xml放入Web-Inf中。因此,层次结构是:webApps/ch1/web-inf。
它建议我们可以使用url:http://localhost:8080/ch1/serv1访问屏幕上的servlet并在屏幕上显示HTML页面。但是不幸的是,在那里发现了错误404。
web.xml中的所有XML元素都应以小写字母开头。
在web.xml
中,您没有定义类的完整路径:
<Servlet>
<Servlet-name>Ch1Servlet</Servlet-name>
<Servlet-class>com.test.Ch1Servlet</Servlet-class>
</Servlet>
com.test.
是Ch1Servlet
类的软件包名称。请使用上课的完整路径。