SpringMVC 提供了一个非常方便的工具类,能够在任意地方很方便的获取 request 和 session 对象。
RequestContextHolder 顾名思义,持有上下文的 Request 容器。
在新的 Spring 版本中不需要配置监听器,但如果和第三方框架集成,有时候需要在 web.xml 中配置监听
器.
个人理解:
先通过工具类RequestContextHolder得到ServletRequestAttributes,然后再得到我们的请求对象.HttpServletRequest.
把请求参数放进Session或从Session取出
public class UserContext {
//一个常量;
public static final String USER_IN_SESSION = "user_in_session";
//获取session的方法
private static HttpSession getSession() {
return((ServletRequestAttributes)
(RequestContextHolder.getRequestAttributes())).getRequest().getSession();
}
//把信息存在session里面
public static void setCurrentUser(Employee current) {
//进行判断如果不为空将请求的参数放进session,如果为空则销毁
if(current!=null) {
getSession().setAttribute(USER_IN_SESSION, current);
}else {
getSession().invalidate();
}
}
//从session里取出参数
public static Employee getCurrentUser() {
return (Employee) getSession().getAttribute(USER_IN_SESSION);
}
}