Spring MVC中的WebRequest和HttpServletRequest

use*_*944 8 java spring spring-mvc spring-3

两者有什么区别?两者都有getParameter方法和setAttribute方法,然后两者之间的区别?

1)哪一个更好用?

2)请解释可以使用它们的具体方案.

JB *_*zet 13

WebRequestjavadoc在这个主题上非常明确:

Web请求的通用接口.主要用于通用Web请求拦截器,使其可以访问一般请求元数据,而不是实际处理请求.

(强调我的).

javadoc链接到WebRequestInterceptor,它说:

一般Web请求拦截的接口.通过构建WebRequest抽象,允许应用于Servlet请求以及Portlet请求环境.

所以,基本上,除了WebRequestInterceptor之外,你不应该使用WebRequest.他们引入了这个接口,以便能够编写适用于servlet和portlet的拦截器.除此之外,如果您真的需要访问Spring MVC控制器中的请求,则应使用标准的HttpServletRequest.

  • 因此,您对 JavaDoc 参考的解释直接与参考文档相矛盾,其中控制器中请求映射方法支持的参数类型中有以下项目:“`org.springframework.web.context.request.WebRequest` 或 `org .springframework.web.context.request.NativeWebRequest`。允许通用请求参数访问以及请求/会话属性访问,而不依赖于本机 Servlet/Portlet API。” 它还解释了使用它而不是“HttpServletRequest”的差异(和优点)。 (5认同)