int user.id=1;
session.setAttribute("loginUser", user.id);
创建一个HttpSessionListener,监听session创建,写有
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
String user_id = (String) session.getAttribute("loginUser");
System.out.println(session.getId());
System.out.println(session.getAttribute("loginUser"));
}
为什么第一个有值,而且和servlet里的session.getId()一样,但是第二句就是null?
不想向session中直接存对象,因为只用到一个值,哪种监听器好用?HttpSessionAttributeListener是实现了的,但是是放入的整个对象,换成值就不行了。求教,急啊
5 个解决方案
#1
是说放个对象可以吗?呵呵,那就把int换成Integer。
#2
session.getId() 是获取的sessionId,是内存中这个session的id
session.getAttribute("loginUser") 这个取得是session中保存的对象值。session创建时,是先到listener里的sessionCreated方法,然后才到servlet的,所以你是先取值(为null),再在servlet里赋值的
session.getAttribute("loginUser") 这个取得是session中保存的对象值。session创建时,是先到listener里的sessionCreated方法,然后才到servlet的,所以你是先取值(为null),再在servlet里赋值的
#3
为什么第一个有值,而且和servlet里的session.getId()一样,但是第二句就是null?
第一个的值是session创建时容器给他的 不是你赋值的
第二个没值 是不是你就没把这个对象放在session中?
session.setAttribute("loginUser", user.id); 后面这个参数是object类型
第一个的值是session创建时容器给他的 不是你赋值的
第二个没值 是不是你就没把这个对象放在session中?
session.setAttribute("loginUser", user.id); 后面这个参数是object类型
#4
第2个
这样就可以System.out.println((String)session.getAttribute("loginUser"));
返回类型需要转换
这样就可以System.out.println((String)session.getAttribute("loginUser"));
返回类型需要转换
#5
转换成你要的类型
#1
是说放个对象可以吗?呵呵,那就把int换成Integer。
#2
session.getId() 是获取的sessionId,是内存中这个session的id
session.getAttribute("loginUser") 这个取得是session中保存的对象值。session创建时,是先到listener里的sessionCreated方法,然后才到servlet的,所以你是先取值(为null),再在servlet里赋值的
session.getAttribute("loginUser") 这个取得是session中保存的对象值。session创建时,是先到listener里的sessionCreated方法,然后才到servlet的,所以你是先取值(为null),再在servlet里赋值的
#3
为什么第一个有值,而且和servlet里的session.getId()一样,但是第二句就是null?
第一个的值是session创建时容器给他的 不是你赋值的
第二个没值 是不是你就没把这个对象放在session中?
session.setAttribute("loginUser", user.id); 后面这个参数是object类型
第一个的值是session创建时容器给他的 不是你赋值的
第二个没值 是不是你就没把这个对象放在session中?
session.setAttribute("loginUser", user.id); 后面这个参数是object类型
#4
第2个
这样就可以System.out.println((String)session.getAttribute("loginUser"));
返回类型需要转换
这样就可以System.out.println((String)session.getAttribute("loginUser"));
返回类型需要转换
#5
转换成你要的类型