Spring中獲取Session的方法匯總
阿新 • • 發佈:2017-08-31
ttr public urn 過去 ets red ole list details
Spring:
web.xml
<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
在普通bean中使用:
@Autowired private HttpSession session; @Autowired private HttpServletRequest request;
在普通類中使用:
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Spring Boot:
和上面寫法一致。
Spring MVC:
必須要有一個request的引用,否則是取不到的。request可以通過控制器傳入,有了request自然就可以取到Session了,或者可以通過Spring的WebUtils取Session數據。
攔截器舉例:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String context = (String) WebUtils.getSessionAttribute(request, "context_key");return context != null ; }
普通類:
只能在servlet調用參數,傳遞過去。
參考:
http://blog.csdn.net/qq_15099611/article/details/50886697
Spring中獲取Session的方法匯總