gpt4 book ai didi

java - Servlet session 失效

转载 作者:行者123 更新时间:2023-11-30 09:53:06 31 4
gpt4 key购买 nike

我在 2 个不同的服务器上有 2 个应用程序 - Tomcat(基本上是一个 .WAR 文件)和一个在 jBoss 中的 EAR。

EAR 是一个可重复使用的应用程序,我将在其中对用户进行身份验证并将控件发送回 Tomcat 上的应用程序。在进行身份验证时,我正在 jBoss 应用程序上创建一个 session 对象。

当我将控件发送回 Tomcat 上的应用程序时,我会询问用户是否要退出身份验证应用程序。如果用户按下"is"按钮,我将不得不从身份验证应用程序中注销该用户

问题

1) 我读到过滤器是使 session 无效的最佳方式。在我的例子中,由于身份验证应用程序旨在供 1 个以上的用户使用,过滤器如何知道它需要使哪个 session 无效?

2) 我是否应该将在 jBoss 应用程序中创建的 session ID 传递给 Tomcat 应用程序,以便当用户决定注销时 - 我需要将相同的 session ID 传递回 jBoss 应用程序以使过滤器失效?

最佳答案

您不需要过滤器。一个简单的 Servlet 就可以:

public LogoutServlet extends HttpServlet {
@Override
public void doGet(...) {
request.getSession().invalidate();
}
}

然后将这个servlet映射到web.xml中的/lougout,每当用户要注销时,就应该将他发送到http://youhost/你的应用程序/注销

如果你想在他已经在使用 tomcat 服务器时注销他,你需要重定向回 JBoss 服务器以使那里的 session 无效。

请注意,request.getSession() 获取当前 session - 即属于发出请求的用户的 session 。您的 servlet 容器(服务器)会为您处理这个。

关于java - Servlet session 失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004417/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com