如何jsp使用filter防止页面不登陆就访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何jsp使用filter防止页面不登陆就访问相关的知识,希望对你有一定的参考价值。

我用filter写了一个过滤器,是可以实现用户不登陆就无法利用相对路径访问我的目录下的jsp文件,但是我却发现另一个问题,当我登陆后,我再退出。我再使用相对路径访问我的jsp文件,这时居然可以访问了,这就奇怪了,我猜是session的时效问题,但是session系统默认不是30min么,我不想再web.xml中修改session的时效,这里我想请大家帮忙看看,有没有其他的办法或是用session或是不用session来使保护jsp文件访问更加完整、安全,小弟没什么积分,只是想学东西,各位大神莫见怪,呵呵

在filter的时候,登录时,用session记录你的登录用户名。

如 (((HttpServletRequest)request).getSession()).setAttribute("userName","user1");
然后,在你退出的时候,可以使用一个servlet类似的东西,调用
(((HttpServletRequest)request).getSession()).removeAttribute("userName")即可。
这样就可以把session中的用户名去掉了
另外提醒一下,如果你还有任何跟用户有关的东西放到session中,记得在退出的时候也去掉
参考技术A Session结束时,清理该用户的登录资料。追问

具体怎么清理session呢,能不能给出一个代码样例呢,谢谢了,呵呵

针对功能权限(url访问)如何避免越权访问

  1. 你可以用request获得之前的页面路径:Request.getHeader("Referer");然后你可以判断一下,这个是字符串类型的。

  2. 如果是需要登录的,你可以从session中获取登录信息,然后判断

  3. 你可以通过上一个页面传参,本页面判断,如果不匹配就处理,参数可以放在session当中或者使用request.setAttribute();这个方法,不要URL传参

  4. jsp防止直接通过url访问是通过过滤器实现的

以上是关于如何jsp使用filter防止页面不登陆就访问的主要内容,如果未能解决你的问题,请参考以下文章

如何禁止访问者不通过登录页面而强行进入其他页面

javaEE页面跳转问题

jsp中如何防止计算机异常关机后session的值不都失

Filter案例

如何防止用户使用浏览器的后退按钮或退格键访问上一个 jsp 页面 [重复]

jsp+servlet怎样防止用户用URL直接访问页面