Tus*_*rao 13 java servlets httpsession
我想HttpSession通过JSESSIONID 获取Java .可能吗?如果有,怎么样?
Bal*_*usC 30
你需要收集所有在Map用HttpSessionListener你自己.
public class HttpSessionCollector implements HttpSessionListener {
private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();
@Override
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
sessions.put(session.getId(), session);
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
sessions.remove(event.getSession().getId());
}
public static HttpSession find(String sessionId) {
return sessions.get(sessionId);
}
}
Run Code Online (Sandbox Code Playgroud)
只需web.xml按如下方式注册即可运行它:
<listener>
<listener-class>com.example.HttpSessionCollector</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
然后,您想要的任何地方都HttpSessionCollector.find(sessionId)可以解决HttpSession问题.
那说,这是一个巨大的气味.肯定有更好的方法来解决实际的功能需求;)正如我在你的后续问题中评论的那样:
这是你第二次问一个在现实世界中永远不应该实践的问题.老实说,这一切都闻起来.这是什么,您认为
HttpSession在服务器端获取与JSESSONID关联并在客户端获取JSESSIONID值的问题是"解决方案"?在一个新问题中详细说明这一点,你将得到正确方法的答案.
认真对待.我们不是在取笑你,我们只是试图帮助你朝着正确的方向,以避免你的项目/ webapp因安全漏洞和不良做法而破坏和/或你会被解雇.
| 归档时间: |
|
| 查看次数: |
29927 次 |
| 最近记录: |