使用sessionID 获取session对象

1.建立session的监听

2.创建自己的sessionContext  目的是加一个session的集合

3.session的创建和销毁 修改sessioncodetext内的session的集合




1、sessioncontext创建

import java.util.HashMap;


import javax.servlet.http.HttpSession;


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.sessioncontext在session监听中



import java.util.List;


import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;



public class SessionListener implements HttpSessionListener {

private         MySessionContext myc=MySessionContext.getInstance();  
public void sessionCreated(HttpSessionEvent se) {
// TODO session创建
myc.AddSession(se.getSession());     

}


public void sessionDestroyed(HttpSessionEvent event) {
// TODOsession销毁
HttpSession ses = event.getSession();

       myc.DelSession(ses);  


 
}


}


 

3.调用

 

MySessionContext myc= MySessionContext.getInstance();     
HttpSession sess = myc.getSession(session的id]);  



### 回答1: 要获取session对象,需要使用sessionid来识别用户的会话。在Java中,可以通过HttpServletRequest对象的getSession()方法来获取session对象。该方法会自动创建一个新的session对象,或者返回已经存在的session对象。可以通过HttpServletRequest对象的getSession(boolean create)方法来控制是否创建新的session对象。如果create参数为false,当session不存在时,该方法会返回null。如果create参数为true,当session不存在时,该方法会创建一个新的session对象并返回。获取session对象后,可以使用setAttribute()和getAttribute()方法来设置和获取session属性。 ### 回答2: Session是Web应用程序中存储用户相关数据的一种方式,因为HTTP是一种无状态的协议,需要使用Session机制来跟踪用户会话状态。sessionid是一个唯一的标识符,用于识别Session对象,并在用户访问Web应用程序时将Session对象的数据存储在服务器上。 要获取Session对象,首先需要将sessionid传递给服务器,通常是通过cookie或URL参数的方式将sessionid传递给服务器。然后,服务器使用传递的sessionid来检索相关的Session对象。 在Java Web应用程序中,可以使用ServletRequest接口的getSession()方法来获取Session对象。该方法具有两个重载版本: 1. getSession():获取当前请求的Session对象,如果不存在则创建一个新的Session对象。 2. getSession(boolean create):如果create参数为true,则获取当前请求的Session对象,如果不存在则创建一个新的Session对象。如果create参数为false,则只返回已经存在的Session对象,如果不存在则返回null。 下面是getSession()方法的一个示例: ``` HttpServletRequest request = ...; HttpSession session = request.getSession(); ``` 在上面的示例中,首先获取HttpServletRequest对象,然后调用其getSession()方法获取Session对象。 如果想要设置Session对象中的属性,可以使用setAttribute()方法,例如: ``` session.setAttribute("username", "张三"); ``` 在上面的示例中,将用户名“张三”存储在Session对象中,属性名为“username”。 同样地,如果想要从Session对象获取属性值,可以使用getAttribute()方法,例如: ``` String username = (String) session.getAttribute("username"); ``` 上面的示例从Session对象获取属性名为“username”的属性值,并将其转换为String类型。 综上所述,sessionid是用于识别Session对象的唯一标识符,获取Session对象需要将sessionid传递给服务器,并使用ServletRequest接口的getSession()方法。获取Session对象后,可以使用setAttribute()方法设置属性值,使用getAttribute()方法获取属性值。 ### 回答3: sessionid是一个用于标识用户在服务器端的会话状态的唯一标识符,我们可以通过这个sessionid获取用户的session对象获取session对象的过程如下: 1. 通过request对象获取sessionid 我们可以通过request对象的getRequestedSessionId()方法来获取当前请求的sessionid,以下代码演示了如何获取sessionid: ``` String sessionid = request.getRequestedSessionId(); ``` 2. 通过sessionid获取session对象 使用sessionid可以获取session对象,我们可以通过request对象的getSession()或getSession(boolean create)方法来获取session对象。其中,getSession()方法表示如果当前请求没有session,就会创建一个新的session,如果有session,就返回该session对象。getSession(boolean create)方法表示如果当前请求没有session,如果create为true,就会创建一个新的session并返回,如果create为false,就返回null。 以下代码演示了如何通过sessionid获取session对象: ``` HttpSession session = request.getSession(); //创建新的session获取已有的session HttpSession session = request.getSession(false); //只获取已有的session,如果没有就返回null ``` 获取session对象后,我们就可以使用session的setAttribute()和getAttribute()等方法来操作session中的属性值。 示例代码: ``` String sessionid = request.getRequestedSessionId(); //获取sessionid HttpSession session = request.getSession(); //获取session对象 session.setAttribute("username","Tom"); //设置session属性值 String username = (String) session.getAttribute("username"); //获取session属性值 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值