1. 页面资源文件只能放在WebContent目录内,,如 CSS,JS,image等.不能放在WEB-INF下,因为WEB-INF是对客户端隐藏的,所以放在WEB-INF下会造成页面的布局等文件引用不到的情况。
2. 页面文件一般放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html文件,放在WEB-INF目录下就可以避免客户端直接在地址栏上输入路径进行访问了。基于不同的功能 ,把JSP 放置在WEB-INF下的不同的目录中。
3. 只能用转向方式来访问WEB-INF目录下的JSP,不用采用重定向的方式请求该目录里面的任何资源。
4.转向方式:
4.1、请求转发:
如struts.xml文件中配置
<result name ="goMain2">WEB-INF/main/main2.jsp</result >
或在Action中写
request.getRequestDispatcher("/WEB-INF/main/main2.jsp").forward(request, response);
的方式都是服务器读取了该页面内容,并发送到客户端的,客户端的地址不变,然后内容跳转了。这样的方式是可以访问到WEB-INF目录下的jsp文件的。
4.2、重定向方式:
如struts.xml文件中配置
<result name ="goMain2" type="redirect">WEB-INF/main/main2.jsp</result >
或在action中
response.sendRedirect("WEB-INF/main/main2.jsp ");
都属于重定向的方式,重定向的含义就是服务器把地址发给客户端,让客户端去访问,这样还是在客户端访问的WEB-INF目录,所以是无法访问到WEB-INF目录下的jsp文件的。
5、有一些标签,也是可以访问到WEB-INF目录中的文件的,如果符合要求的情况下也可以使用,如:
<jsp:forward page = "/WEB-INF/jsp/test/test.jsp" /> <a href="javascript:<jsp:forward page='WEB-INF/xxxx.jsp'/>"></a> <jsp:include page="WEB-INF/xxx.jsp">
都是可以访问WEB-INF下的jsp文件的。但是局限性很大,还是建议使用action分发的方式。
原文访问地址:https://www.cnblogs.com/shenxiaoquan/p/5819359.html