servlet映射中的“ /”表示默认的servlet。
当涉及嵌入在web-resource-collection元素中的URL模式时,您如何解释这一点:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>fixmyhome</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>


那么“ / *”呢?这个URL模式不是servlet映射,因为它被标签web-resource-collection包围了。

我还注意到使用http://localhost:8081/fixmyhome/main.jsp同时使用URL模式“ /”和“ / *”可以得到相同的结果-这就是给我的main.jsp页面。我以为“ /”可能不起作用,因为没有通配符。

最佳答案

<url-pattern>正在寻找一种Ant模式。可用的模式是?,*和**;分别匹配1个字符,0个或多个字符以及0个或多个目录。

在您使用http://localhost:8081/fixmyhome/main.jsp的情况下,//*的工作原理相同,因为*并不是必须将其作为字符。

如果您的根目录中有一个资源目录,那么我想您的<url-pattern>看起来像这样:
<url-pattern>/resources/**</url-pattern>,从而允许您访问资源目录的所有子目录。

这可能有助于提供更多的清晰度:
https://ant.apache.org/manual/dirtasks.html

10-07 19:52
查看更多