Springmvc 使用session 存储值(不同控制器下)
有很多种在session存储的方法,我这里简单介绍一种,有兴趣的可以自己去查查
HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session=request.getSession();
session.setAttribute("user",user.getEmaill());
获得session中所存储的值
HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session=request.getSession();
session.getAttribute("user");
注意:上面的情况须得在同一个控制器下进行,不同控制器的sessionid不一样,也就是session不一样。比如:
你在一个控制器下存储进东西,在另一个控制器下获取,就会获得到 null,会报错,空指针异常
因此,想要在两个不同,或多个不同控制器下获得数据,得换一个全局唯一的对象来存储
我选择的是:ServletContext
存储方式:
HttpServletRequest request =
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
request.getServletContext().setAttribute("user",user.getEmaill());
取值
HttpServletRequest request =
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
request.getServletContext().getAttribute("user");
这就可以解决了不同控制器下存取值的问题了!