gpt4 book ai didi

java - 如何配置在 Tomcat 容器中运行的 Java Servlet 以提供 HTML 文件(无 JSP)

转载 作者:行者123 更新时间:2023-11-28 23:58:59 26 4
gpt4 key购买 nike

我想配置一个简单的 Tomcat 容器来提供 HTML 文件。请注意,这个问题与这个旧问题非常相似:

Can't display images in JSP

但是,如果可能的话,我不想使用 JSP,因为它似乎是一项正在消亡的技术,我不想花很多时间在即将淘汰的东西上学习。

HomeServlet.java:

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html;charset=UTF-8");

try {
RequestDispatcher view = request.getRequestDispatcher("/webapp/html/home.html");
view.forward(request, response);
}
catch(Exception ex) {

// do nothing bc idk what I'm doing

}
}

web.xml:

<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>home</servlet-name>
<servlet-class>com.rigatron.rigs4jj.Servlets.HomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>home</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

Directory Structure (note location of the home.html file)

我以前也遇到过类似的问题,当时我只是使用上面链接的解决方案。但是我不想在这个项目中使用 JSP。有没有办法配置 Tomcat 的默认目录,以便我可以知道我的路径在运行时的相对位置?

顺便说一句,我应该提一下这个应用程序是要部署在 Heroku 上的。 Heroku 部署 Tomcat 应用程序的方式是使用一个名为“webapp-runner”的 jar 包装器。这是该依赖项的 Maven 描述:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>copy</goal></goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>8.5.11.3</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>

然后我使用命令“java -jar target/dependency/webapp-runner.jar target/*.war”在本地运行我的应用程序。

最佳答案

您的 servlet com.rigatron.rigs4jj.Servlets.HomeServlet 处理所有请求(包括对 index.html 等静态内容的请求)。

因此从 web.xml 中删除 servlet 或更改其 servlet 映射。然后 Tomcat 将为您的静态上下文提供服务。

关于java - 如何配置在 Tomcat 容器中运行的 Java Servlet 以提供 HTML 文件(无 JSP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081203/

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