一尘不染

Tomcat不会在Web应用程序的上下文中添加斜杠

tomcat

如果不输入url,我希望Tomcat自动在我的应用程序上下文中添加一个斜杠。

当我使用Jetty进行测试时,它会自动在应用程序的上下文中添加斜杠,但是Tomcat不会这样做。

我不确定一旦部署将命名上下文,因为我会将WAR交给其他人,因此HTML中的任何资源引用都是相对的。有什么方法可以让Tomcat自动添加重定向尾号到相同的上下文?

当前在Spring 3中使用Tomcat 7。


阅读 521

收藏
2020-06-16

共1个答案

一尘不染

这是旧文章,但是从Tomcat 7.0.67开始,您需要在context.xml文件中添加以下属性:

<Context mapperContextRootRedirectEnabled="true">...</Context>

根据7.0.67更新日志

移动为上下文根和目录提供重定向的功能,其中将尾随/从映射器添加到DefaultServlet。这样,在进行重定向之前,任何配置的Valves和Filters都可以处理此类请求。可以通过Context的mapperContextRootRedirectEnabled和mapperDirectoryRedirectEnabled属性来配置此行为,这些属性可用于还原以前的行为。

并且在Tomcat上下文文档中

mapperContextRootRedirectEnabled:如果启用,则对Web应用程序上下文根的请求将在需要时由Mapper而不是默认Servlet重定向(添加斜杠)。这更有效,但具有确认上下文路径存在的副作用。如果未指定,则使用默认值false。

2020-06-16