1. 程式人生 > >spring普通類獲取session和request物件

spring普通類獲取session和request物件

在使用spring時,經常需要在普通類中獲取session、request物件。
比如一些AOP攔截器類,在有使用struts2時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到session物件。用法:

ServletActionContext.getRequest().getSession();

在傳統java spring專案的普通類中,如何獲取session、request呢?
1、在web.xml增加如下程式碼:

<listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

2、在普通類中就可以直接注入session和request了

@Autowired
private HttpSession session;

@Autowired
private HttpServletRequest request;

除此之外,在第一步的Listener後也可以使用程式碼的方式獲取reuqest物件:

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

如果是在spring boot專案中,沒有web.xml,也不需要收手動註冊第一步的Listener,可以直接在普通類中注入session和request。