一.项目
最近搭建了SSH的整个模块,大体上没什么问题。但还是有些小细节,以前没注意到的。出现一个,博客一片。
现在我想禁止直接访问所有的jsp页面,必须通过action层。方法之一就是WEB-INF的利用。测试结果如下。
二.项目目录
三.测试结果
- 外部能直接访问t1.jsp(WebRoot下);不能直接访问t2.jsp(WEB-INF下):404错误The requested resource () is not available.。
- 系统内部能直接访问t2.jsp。
<package name="ad" extends="coreserver-default" namespace="/ad"> <action name="testAD" class="adAction" method="testAD"> <result name="success">/WEB-INF/t2.jsp</result> //正确跳转 </action> <action name="uploadify" class="adAction" method="uploadify"> </action> </package>
- t1.jsp正常引用t2.jsp。
- t2.jsp正常引用t1.jsp;t2.jsp正常引用WebRoot下其它css js images资源。
四.结论
- 把所有jsp页面全部移到WEB-INF下面,css js images资源仍然放在WebRoot下。
- 访问WEB-INF目录下的jsp只能forward,不能redirect。下一篇博客就专门说说两者的差别。
- 但不太推荐这样的做法,每个web应用服务器对WEB-INF的处理都不一样。
五.WEB-INF
- WEB-INF是Java WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
- WEB-INF下存放了web.xml,classes,lib。