<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>这是web.xml的摘录(使用它来配置jboss/tomcat This服务)。我只是想知道web-resource-collection中的url-pattern是否与servlet-mapping中的url-pattern相关。
发布于 2010-05-01 04:57:14
用于为给定请求选择约束的url-pattern与任何内容都无关。这里的Servlet规范的有趣部分是:
SRV.12.8.3处理请求
当Servlet容器接收到请求时,它将使用SRV.11.1中描述的算法来选择在url-pattern上定义的与请求URI最匹配的约束(如果有的话)。如果没有选择约束,容器将接受该请求。否则,容器将确定请求的HTTP方法是否受所选模式的约束。如果不是,则接受该请求。否则,请求必须满足在url-pattern处应用于http-method的约束。要接受请求并将其分派到关联的servlet,必须同时满足以下两个规则。
和:
SRV.11.1使用URL路径
在接收到客户端请求时,Web容器确定要将其转发到的Web应用程序。选定的Web应用程序必须具有与请求URL的开头匹配的最长上下文路径。URL的匹配部分是映射到servlet时的上下文路径。
接下来,Web容器必须使用下面描述的路径映射过程定位servlet以处理请求。
用于映射到servlet的路径是来自请求对象的请求URL减去上下文路径和路径参数。下面的URL路径映射规则按顺序使用。使用第一个成功的匹配,不再尝试进一步的匹配:
servlet
SRV.11.2映射规范
在Web应用程序部署描述符中,使用以下语法来定义映射:
发布于 2010-04-28 00:09:52
对于我来说,security-constraint/web-resource-collection/url-pattern相对于servlet映射/url模式是而不是是有意义的,原因如下:在web.xml中可以有几个servlet映射元素,在这种情况下,不清楚采用哪个servlet映射/url模式来解析相对URI。(只是猜测-我还没有在tomcat中使用安全约束)。
发布于 2010-04-29 00:38:04
不,它们不是相对的;没有办法将给定的servlet映射绑定到安全约束。两者都应用于给定的URL模式,安全约束也只能应用于特定的HTTP方法(GET、POST等)所以它们是相当独立的。
这两个元素都在Servlet specification中定义和描述。您可能想要阅读SRV.12.8节关于安全性的内容,以及关于url-pattern元素的详细信息。
https://stackoverflow.com/questions/2714726
复制相似问题