在使用spring時(shí),經(jīng)常需要在普通類中獲取session、request對象。
比如一些AOP攔截器類,在有使用struts2時(shí),因?yàn)閟truts2有一個(gè)接口使用org.apache.struts2.ServletActionContext即可很方便的取到session對象。
用法:
ServletActionContext.getRequest().getSession();
在傳統(tǒng)java spring項(xiàng)目的普通類中,如何獲取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項(xiàng)目中,沒有web.xml,也不需要收手動(dòng)注冊第一步的Listener,可以直接在普通類中注入session和request。