jsp有必要放在WEB-INF下

本人之前看过很多论坛关于这点的讨论,我也考虑了很多情况,也苦恼了一阵,最后还是偶然的机会看到一个别的话题才得到的正解。

关于论坛关于这个得争论,主要可以用一句话来概括。

jsp放在外面-------简洁,方便

jsp放在里面-------安全,麻烦

当时我看了很多论坛,也没有真正的剖析明白。最经典的一个说法是这样的,说为了防止直接通过浏览器访问jsp,我们把jsp放在web-inf下,但是这样的话,对于页面之间的跳转,尤其是submit 到<form action="WEB-INF/a.jsp">这样的就没办法实现了,因为访问不到,所以引入servlet,structs,这样的概念,就解决了。

说实话我感觉写的人可能很明白,但是看的人比如像我这么愚钝的人,真是感觉有点理解的不到位。通过<form action="login">,然后在xml里面通过映射找到对应的类(action),forward一下,然后在到jsp中,我在浏览器上是不让正常访问jsp了,但是我通过访问http://localhost/login也可以访问到页面,看到源码,那么还有必要放在web-inf下吗?

要是只是单纯的想访问不到jsp,那不用把文件放到web-inf,就在外面,通过structs映射,我们也直接访问不了jsp。何乐而不为。那究竟为什么要放,我谈下我的理解。

当我们购买一个web应用软件的时候,商家一般不提供给我们源码,只是发布编译好的class文件。我们后台人员可以通过xml找到路径,甚至反编译类文件,那么我假设一个例子,一般访问系统,首先都要进行身份验证的,尤其是当登陆到系统的时候,会伴随着很多安全验证。这些安全验证一般是通过类来实现的。在一家单位里面,后台人员想躲过安全验证就来进入到系统,那么他需要直接在浏览器上输入页面,如果jsp是在web-inf外部,那么通过查询xml文件可以找到jsp相对路径,进去就可以了,但是他想通过类直接进去是不行的,因为需要身份验证。反之,如果jsp事先是封装在web-inf内部,那么就算后台人员或者其他相关人员找到jsp路径,他们也访问不了,因为系统是找不到的,会提示错误,这就是安全性的保证。以上是我个人粗浅的理解。可能是有点胡扯,感觉有帮助的笑笑就好。有问题的希望讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值