将静态资源和JSP页面保存在WEB-INF或其下的某一个目录下,可以将它们隐藏起来。放在这里的资源无法直接通过输入网址而访问到,但是仍然可以通过一个Servlet或者JSP页面跳转到那里。这是为了安全性考虑,不让用户从URI直接访问资源。
但是这样做的缺点是:这些资源永远都被藏起来了,永远无法直接被访问。
如果只是为了避免未授权的用户访问这些资源,那么可以将它们放在应用程序目录下的某一个目录中,并在部署描述符中声明一个安全性约束
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>JSP pages</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>member</role-name>
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC(DIGEST,FORM)</auth-method>
//基于基本,摘要,表单的验证
<realm-name>Members Only</realm-name> //显示在浏览器的登录对话框中
</login-config>