在web项目中,为了安全,一般需要将jsp文件放在WEB-INF目录下。
以下:WEB-INF下的A.jsp、a1.jsp、a2.jsp、C.jsp 非WEB-INF下的B.jsp、a1.js、a2.css
由于WEB-INF下对客户端是不可见的,所以相关的资源文件,如css、js、图片等不能放在WEB-INF下。
1.所有的jsp文件访问非WEB-INF下的css、js等文件,是直接指定相对WebRoot的路径,不用通过java跳转等
2.A -> B时,是可以直接访问的。
3.B -> A时,必须通过java跳转。必须加上WEB-INF路径
4.A包含a1、a2时,必须通过java跳转。必须加上WEB-INF路径
5.A -> C时,必须通过java跳转,且必须是请求分发,不能是redirect(因为重定向仍然等同于客户端请求WEB-INF下的jsp)。必须加上WEB-INF路径
6.有些标签,也是可以访问到WEB-INF下的文件的,如果符合要求的情况下也可以使用,如以下3种:
1)<jsp:forward page="/WEB-INF/jsp/test/test.jsp" />
2)<a href="javascript:<jsp:forward page='WEB-INF/xxx.jsp'/>" ><a>
以下:WEB-INF下的A.jsp、a1.jsp、a2.jsp、C.jsp 非WEB-INF下的B.jsp、a1.js、a2.css
由于WEB-INF下对客户端是不可见的,所以相关的资源文件,如css、js、图片等不能放在WEB-INF下。
1.所有的jsp文件访问非WEB-INF下的css、js等文件,是直接指定相对WebRoot的路径,不用通过java跳转等
2.A -> B时,是可以直接访问的。
3.B -> A时,必须通过java跳转。必须加上WEB-INF路径
4.A包含a1、a2时,必须通过java跳转。必须加上WEB-INF路径
5.A -> C时,必须通过java跳转,且必须是请求分发,不能是redirect(因为重定向仍然等同于客户端请求WEB-INF下的jsp)。必须加上WEB-INF路径
6.有些标签,也是可以访问到WEB-INF下的文件的,如果符合要求的情况下也可以使用,如以下3种:
1)<jsp:forward page="/WEB-INF/jsp/test/test.jsp" />
2)<a href="javascript:<jsp:forward page='WEB-INF/xxx.jsp'/>" ><a>
3)<jsp:include page="WEB-INF/xxx.jsp">
http://www.360doc.com/content/15/0619/15/26105939_479223919.shtml