Java中ModelAndView是做什么的?
Java中ModelAndView是做什么的?
牧师-Panda 发表于4个月前
Java中ModelAndView是做什么的?
  • 发表于 4个月前
  • 阅读 25
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

要了解ModelAndView,首先要知道Spring Web MVC处理Http请求的大致过程:

一旦Http请求到来,DispatcherServlet负责将请求分发。DispatcherServlet可以认为是Spring提供的前端控制器,所有的请求都要经过它来统一分发。

在DispatcherServlet将请求分发给Spring Controller之前,需要借助Spring提供的HandlerMapping定位到具体的Controller。HandlerMapping是这样一种对象,它能够完成客户请求到Controller之间的映射。Spring Controller将处理来自DispatcherServlet的请求,Spring的Controller类似于Struts的Action,能够接受HttpServletRequest和HttpServletResponse。Spring为Controller接口提供了若干实现类,位于org.springframework.web.servlet.mvc包中,由于Controller需要为并发用户处理上述请求,因此实现Controller接口的时候,必须保证线程安全并且可以重用。Controller将处理客户请求,这和Struts的Action扮演的角色是一致的。

一旦Controller处理完成客户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了Model和View,从宏观的角度来讲,DispatcherServlet是整个Web应用的控制器;从微观的角度来讲,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型和视图。前端控制器返回的视图可以是视图的逻辑名,或者实现了View接口的对象。View对象能够渲染客户响应的结果。其中ModelAndView中的Model能够供渲染View时使用。借助于Map对象能够存储模型。

如果ModelAndView返回的视图只是逻辑名,则需要借助Spring提供的视图解析器(ViewResoler)在Web应用中查找View对象,从而将响应结果渲染给客户。

DispatcherServlet将View对象渲染出的结果返回个客户。

 

共有 人打赏支持
粉丝 24
博文 146
码字总数 180044
×
牧师-Panda
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: