WEB-INF目录防止通过URL直接访问

 WEB-INF是Java的web应用安全目录,只对服务端开放,对客户端是不可见的。所以我们可以把除首页(index.jsp)以外的页面都放在WEB-INF目录下,这样就无法通过URL直接访问页面了。web-inf目录是不对外开放的,外部没办法直接访问到(即不能通过URL访问)。所有只能通过映射来访问,比如映射为一个action或者servlet通过服务器端跳转来访问到具体的页面。这样可以限制访问,提高安全性.

 

             

1、把页面资源文件只能放在webroot下面,如 CSS,JS,image等.放在WEB-INF下引用不了 

2、只能用转向方式来访问WEB-INF目录下的JSP,不用采用重定向的方式请求该目录里面的任何资源。

       重定向方式: 如struts-config文件中配置<forward name="success" path="/WEB-INF/main.jsp" redirect="true"/>

       或在action中response.sendRedirect("/error.jsp");                    

       重定向的含义就是服务器把地址发给客户端,让客户端去访问.这种办法显然针对WEB-INF目录是无用功.

3、WEB-INF目录下文件访问资源文件时,可以忽略WEB-INF这一层目录。如index.jsp 要用css目录里的一个css文件.     <link rel="stylesheet" type="text/css" href="css/**.css " />这样就行了,从客户端的地址可以看出来服务器转向index.jsp就是在webroot下面.所以index.jsp和css目录可以讲是同一级目录。

4、WEB-INF目录下的文件之间如何访问呢。

(1)方式一:

  在main.jsp用    <a href="oa.do ">测试OA的路径</a>

      或者

<jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />

 

 

 

 

 

(2)方式二:在action类中或者struts.xml中

  如果main.jsp有很多处链接到WEB-INF目录下的其它页面.那就得有10个转向Action。这个可以用DispatchAction类加参数专门处理转向工作。      

 

request.getRequestDispatcher("/WEB-INF /main.jsp").forward(request, response);

 

在struts-config文件中配置 

 

<forward name="success" path="/WEB-INF/main.jsp" /> 

 

 

  这都是服务器读取了该页面内容,并发送到客户端.客户端的地址不变.内容跳转了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinat_36710456

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值