如何在Spring中取得Request对象
Posted 百里马
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Spring中取得Request对象相关的知识,希望对你有一定的参考价值。
这里首先需要说明一点的是,下面讲的获取Request
对象都是在非Controller
层中进行的操作。因为对于Controller
来说,若要用到Request
对象的话,直接在方法签名中声明一个HttpServletRequest
对象就可以了。另外作为一个良好的Controller-Service-Dao
架构,HttpServletRequest
对象也不应该出现在Service
层或Dao
层中,那么其实也就是在一些通用的工具类中才会需要用到它。OK,下面开始正题:
注解
public class TestUtil
@Autowired
private HttpServletRequest request; //这里可以获取到request
配置Listener
在web.xml
中配置一个RequestContextListener
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
配置完成之后,在代码中就可以获取到Request对象了
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getResponse();
如果有Struts
HttpServletRequest request = ServletActionContext.getRequest();
以上是关于如何在Spring中取得Request对象的主要内容,如果未能解决你的问题,请参考以下文章
Spring中如何获取request的方法汇总及其线程安全性分析