实现注销功能

时间:2010-03-31 13:41:39

标签: jsp servlets

我正在研究我的最后一年项目,这是一个基于网络的应用程序。我想在该项目中实现注销功能。但不知道该怎么做。此外,我想实现自动注销功能,即在特定时间段之后,如果他/她在此期间没有执行任何操作,则在20分钟后将自动注销。应向用户显示一条消息“抱歉,您的会话已过期请再次登录”。怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用session.invalidate()(或servlet中的response.getSession().invalidate()

进行注销

如果使用Cookie,您必须使用生命周期为负的Cookie致电response.addCookie(..)

可以通过设置会话超时来实现自动注销。在web.xml

<session-config>
        <session-timeout>20</session-timeout>
</session-config>

答案 1 :(得分:0)

您是如何处理登录和会话的?如果它像会话cookie一样简单,你只需要过期/删除cookie即可注销

答案 2 :(得分:0)

我在CMS上执行此操作的方法是在页面加载时启动setTimeout。这 - 在20分钟后将用户重定向到清除会话的页面,从而将用户注销。不幸的是,这有一个副作用,当用户打开多个窗口时,有时一个窗口可以在用户活动之前达到超时时间。这会导致会话过早超时,并且会中断流程。

解决此问题的一种方法是为用户执行的每个操作保留活动ID(即创建内容项,上传图像)。此活动ID保存在用户表中,超时计时器(在Javascript中)可以检查此ID,以查看超时的窗口是否是最近活动的窗口。如果该窗口中的ID(从PHP变量传递到HTML输出)不匹配,则它不会强制会话超时。

在不对界面进行重大更改的情况下,这是一个非常棘手的方法。