six*_*ude 3 xml jboss tomcat web.xml security-constraint
<servlet-mapping>
<servlet-name>myName</servlet-name>
<url-pattern>/aName</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
...
<url-pattern>
/*
</url-pattern>
</web-resource-collection>
...
</security-constraint>
Run Code Online (Sandbox Code Playgroud)
这是web.xml的摘录(使用它来配置jboss/tomcat webservice).只是想知道url-pattern
in web-resource-collection
是否相对于url-pattern
in servlet-mapping
.
在url-pattern
用于选择一个给定的请求的约束不是相对于任何事情.这里Servlet规范的有趣部分是:
SRV.12.8.3处理请求
当Servlet容器收到请求时,它应使用SRV.11.1中描述的算法来选择
url-pattern
与请求URI最匹配的约束(如果有) .如果未选择约束,则容器应接受请求.否则,容器应确定请求的HTTP方法是否受限于所选模式.如果不是,则接受请求.否则,要求必须满足适用于限制http-method
的url-pattern
.必须满足以下两个规则才能接受请求并将其分派给关联的servlet.
和:
SRV.11.1 URL路径的使用
收到客户端请求后,Web容器将确定要将其转发到的Web应用程序.所选的Web应用程序必须具有与请求URL的开头匹配的最长上下文路径.URL的匹配部分是映射到servlet时的上下文路径.
接下来,Web容器必须使用下面描述的路径映射过程找到servlet来处理请求.
用于映射到servlet的路径是来自请求对象的请求URL减去上下文路径和路径参数.下面的URL路径映射规则按顺序使用.第一次成功匹配使用,未尝试进一步匹配:
- 容器将尝试查找请求路径与servlet路径的完全匹配.成功匹配选择servlet.
- 容器将递归地尝试匹配最长的路径前缀.这是通过使用'/'字符作为路径分隔符一次单击目录的路径树来完成的.最长匹配确定所选的servlet.
- 如果URL路径中的最后一个段包含扩展名(例如.jsp),则servlet容器将尝试匹配处理扩展请求的servlet.扩展名被定义为最后一个'.'之后的最后一个段的一部分.字符.
- 如果前三个规则都不会导致servlet匹配,则容器将尝试提供适合所请求资源的内容.如果为应用程序定义了"默认"servlet,则将使用它.
SRV.11.2映射规范
在Web应用程序部署描述符中,以下语法用于定义映射:
- 以"/"字符开头并以"/*"后缀结尾的字符串用于路径映射.
- 以"*"开头的字符串 prefix用作扩展映射.
- 仅包含'/'字符的字符串表示应用程序的"默认"servlet.在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为null.
- 所有其他字符串仅用于完全匹配.
它将使意义对我来说,安全性约束/网上资源收集/ url-pattern的是不是相对于Servlet映射/ url-pattern的,原因如下:可以有多个Servlet映射的网络元素. xml,在这种情况下,不清楚要使用哪个servlet-mapping/url-pattern来解析相对URI.(只是一个猜测 - 我还没有在tomcat中使用安全约束).
归档时间: |
|
查看次数: |
5746 次 |
最近记录: |