Servlet学习二-不允许直接访问jsp处理方式----WEB-INF

一.项目

     最近搭建了SSH的整个模块,大体上没什么问题。但还是有些小细节,以前没注意到的。出现一个,博客一片。

     现在我想禁止直接访问所有的jsp页面,必须通过action层。方法之一就是WEB-INF的利用。测试结果如下。

 

二.项目目录

 

三.测试结果

  1. 外部能直接访问t1.jsp(WebRoot下);不能直接访问t2.jsp(WEB-INF下):404错误The requested resource () is not available.
  2. 系统内部能直接访问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>
     
  3. t1.jsp正常引用t2.jsp。
  4. t2.jsp正常引用t1.jsp;t2.jsp正常引用WebRoot下其它css js images资源。

四.结论

  1. 把所有jsp页面全部移到WEB-INF下面,css js images资源仍然放在WebRoot下。
  2. 访问WEB-INF目录下的jsp只能forward,不能redirect。下一篇博客就专门说说两者的差别。
  3. 但不太推荐这样的做法,每个web应用服务器对WEB-INF的处理都不一样。

五.WEB-INF

  1. WEB-INF是Java WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
  2. WEB-INF下存放了web.xml,classes,lib。

猜你喜欢

转载自blog.csdn.net/qq_39949109/article/details/80209767