永发信息网

如何javaEE通过sessionId获取HttpSession对象

答案:2  悬赏:70  手机版
解决时间 2021-04-03 02:36
如何javaEE通过sessionId获取HttpSession对象
最佳答案
Servlet2.1之后不支持SessionContext里面getSession(String id)方法。
但是,我们可以通过HttpSessionListener监听器和全局静态map自己实现一个SessionContext。
MySessionContext.java:
public class MySessionContext {
private static HashMap mymap = new HashMap();
public static synchronized void AddSession(HttpSession session) {
if (session != null) {
mymap.put(session.getId(), session);
}
}
public static synchronized void DelSession(HttpSession session) {
if (session != null) {
mymap.remove(session.getId());
}
}
public static synchronized HttpSession getSession(String session_id) {
if (session_id == null)
return null;
return (HttpSession) mymap.get(session_id);
}
}
MySessionListener.java:
public class MySessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
MySessionContext.AddSession(httpSessionEvent.getSession());
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession();
MySessionContext.DelSession(session);
}
}
web.xml添加一个监听器:

listener.MySessionListener

根据sessionId获取Session对象:
String sessionId = request.getParameter("sessionId");
HttpSession session = MySessionContext.getSession(sessionId);
全部回答
request.getSession().getAttribute(sessionId);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ被恶举怎解
初中成绩较差的学生 高中学适合学会计 还是念
夺宝传奇中会长是演员
yg手机批发网
中华上下五千年庆父之死故事概括
tclp316l能不能用移动4g
词语补充:影子像什么
绿巨人2百度云资源
NBA2k上什么叫沃顿
武大生命科学与技术基地班研究生就业前景
人是否主要是用一个鼻洞呼气,而且还会不时转
“举一纲而万目张,解一篇而万篇明。”这句话
1150Kw一小时多少度电
i979年农历8月26公历是多少
求设计一个公文签和一笔签
推荐资讯
中国工商银行兴城兴海路自助银行地址在什么地
请以回家为话题的作文
炝莲白怎么做好吃
《半》文/莫愁 半夜更深人悄悄,半卷珠帘
丑时打两个喷嚏代表什么
一生一个王雅婷藏诗
新年愿望——让梦想变成现实作文
刘紫辰男孩叫这个名字怎么样
氨气可直接生成二氧化氮吗
驴得水电影搞笑台词,如何评价电影《驴得水》
属马姓余取名
果胶酶在果汁生产中有什么作用?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?