404找不到:访问在Tomcat上部署的servlet有问题



我遵循了一个非常简单的示例。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类的软件包名称。请使用上课的完整路径。

最新更新