我有一个servlet web应用程序,在tomcat中有上下文路径"/cas" .
当我访问“http://localhost:8080/cas ", tomcat will redirect to " http://localhost:8080/cas/”时 .
是否在任何文档中指定了此行为?
是否有"/cas"的servlet?
我有一个servlet web应用程序,在tomcat中有上下文路径"/cas" .
当我访问“http://localhost:8080/cas ", tomcat will redirect to " http://localhost:8080/cas/”时 .
是否在任何文档中指定了此行为?
是否有"/cas"的servlet?
1 回答
它返回一个重定向,因为它们是Java Servlet规范rev 3.0中第12.1节“URL路径的使用”中指定的规则 . 它在所有其他Servlet规范版本中也存在(在不同的编号下) .
/cas
和/cas/
之间存在差异 . 其中一个对您的应用程序不可见(即,没有url-pattern
可以映射,这将导致Web应用程序中的资源响应),另一个将被您的应用程序视为/
.如果您将
ROOT
应用程序中的/cas
映射到某个东西,Tomcat将忽略它,因为有一个覆盖它的最长匹配规则(映射到/cas
的上下文),因此您的/cas
应用程序将覆盖您在其中映射的ROOT
应用程序中的任何内容 .根据定义,
/cas
请求是一个没有尾随/
的目录请求,因此Tomcat执行重定向添加/
. 然后第10.10节欢迎文件开始发挥作用,Tomcat将检查您的应用程序以确定下一步该做什么 .