Java 如果用户再次在相同或不同的浏览器上登录,如何注销其上一个会话

Java 如果用户再次在相同或不同的浏览器上登录,如何注销其上一个会话,java,jquery,session,Java,Jquery,Session,我有一个疑问,我想,如果一个用户已经登录到一个网页,他再次从同一台或不同的机器重新登录,那么他的上一个会话应该被终止,并自动注销到主页。我在客户端使用jquery,在后端使用servlet。我使用Tomcat6作为web服务器和jdk1.6编译器。我只想和yahoo一样,如果一个用户从某台机器登录,下次他再次从另一台或同一台机器登录时,他会自动从previos会话中注销,并被重定向到主页。请告诉我如何实现该功能。当用户再次登录时,只需生成新会话ID,上一个会话ID将无效。当用户再次登录时,只需生

我有一个疑问,我想,如果一个用户已经登录到一个网页,他再次从同一台或不同的机器重新登录,那么他的上一个会话应该被终止,并自动注销到主页。我在客户端使用jquery,在后端使用servlet。我使用Tomcat6作为web服务器和jdk1.6编译器。我只想和yahoo一样,如果一个用户从某台机器登录,下次他再次从另一台或同一台机器登录时,他会自动从previos会话中注销,并被重定向到主页。请告诉我如何实现该功能。

当用户再次登录时,只需生成新会话ID,上一个会话ID将无效。

当用户再次登录时,只需生成新会话ID,上一个会话ID将无效。

如果将会话ID附加到用户ID,则在创建新会话ID时,它将替换当前会话id,当您检查有效的会话id时,您将看到旧会话id不再存在,因此您的应用程序将告诉他们已注销

如果您想跟踪会话id,那么只需在userid和valid标志之间设置一个唯一的有效标志,这样每个用户一次只能有一个有效会话


如果您看到他们有第二个会话id,那么您可以让他们知道他们由于登录到新会话而退出了第一个会话。

如果您将会话id附加到用户id,那么当您创建新会话id时,它将替换当前会话id,当您检查有效会话id时,您将看到旧的已不再存在,因此您的应用程序将告诉他们已注销

如果您想跟踪会话id,那么只需在userid和valid标志之间设置一个唯一的有效标志,这样每个用户一次只能有一个有效会话


如果您看到他们有第二个会话id,那么您可以让他们知道,由于登录到新会话,他们已退出第一个会话。

以下是我检测不同机器登录的精心设计的方法

  • 当用户登录时,为他生成一个哈希键,将其存储在他的会话和数据库中。数据库只为用户存储一个hashkey(它不是登录历史记录)

  • 每当用户访问页面时,检查会话中的哈希键是否与数据库中的哈希键匹配

  • 如果匹配,一切都好

  • 如果不匹配,则它不是来自同一台机器;因为如果用户在其他地方登录,将生成一个新的hashkey并替换数据库中的hashkey

  • 4a。告诉原始计算机上的用户“您已登录到其他地方”,并取消设置那里的所有会话(即,让他注销)。但这只是在下一次页面刷新时才会发生——如果使用AJAX,这是可以避免的


    对于相同的登录-如果用户试图登录到网站,而他已经登录,只是显示一条消息,他已经登录?如果他再次登录,刷新会话数据的目的是什么(我们这里说的是同一个用户在同一台机器上登录到同一个站点吗?

    这是我真正设计的检测不同机器登录的方法

  • 当用户登录时,为他生成一个哈希键,将其存储在他的会话和数据库中。数据库只为用户存储一个hashkey(它不是登录历史记录)

  • 每当用户访问页面时,检查会话中的哈希键是否与数据库中的哈希键匹配

  • 如果匹配,一切都好

  • 如果不匹配,则它不是来自同一台机器;因为如果用户在其他地方登录,将生成一个新的hashkey并替换数据库中的hashkey

  • 4a。告诉原始计算机上的用户“您已登录到其他地方”,并取消设置那里的所有会话(即,让他注销)。但这只是在下一次页面刷新时才会发生——如果使用AJAX,这是可以避免的


    对于相同的登录-如果用户试图登录到网站,而他已经登录,只是显示一条消息,他已经登录?如果他再次登录,刷新会话数据的目的是什么(我们这里说的是同一个用户在同一台机器上登录同一个站点吗?

    请提供更多信息,例如…您使用的是什么语言?嗨,Matt,我在客户端使用jquery,在后端使用servlet。您使用的是哪种Web服务器?哪种JDK?嗨,詹姆斯,谢谢你的回复,我使用的是tomcat 6,JDK版本也是jdk1.6。请告诉我如何实现。请提供更多信息,例如…你用什么语言开发?嗨,马特,我在客户端使用jquery,在后端使用servlet。你使用的是哪种Web服务器?哪个JDK?嗨,詹姆斯,谢谢你的回复,我使用的是tomcat 6,JDK版本也是jdk1.6.plz告诉我如何实现谢谢你的回复,你能告诉我如何实现吗,我希望如果他再次打开新会话,他应该自动从以前的登录中注销。尝试此会话\u重新生成_id@Extrakun,不要假设他使用的是PHP。我使用的是java(servlets)和tomcat服务器。感谢您的回复,您能否告诉我,如果他再次打开新会话,我希望他应该如何从以前的登录中自动注销。请尝试此会话\u重新生成_id@Extrakun,不要假设他在使用PHP。我在使用java(servlet)和tomcat服务器。感谢您的回复,请允许我通知您,我正在使用tomcat 6 vesrion和jdk 1.6,您能告诉我如何使用servlet或其他方法实现它吗?对于任何基于web的应用程序,原理都是一样的。我想您正在使用JSP。您可以了解如何使用它在JSP和DB access中创建会话,并完成上述步骤。他们是最棒的