如何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访问)如何避免越权访问
-
你可以用request获得之前的页面路径:Request.getHeader("Referer");然后你可以判断一下,这个是字符串类型的。
-
如果是需要登录的,你可以从session中获取登录信息,然后判断
-
你可以通过上一个页面传参,本页面判断,如果不匹配就处理,参数可以放在session当中或者使用request.setAttribute();这个方法,不要URL传参
- jsp防止直接通过url访问是通过过滤器实现的
以上是关于如何jsp使用filter防止页面不登陆就访问的主要内容,如果未能解决你的问题,请参考以下文章