java jsessionid 会话,如何使用JSESSIONID手动加载Java会话?

我有一个处理多部分表单的Servlet。该帖子实际上是由嵌入在页面中的Flash文件上传组件进行的。在某些浏览器中,Flash生成的POST不包含JSESSIONID,这使我无法在帖子期间从会话中加载某些信息。

Flash上​​传组件在特殊表单字段中包含Cookie和会话信息。使用此表单字段,我可以实际检索JSESSIONID值。问题是,我不知道如何使用这个JSESSIONID值手动加载该特定的会话。

编辑 – 基于ChssPly76的解决方案,我创建了以下HttpSessionListener实现:

@Override

public void sessionCreated(final HttpSessionEvent se) {

final HttpSession session = se.getSession();

final ServletContext context = session.getServletContext();

context.setAttribute(session.getId(), session);

}

@Override

public void sessionDestroyed(final HttpSessionEvent se) {

final HttpSession session = se.getSession();

final ServletContext context = session.getServletContext();

context.removeAttribute(session.getId());

}

它将所有会话添加到ServletContext作为其唯一ID所映射的属性。我可以在上下文中放置一个会话映射,但似乎是多余的。请对此决定发表任何想法。接下来,我将以下方法添加到我的servlet中以通过id来解析会话:

private HttpSession getSession(final String sessionId) {

final ServletContext context = getServletContext();

final HttpSession session = (HttpSession) context.getAttribute(sessionId);

return session;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值