文档章节

Java中ModelAndView是做什么的?

牧师-Panda
 牧师-Panda
发布于 2017/08/08 20:27
字数 463
阅读 150
收藏 1

要了解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对象渲染出的结果返回个客户。

 

本文转载自:

共有 人打赏支持
牧师-Panda
粉丝 27
博文 146
码字总数 180044
作品 0
浦东
Java 及 Springboot 2 中的异常闲谈

Java及springboot2中的异常闲谈 异常的简介 首先看一下常见的 Throwable 类 官方Java 8 Throwable 官方介绍。 Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类...

seal_90
08/13
0
0
spring mvc3中的addFlashAttribute方法

记得在spring mvc2中,当保存POJO到数据库后,要返回成功页面,如果这个时候要带点信息, 则要这样: //第三个参数(UserModel user)默认为绑定对象 @RequestMapping(value = "/user/save", ...

jackyrong
2013/02/16
0
0
springmvc请求接收参数的几种方法

通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuidaima.com/share/1751862044773376.htm JAVA [java] view plainco...

boonya
2014/10/23
0
0
springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明: ModelAndView Java代码 @RequestMapping("/show1") public...

随智阔
2014/03/09
0
0
SpringMVC之接收请求参数和页面传参

Spring接收请求参数 1,使用HttpServletRequest获取 Java代码 @RequestMapping("/login.do") public String login(HttpServletRequest request){ String name = request.getParameter("name")......

白志华
2015/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
24分钟前
1
0
Spring Aop原理之Advisor过滤

在上文(Spring Aop之Advisor解析)中我们讲到,Spring Aop对目标bean的代理主要分为三个步骤:获取所有的Advisor,过滤当前bean可应用的Advisor和使用Advisor为当前bean生成代理对象,并且上文...

爱宝贝丶
35分钟前
0
0
JMockit学习教程

1 JMockit中文网 我觉得如果仅仅是开发自测的话,把JMockit中文网认真看一遍,就可以在项目中使用JMockit了。 http://jmockit.cn/index.htm 2 JMockit中文教程 官方文档中文版。对于不喜欢看...

SuperHeroes
47分钟前
0
0
Linux服务器几乎从不采用Arch Linux?

我们见得多的Linux服务器系统一般都是什么Ubuntu Server啊,什么Cent OS啊,什么Fedora啊,或者企业采用的Red Hat啊,为什么几乎没有Arch Linux呢?下面我将从若干个方面指出Arch Linux在服务...

linux-tao
58分钟前
0
0
js 函数柯里化 闭包

参考 https://mp.weixin.qq.com/s/GEHL3jarDdAAcr5tQGjmDg 一个统计求和的函数 需要知道整个数组的信息,然后遍历求值 function countMoney() { let money = 0 // 温馨提示:arguments...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部