日期:2014-05-17  浏览次数:20623 次

如何用cookie维护登陆状态?
关于如何存取Cookie我知道,我可以做到用户登陆时,将登陆信息通过Cookie保存在客户浏览器中.但问题是:
如果用户以后是通过网站中的任意一个页面访问的本网站,那么又怎么通过Cookie知道用户是已登陆过的呢?

获取Cookie需要HttpServletRequest,本想用SessionListener来监听会话建立,但HttpSessionEvent只能获得session实例,而无法获得HttpServletRequest实例更无法获得Cookie.

这该怎么弄呢?难道要在每个JSP页面里加入判断条件吗?

------解决方案--------------------
尝试下过滤器
------解决方案--------------------

这个问题在前段时间已经讨论了一下,就算你用 Filter ,我想到最后还是需要通过 session 来判断这个用户是否重新登录吧。一般的情况下,如遨游啊,在它

里面通过任何一个网站打开你的网页的话,它的session 是共享的。因为它是同一个浏览器进程,如果在 IE6 里面打开的话,就算你已经登录了一个,它也会让你

重新登录一遍,因为它是两个不同进程,所用的线程也是不一样的。且个人觉得通过 cookie 来进行操作始终有点草率,因为 cookie 毕竟是客户端上的东西,建

议如无必须,还是不用通过 cookie 来对登录状态进行判断了。用 Filter 也好,用 Session 也好,都是对服务器上的资源进行操作,这样更加安全,也不会涉

及到权限的操作,如果你通过 cookie 来对你这个需求进行操作,难道你要把用户的登录名和密码保存到客户端的 cookie 中??? 就算是加密后再保存的话,只

用别人破解了加密方式,我想你这个网站也就废了哟。劝楼主,慎用 Cookie啊。