`

springmvc获取HttpServletRequest对象

阅读更多

spring mvc在普通类中获取HttpServletRequest对象需要做2个步骤:

1、在web.xml文件中加如下配置

<listener>

    <listener-class>org.springframework.web.context.request.RequestContextListener </listener-class>

 </listener>

在RequestContextListener类中有如下代码,其中红色标注的为关键代码:

public class RequestContextListener implements ServletRequestListener {

 

...

...

...

 

public void requestInitialized(ServletRequestEvent requestEvent) {

if (!(requestEvent.getServletRequest() instanceof HttpServletRequest)) {

throw new IllegalArgumentException("");

}

HttpServletRequest request = (HttpServletRequest) requestEvent.getServletRequest();

ServletRequestAttributes attributes = new ServletRequestAttributes(request);

request.setAttribute(REQUEST_ATTRIBUTES_ATTRIBUTE, attributes);

LocaleContextHolder.setLocale(request.getLocale());

RequestContextHolder.setRequestAttributes(attributes);

}

...

...

...

}

 

 

public class ServletRequestAttributes extends AbstractRequestAttributes {

 

...

...

...

 

private final HttpServletRequest request;

 

...

...

...

 

/**

* Create a new ServletRequestAttributes instance for the given request.

* @param request current HTTP request

*/

public ServletRequestAttributes(HttpServletRequest request) {

Assert.notNull(request, "Request must not be null");

this.request = request;

}

}

 

 

2、在普通类中获取对象

HttpServletRequest request =  ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

分享到:
评论
4 楼 yuyidi0630 2013-11-05  
不错不错,学习了。。[color=red][/color]
3 楼 yangyongByJava 2013-07-22  
哪有涛仔你帅啊 
2 楼 gougouqihao 2013-03-30  
靠。又搜到你了。你 TMD  太帅了
1 楼 zhuchao_ko 2013-01-13  

相关推荐

Global site tag (gtag.js) - Google Analytics