首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tomcat不会在web应用的上下文中添加尾部斜杠

Tomcat不会在web应用的上下文中添加尾部斜杠
EN

Stack Overflow用户
提问于 2012-06-16 01:38:24
回答 5查看 18.4K关注 0票数 19

如果没有输入url,我想让Tomcat自动在我的应用程序上下文中添加一个尾随斜杠。

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

我不确定部署后上下文将被命名为什么,因为我将战争交给了其他人,所以HTML中的任何资源引用都是相对的。有没有办法让Tomcat自动重定向到相同的上下文,并添加一个尾随斜杠?

目前正在使用Tomcat7和Spring3。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-12-22 00:51:19

这是一篇老文章,但从Tomcat7.0.67开始,您需要向context.xml文件添加以下属性:

代码语言:javascript
运行
复制
<Context mapperContextRootRedirectEnabled="true">...</Context>

根据7.0.67 changelog

Move为上下文根和目录提供重定向的功能,在这些目录中,将尾随/从映射器添加到DefaultServlet。这样,在进行重定向之前,任何已配置的阀和过滤器都可以处理此类请求。此行为可通过上下文的mapperContextRootRedirectEnabled和mapperDirectoryRedirectEnabled属性进行配置,该属性可用于恢复先前的行为。

在Tomcat上下文documentation

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

票数 30
EN

Stack Overflow用户

发布于 2013-12-22 20:21:03

您的应用程序的web.xml似乎有一个到"/*"的映射。servlet映射到"/*"会导致tomcat按原样将请求传递给web应用程序(即不重定向)。

要正确地重定向,必须将"/*"映射更改为"/",后者表示默认的servlet。

票数 7
EN

Stack Overflow用户

发布于 2012-06-16 02:02:21

Tomcat会自动添加一个尾随斜杠。只需使用Tomcat提供的示例应用程序对其进行测试。

如果-由于某些特殊配置-它没有,我会编写一个过滤器来检查查询字符串,并根据应用程序的需要进行重定向。很多时候,无论如何这都是需要的(做http->https重定向,等等)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11055608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档