1. 程式人生 > >如何在spring普通的bean中獲取session物件

如何在spring普通的bean中獲取session物件

在使用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();