我想配置一个简单的Tomcat容器来提供HTML文件。请注意,这个问题与这个老问题非常相似:
但是,我想尽可能不使用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>
之前我遇到过类似的问题,就在我刚刚使用上面链接的解决方案时。但我不想在这个项目中使用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”。
答案 0 :(得分:0)
您的servlet com.rigatron.rigs4jj.Servlets.HomeServlet
处理所有请求(包括index.html
等静态内容请求。
因此从web.xml
删除servlet或更改其servlet映射。然后Tomcat将为您的静态环境提供服务。