gpt4 book ai didi

java - 使用 Tomcat 运行 Servlet

转载 作者:行者123 更新时间:2023-12-01 11:04:15 27 4
gpt4 key购买 nike

我做了一个非常简单的Servlet:

package it;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// Set the response message's MIME type.
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {
out.println("<!DOCTYPE html>"); // HTML 5
out.println("<html><head>");
out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
String title = "Hello World";
out.println("<title>" + title + "</title></head>");
out.println("<body>");
out.println("<h1>" + title + "</h1>"); // Prints "Hello, world!"
out.println("</body></html>");
} finally {
out.close(); // Always close the output writer
}
}
}

Eclipse IDE 中构建此类。因此,我将生成的文件 .class 放在 Tomcat/webapps/ROOT/MyServlet/WEB-INF/classes/it 中,因为我的 java 文件位于名为 it 的包中。

然后,在 WEB-INF 文件夹中,我创建以下 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/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">
<display-name>My Web server Application</display-name>

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>it.MyServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>

</web-app>

我在 Windows 中运行 Tomcat 服务(我知道它正在运行,因为我在 http://localhost:8080 处看到 tomcat 欢迎页面)。

因此,当我输入地址 http://localhost:8080/MyServlet/hello 但我总是收到 404 状态错误,请求的资源不可用。

我读了很多关于这个主题的教程,但我不明白问题出在哪里。有人可以帮助我吗?

最佳答案

路径

Tomcat/webapps/ROOT/MyServlet/WEB-INF/classes/it

位置不对。

webapps 正下方的目录表示应用程序名称,例如可以通过 URL http://localhost:8080/foo 访问 Tomcat/webapps/foo 中的内容。 ROOT 比较特殊,它表示根应用程序:http://localhost:8080

WEB-INF 目录应该位于应用程序目录的正下方。如果您希望应用程序位于 http://localhost:8080/myServlet,请将 WEB-INF 放在

Tomcat/webapps/MyServlet/WEB-INF

以及您的类(class)

Tomcat/webapps/MyServlet/WEB-INF/classes/it

关于java - 使用 Tomcat 运行 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105297/

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