对JavaWeb项目中WEB-INF目录的理解

1:WEB-INF目录的位置,位于WebRoot或WebContent目录内,WEB-INF里默认有lib目录和web.xml配置文件。

  

2:WEB-INF下面的内容只能由服务器级别才能访问,客户端并不能访问。

    服务器级别指:经过服务器内的Controller渲染。

    客户端级别指:通过浏览器直接访问。

3:鉴于WEB-INF的以上特性,可以将页面文件放到它里面,避免客户端直接访问页面文件,这样可以限制访问,提高安全性。因为必须通过访问服务器内的Controller,经过Controller的渲染,才能最终在浏览器中呈现页面文件。如下图所示存放页面文件的位置和渲染页面文件的方式:

4:页面静态资源文件,如css、js、image等,不能放到WEB-INF里,只能放到WEB-INF外、WebRoot或WebContent内;因为WEB-INF是对客户端隐藏的,所以如果将页面静态资源文件放在WEB-INF下,会造成页面文件加载页面静态资源文件时,出现找不到的情况。如下图所示存放静态资源文件:

但是也可以将静态资源文件放到WEB-INF下,并且可以在页面文件里正常引用,请看《SpringMVC中jsp等页面文件引用静态资源文件的多种方法》

原文地址:https://www.cnblogs.com/hzcya1995/p/13302449.html