今天开发一个新功能,向项目中添加了一个JSP页,这个JSP页在WEB-INF中的一个目录下。做好之后放到环境上想看看效果如何,但是总是显示404。求助后才知道,原来WEB-INF这个文件夹是一个受保护的文件夹,不允许客户端进行直接访问的。这是因为基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。做了2年多J2EE开发,现在才刚知道....
百度百科上的介绍是这样的:
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 *.class文件,这些 *.class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。
WEB-INF文件夹中除了有classes文件夹和一个web.xml文件外、还有lib文件夹(用于存放需要的jar包)(用于配置,比如说用来配置过滤器等。)
这样我们在构件项目时,可以把那些限制访问的资源(比如说jsp源代码)放到Web应用的WEB-INF目录下,对于/web-INF/及其子目录,不允许直接的公共访问,
WEB-INF目录访问限制与安全

在开发过程中遇到JSP页面位于WEB-INF目录下导致404错误的问题,了解到WEB-INF是一个受保护的目录,客户端无法直接访问。该目录包含web.xml、classes和lib等,用于存放类库、部署描述符和依赖。为了防止源代码被直接访问,可以将敏感资源放在此目录下。访问WEB-INF内的文件需通过web.xml映射或内部forward,禁止redirect跳转。
最低0.47元/天 解锁文章
2235

被折叠的 条评论
为什么被折叠?



