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