gpt4 book ai didi

java - Tomcat 不提供简单的 HTML 页面 (HTTP 404)

转载 作者:行者123 更新时间:2023-11-28 23:12:08 25 4
gpt4 key购买 nike

我仍然遇到一些已经在这里讨论过的问题,但是我仍然不知道我做错了什么。

我的应用程序结构是:

/usr/share/tomcat/webapps/greeting
--index.html
--src
--META-INF
--WEB-INF
--web.xml
--classes
--sk
--simo
--Greeting.class

当请求 http://localhost:8080/greeting/ 时,我收到一个 HTTP 404 响应。

当请求 http://localhost:8080/greeting/hi 时,我收到一个 HTTP 405 响应。这不是问题,因为 Servlet 仅处理 POST 请求。

我的问题是:如何让Tomcat服务器提供index.html文件。

这是我的 web.xml 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<display-name>Hello, World Application</display-name>
<description>
This is a simple web application with a source code organization
based on the recommendations of the Application Developer's Guide.
</description>

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/greeting/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

</web-app>

服务器上的一些信息:

[miso@edubox conf]$ /sbin/tomcat version
Server version: Apache Tomcat/7.0.76
Server built: Mar 12 2019 10:11:36 UTC
Server number: 7.0.76.0
OS Name: Linux
OS Version: 3.10.0-957.1.3.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_212-b04
JVM Vendor: Oracle Corporation

最佳答案

1) 每个 servlet 的定义由两部分组成:1) 将 servlet 类绑定(bind)到逻辑名称和 2) 将此逻辑名称映射到 URL。 在您的 web.xml 中,您只定义了第二部分。现在您还应该在其中添加 servlet 类名。如果您保留逻辑名称“默认”,则添加以下代码:

<servlet>
<servlet-name>default</servlet-name>
<servlet-class>sk.simo.Greeting</servlet-class>
</servlet>

2) 或者,使用 @WebServlet(value="/greeting")。但随后从 web.xml 中删除您的 servlet 映射。

3) 独立于上述答案,文件夹到上下文根的映射很重要。如果你没有改变它(我想你没有,这很好),那么路径“/usr/share/tomcat/webapps/greeting”意味着,你的应用程序中的一切都可以通过 URL 获得具有上下文根“/greeting”。这意味着,如果你想通过“/greeting/hi”调用一个servlet,servlet应该被映射到“/hi”,而不是“/greeting”而不是“/greeting/hi”。因此,在您的 servlet 中使用以下内容:@WebServlet(value="/hi")。您可以通过“.../greeting/hi”来调用它。

关于java - Tomcat 不提供简单的 HTML 页面 (HTTP 404),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com