日期:2014-05-19  浏览次数:20659 次

spring2.5获得用户登录的session信息
spring2.5获得用户登录的session信息,得到的都是最后一个登录的用户信息,怎么得到当前用户信息呢? 


------解决方案--------------------
当前用户信息,还是在HttpSession里面弄吧,这个和Spring没多大关系.在登陆的时候 将用户存在HttpSession就行,想取就在httpSeesion里面拿,为了方便你拿,我提供一个工具类给你.
[code=Java]
public class UserFactory {

private static final ThreadLocal <HttpServletRequest> threadLocal
= new ThreadLocal <HttpServletRequest> ();

private UserFactory() {
}

public static User getUser() {
User user = null;

if (threadLocal.get() != null) {

HttpServletRequest request
= (HttpServletRequest) threadLocal.get();

user = (User) request.getSession()
.getAttribute(Constants.USER);
}
return user;
}

public static void set(ServletRequest request) {

HttpServletRequest req = (HttpServletRequest) request;
threadLocal.set(req);
}

public static HttpServletRequest getRequest() {
HttpServletRequest request = (HttpServletRequest) threadLocal.get();
return request;

}

public static ServletContext getServletContext() {
return getRequest().getSession().getServletContext();
}
}

其中的Constants.USER为在登陆时的定义变量:
session.setAttribute(user , Constants.USER);

[/code]