在使用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。
以上是spring普通類別取得session和request對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!