1、指定销毁session用了invalidate()方法,下面我模拟一下,登录,销毁。。。。看看效果图(图中内容个人网站内容非商用):
- 我先用谷歌登录一下:
获取到了,sessionId对不对? - 我又用IE登录一次:
下面的这一串是IE浏览器的SessionId - 我现在指定sessionID去销毁: IE浏览器sessionID: A0036BE8DE90C63D86FF99F917F821FE
代码无报错哦! 我讲讲我的想法!最后贴代码参考:- 首先我登录,会创建session,获取sessionID,同时监听(HttpSessionListener)Session的创建与销毁。
- 监听了之后我是不是想干啥干啥? 我是存到一个Map<String, HttpSession>里面。
String 为sessionId 后者为session对象 - 获取session的时候为防止null,getSession(true),设为true,为什么扔一个true进去,
如果获取的当前session为null(比如:销毁之后),会重新创建session。 - 指定销毁用户的Session:
- 记住自己不要剔除/强制自己下线!!!没有自己打自己的!
Session监听的代码给你们我用的Springboot 2.13:
写的不好,勿喷!!!!!!// 存放所有用户的sessionId 和 session 对象 public static final Map<String, HttpSession> httpSessions = new HashMap<>(); @Bean public HttpSessionListener httpSessionListener() { return new HttpSessionListener() { @Override public void sessionCreated(HttpSessionEvent hse) { System.out.println("创建session"); httpSessions.put(hse.getSession().getId(), hse.getSession()); } @Override public void sessionDestroyed(HttpSessionEvent hse) { httpSessions.remove(hse.getSession().getId()); } }; }