如果解决开2个网页 一个点登陆以后 另一个还没有登陆

比如 打开2个页面 一个点击登陆 刷新另一个却没有登陆 这种该用什么技术解决 什么cookie,session,socket,webSocket 都可以解决码 可以分享的干货吗
图片说明
图片说明

如果你用的是同一个浏览器 只不过是打开两个窗口 当你点击退出的时候 会发送一个请求给后台 然后后台清空session等信息
这样的话 在去另一个页面就会需要登录的 这是最简单的做法

服务端session记录用户登录信息,退出后清除登录信息

一个退出以后 ,后台 设置session 无效,这时另一个页面再发请求 就会判定session无效了,

浏览器窗口打开后,页面展现完就是静止的了,所以在一个页面退出后,服务端session是清除了,但是另一个页面还在那不动,
如果点击需要登录的操作,会提示登录的,如果需要另一个页面也有反应需要客户端和服务器需要有心跳或者长连接才可以,网站一般没有什么要求的话
不这样做

先按电脑上的ALT键,再用鼠标点Ie上的“文件”,最后点击“新建会话”,弹出新窗口后,可以实现同时两个不同账户登录同一网站。

使用cookie即可实现

简单点的使用session, 在加载页面的时候获取session来判断登录状态, 还可以做一下单点登录, 这个比较复杂, 资料自己找咯

需要使用单点登录身份认证系统,后台会获取当前用户信息,存入sesssion,当使用同样的浏览器打开网页时,后台会匹配session,能匹配直接打开登录后的页面。

使用session, 在加载页面的时候获取session来判断登录状态

使用session保留用户认证信息,这样一个用户登录一次后,Session中即保留认证信息了。而第二个页面也是用同样的Session,不会创建新的session。

解决这个问题,首先你得了解session,cookie的机制和原理(建议读一下servlet规范)。http请求本来是无状态的,但是server端如何识别登录后的操作还是之前的登录用户呢,主要就是用session和cookie来解决。当你登录后,server端(servlet容器)会产生一个session(其实不登录一般也有session,只不过这时候session里没有东西),一般登录后会将userid放到session里。然后将sessionID通过cookie返回给浏览器,而且这个cookie的生命周期一般为-1(即:浏览器关闭,cookie失效),以后的每次请求浏览器都会将该cookie传给server,server会根据这个cookie(存有sessionid),来查找session,如果session存在且该session中有userid信息,即表示当前请求是已登录的。
而你需要解决的问题,有可能会牺牲部分安全性,你可以改变cookie的生命周期,或者使用“remember me”功能,或者干脆使用客户端session:登录后,加密用户信息(token)通过cookie返回浏览器(并将该cookie过期时间设长),之后每次请求,server端解密该token,能解密的就认为已登录。