Spring MVC中的WebRequest和HttpServletRequest
问题内容:
两者有什么区别?两者都有getParameter
方法,setAttribute
方法又有什么区别呢?
1)一般而言,哪个更好?
2)请说明可以使用它们的特定方案。
问题答案:
WebRequest的javadoc在这个主题上非常清楚:
Web请求的通用接口。 主要用于通用Web请求拦截器,使它们可以访问通用请求元数据,而不是用于实际处理请求。
(强调我的)。
Javadoc链接到WebRequestInterceptor,其中说:
通用Web请求拦截的界面。通过构建WebRequest抽象,允许将其应用于Servlet请求以及Portlet请求环境。
因此,基本上,除了在WebRequestInterceptor中,您不应使用WebRequest。他们引入了此接口,以便能够编写适用于Servlet和Portlet的拦截器。除此之外,如果您确实需要访问Spring
MVC控制器中的请求,则应该使用标准的HttpServletRequest。