Jsp 实现注销功能

Jsp 实现注销功能,jsp,servlets,Jsp,Servlets,我正在做最后一年的项目,这是一个基于web的应用程序。我想在那个项目中实现注销功能。但我不知道怎么做。此外,我还想实现自动注销功能,即在特定时间段后,例如20分钟后,如果用户在此期间未执行任何操作,则会自动注销。应向用户显示一条消息“对不起,您的会话已过期,请重新登录”。怎么做 您如何处理登录和会话?如果它像会话cookie一样简单,您只需终止/删除cookie即可注销您可以使用servlet中的session.invalidate()(或response.getSession().invali

我正在做最后一年的项目,这是一个基于web的应用程序。我想在那个项目中实现注销功能。但我不知道怎么做。此外,我还想实现自动注销功能,即在特定时间段后,例如20分钟后,如果用户在此期间未执行任何操作,则会自动注销。应向用户显示一条消息“对不起,您的会话已过期,请重新登录”。怎么做

您如何处理登录和会话?如果它像会话cookie一样简单,您只需终止/删除cookie即可注销

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

如果使用cookie,您将不得不调用
response.addCookie(..)
,使用寿命为负的cookie

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

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

20

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

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


这是一个非常棘手的方法,不需要对界面进行破坏性的更改。

如何注销取决于您的登录方式。您还应该详细介绍一下登录。