Java根据sessionId获取Session对象

1. 建立一个自己的SessionContext:

package cn.org.jshuwei.session.core;  

import javax.servlet.http.HttpSession;
import java.util.HashMap;  

public class MySessionContext {
private static MySessionContext instance;
private HashMap mymap;  

private MySessionContext() {
mymap = new HashMap();
}  

public static MySessionContext getInstance() {
if (instance == null) {
instance = new MySessionContext();
}
return instance;
}  

public synchronized void AddSession(HttpSession session) {
if (session != null) {
mymap.put(session.getId(), session);
}
}  

public synchronized void DelSession(HttpSession session) {
if (session != null) {
mymap.remove(session.getId());
}
}  

public synchronized HttpSession getSession(String session_id) {
if (session_id == null) return null;
return (HttpSession) mymap.get(session_id);
}  

}

  2.新建一个Session监听

package cn.org.jshuwei.session.core;

import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;

public class SessionListener implements HttpSessionListener {
public static Map userMap = new HashMap();
private   MySessionContext myc=MySessionContext.getInstance();

public void sessionCreated(HttpSessionEvent httpSessionEvent) {
myc.AddSession(httpSessionEvent.getSession());
}

public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession();
myc.DelSession(session);
}
}

  3.在web.xml中配置

<listener>
<listener-class>cn.org.jshuwei.session.core.SessionListener</listener-class>
</listener>

  4.使用

MySessionContext myc= MySessionContext.getInstance();
HttpSession sess = myc.getSession(sessionId);

  

转载自--------------http://blog.csdn.net/hecongqi/article/details/6859034

时间: 2024-10-29 17:24:44

Java根据sessionId获取Session对象的相关文章

Java通过sessionId获取Session

Servlet2.1之后不支持SessionContext里面getSession(String id)方法. 但是,我们可以通过HttpSessionListener监听器和全局静态map自己实现一个SessionContext. MySessionContext.java: public class MySessionContext { private static HashMap mymap = new HashMap(); public static synchronized void

WebAPI中无法获取Session对象的解决办法

在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest; base.Init(); } void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e) { H

如何获取Session对象中的对象

先调用request的getSession()方法获取一个HttpSession的对象,然后将这个对象进行强制类型转换成原本封装的对象,这样就能获取Session对象中的对象了 1.调用request的getSession()方法 HttpSession session = request.getSession(); 2.强制类型转换 User user = (User) session.getAttribute("session_user"); Session注销后,浏览器后退仍显示

JAVA WEB:application与session对象使用范例与差异深度分析

1.本文分析一下request对象中getParameter方法及getAttribute的差异及使用场景. 这个关系到servlet的生命周期 很简单的一个例子,上代码 页面1 :request1.jsp 1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 2 <% 3 String path = request.getContextP

java反射之获取枚举对象

项目中导入大量枚举对象,用来定义常量.随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求. 1 public enum ExamType { 2 CRAFT(1, "草稿"), 3 PASSING(2, "待审核"); 4 private int value; 5 private String typeName; 6 7 ExamType(int value, String typeName) { 8 this.value = value; 9 t

java webservice服务器端获取request对象的三种方式

有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservice获取request对象的方法. 第一种:先配置注入: @Resource private WebServiceContext webServiceContext; 其次是下面的代码: MessageContext mc = webServiceContext.getMessageContext(

Java单例获取本对象的引用

在项目中想要获取到CommandLineRunner的实现类的引用,如果直接new对象又会导致其中的变量改变, 这时就需要直接获取本对象的引用,来调用其中的方法 通过this获取本对象的引用 原文地址:https://www.cnblogs.com/xujuntao/p/11044344.html

java 利用反射获取类对象中List的值

Field[] fields = Object.getClass().getDeclaredFields();//Object是已经被赋值的对象实例 for (Field field : fields) {if (!field.isAccessible()) { field.setAccessible(true); } if (List.class.isAssignableFrom(field.getType())) { Type t = field.getGenericType(); if (

jsp内置对象之-session对象

session对象 session对象是一个JSP内置对象. session对象在第一个JSP页面被装载时自动创建,完成回话期管理. session生命周期从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束被称为一个会话. 当一个客户访问一个服务器时,可能在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象. session对象时HttpSession类的实例. session的工作原理如下: 客户首次访问服务器的一个页面时,服务器