为什么tomcat用斜杠重定向上下文路径?

为什么tomcat用斜杠重定向上下文路径?,tomcat,servlets,Tomcat,Servlets,我在tomcat中有一个具有上下文路径“/cas”的servlet web应用程序。 当我访问“”时,tomcat将重定向到“”。 是否在任何文档中指定了此行为? “/cas”是否有任何servlet?它返回重定向,因为这些是Java servlet规范rev 3.0第12.1节URL路径的使用中指定的规则。它也存在于所有其他Servlet规范版本中(以不同的编号) /cas和/cas/之间存在差异。其中一个对应用程序不可见(即,没有可映射的url模式,这将导致web应用程序中的资源响应),而另

我在tomcat中有一个具有上下文路径“/cas”的servlet web应用程序。
当我访问“”时,tomcat将重定向到“”。
是否在任何文档中指定了此行为?

“/cas”是否有任何servlet?

它返回重定向,因为这些是Java servlet规范rev 3.0第12.1节URL路径的使用中指定的规则。它也存在于所有其他Servlet规范版本中(以不同的编号)

/cas
/cas/
之间存在差异。其中一个对应用程序不可见(即,没有可映射的
url模式
,这将导致web应用程序中的资源响应),而另一个将被应用程序视为
/

如果将
/cas
应用程序中的
/cas
映射到某个对象,Tomcat将忽略该对象,因为存在覆盖它的最长匹配规则(映射到
/cas
的上下文),因此
/cas
应用程序将覆盖映射到那里的
应用程序中的任何内容


根据定义,
/cas
请求是一个没有尾随
/
的目录请求,因此Tomcat执行重定向,添加
/
。然后第10.10节欢迎文件开始发挥作用,Tomcat将检查您的应用程序,以确定下一步要做什么。

Re“这些是规则”,OP特别询问行为是否“在任何文档中指定”。@Christopher Schultz我在“URL路径的使用”一节中没有发现重定向问题,因此,由tomcat将“/cas”重新定义为“/cas/”?@Tim tomcat选择实现从
/cas
/cas/
的解析作为重定向。它当然可以使用(应用程序所认为的)一个“转发”在内部处理请求,但重定向更干净一些,并为客户端提供了一些关于发生了什么的信息。@ChristopherSchultz所以这是tomcat的决定,而不是Java Servlet规范?@Tim是的,这是tomcat的决定。上下文路径被视为“目录”(即使它们没有备份在磁盘目录结构上),几乎所有web服务器都会将请求重定向到
../dir
../dir/