获取request和response的方式
方法一、参数
@RequestMapping("/test")
@ResponseBody
public void test(HttpServletRequest reqest, HttpServletResponse response){
}
方法二、利用RequestContextHolder获取(需spring4.0以上版本【不包含4.0】)
首先需要在web.xml中加入监听器
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
在代码中可以使用以下方式获取:
HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
HttpServletResponse response=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();
此方式可以用于抽取baseController eg:
public abstract class BaseController{
public HttpServletRequest getRequest() {
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}
public HttpServletResponse getResponse(){
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();
}
}