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