在我的简单应用程序的web.xml中,我有
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Hai</url-pattern>
</servlet-mapping>现在如果我有
<url-pattern>/*</url-pattern>在安全约束中,当我尝试访问已部署的应用程序时,它会要求输入密码,但当我将其更改为
<url-pattern>/Projekt/*</url-pattern>然后尝试输入Projekt/Hai我没有被要求输入密码,为什么?
发布于 2012-02-08 05:54:44
您在web.xml中指定的url-pattern始终是相对于webapp的上下文路径的模式。因此,/Projekt/*表示应用程序的上下文路径下/Projekt、下的所有URL。
由于您的应用程序是在/Projekt上部署的,这意味着此URL模式与URL http://localhost:8080/Projekt/projekt/Hai匹配。它不匹配http://localhost:8080/Projekt/Hai,因为这个URL在相对于上下文路径写入时是/Hai,它与模式/Projekt/*不匹配。
好的经验法则: webapp的代码或部署描述符中的任何内容都不应该依赖于为部署应用程序而选择的上下文路径。所有内容都应该始终相对于此上下文路径进行指定。
https://stackoverflow.com/questions/9184041
复制相似问题