如何在spring普通的bean中獲取session物件
阿新 • • 發佈:2019-01-11
在使用spring時,經常需要在普通類中獲取session,request等物件。
比如在一些AOP攔截器類,在有使用struts時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到Session物件
用法:ServletActionContext.getRequest().getSession();
但在單獨使用spring時,如何在普通類中獲取session,request呢?
其實也是有辦法的
首先在web.xml增加如下程式碼:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
接著在普通bean類中:
@Autowired
private HttpSession session;
@Autowired
private HttpServletRequest request;
即可,在類中使用session物件了,是不是很方便呢。
當前加了上面的listener後也可以使用程式碼的方式獲取request物件
HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();