spring mvc中,用户对象都是存到session中的,虽然可以通过直接传Httpsession 对象来使用session,但是每次操作都得传入session对象,比较麻烦。还有一种办法就是通过RequestContextHolder对象获取request,所以写了一个简单的工具类来获取session,操作用户:
public final class UserUtils {
private static HttpSession getSession() {
HttpSession session = null;
try {
session = getRequest().getSession();
} catch (Exception e) {
}
return session;
}
public static HttpServletRequest getRequest() {
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return attrs.getRequest();
}
/**
* 从session中获取用户
*
* @param session
* @return user
*/
public static User getUser() {
return (User) getSession().getAttribute(SysConstant.USER);
}
public static void setUser(User user) {
getSession().setAttribute(SysConstant.USER, user);
}
public static void removeUser() {
HttpSession session = getSession();
session.removeAttribute(SysConstant.USER);
session.invalidate();
}
}