您的位置:首页 > 理论基础 > 计算机网络

springmvc在普通类中获取HttpServletRequest对象

2015-11-18 00:00 666 查看
摘要: springmvc在普通类中获取HttpServletRequest对象

springmvc在普通类中获取HttpServletRequest对象

分类: Spring MVC 2014-09-19 22:01 3144人阅读 评论(0) 收藏 举报

springmvc普通类获取HttpServletRequest对象

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

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

[html] view plaincopyprint?

<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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: