【发布时间】:2017-06-22 10:56:51
【问题描述】:
来自HttpSessionListener 的sessionCreated() 方法是否自动与request.getSession() 调用同步?特别是,我想知道在sessionCreated() 方法中设置会话属性并在servlet 中使用request.getSession().getAttribute("something") 检索属性是否是线程安全的?
例如,拥有
@Override
public void sessionCreated(HttpSessionEvent se) {
se.getSession().setAttribute("something", new Something());
}
在HttpSessionListener,并拥有
Something something = (Something) request.getSession().getAttribute("something");
synchronized(something){
// do anything with this "something" object
}
在HttpServlet? 的doGet() 方法内部我担心的是,如果这个sessionCreated() 方法没有自动与requested.getSession() 同步,则getAttribute("something") 返回的值可以是null。
【问题讨论】:
标签: java multithreading session servlets listener