首页 > 其他分享 >Spring 3.x MVC 入门1 -- 图解MVC整体流程

Spring 3.x MVC 入门1 -- 图解MVC整体流程

时间:2023-04-28 11:33:36浏览次数:27  
标签:String -- Spring MVC mvc view public View


Spring mvc的生命周期

开始使用 spring mvc之前,我们必须需要了解下SPRING MVC的流程,如下图:

 

在看下图之前的一些说明: (下面介绍的HandlerMapping,HandlerAdapter,HandlerExceptionResovler,ViewResolver都有个order属性,因为这些接口每一个都可以注册多个实现,order代表他们的执行顺序,order越小的越先执行,一般先执行的匹配到了后面的就不会执行了)

DispatcherServlet:         整个Spring MVC的前端控制器,由它来接管来自客户端的请求

HandlerMapping:           DispatcherServlet会通过它来处理客户端请求到各个(Controller)处理器的映射

HandlerAdapter:            HandlerMapping会根据它来调用Controller里需要被执行的方法

HandlerExceptionResolver:    spring mvc处理流程中,如果有异常抛出,会交给它来进行异常处理

ViewResolver:              HandlerAdapter会把Controller中调用返回值最终包装成ModelAndView,ViewResolver会检查其中的view,如果view是一个字符串,它就负责处理这个字符串并返回一个真正的View,如果view是一个真正的View则不会交给它处理,为什么view即可以是字符串又会是View呢下面会进行解释

View:                         对应MVC 中的V, 此接口只有一个方法 render,用于视图展现

ModelAndView             对于解决上面介绍ViewResoler或者下面图片的疑惑,这个类中的view这个属性是 Object 类型的,它可以是一个视图名也可以是一个实际的View,这点我们观察其源码可以很清楚的看出来

private Object view;
 
 public void setViewName(String viewName) {
   this.view = viewName;
}
 public String getViewName() {
  return (this.view instanceof String ? (String) this.view : null);
}
 public void setView(View view) {
  this.view = view;
 }
 public View getView() {
  return (this.view instanceof View ? (View) this.view : null);
 }

Spring mvc的流程图

如果看不全或者看不清图,请点击以下链接,由于图片太大,流程入口从中间上方的Client开始

Spring 3.x MVC 入门1 -- 图解MVC整体流程_java

Spring 3.x MVC 入门1 -- 图解MVC整体流程_mvc_02



 



 




标签:String,--,Spring,MVC,mvc,view,public,View
From: https://blog.51cto.com/u_16087105/6233669

相关文章

  • 获取时间段内每周一
    原文:java获取时间段内的所有星期一_java获取一段时间内的周一_程序媛的格子衫的博客-CSDN博客  大神原文,指定某个时间端,指定需要星期几,返回时间段内指定星期几的日期字符串点击查看代码/***@paramargs*@throwsException*/publicstaticvoid......
  • LCD、OLED、Mini LED、Micro LED和Smart MNT
    LCD、OLED、MiniLED、MicroLED和SmartMNT是当前比较热门的电视显示技术,它们有如下具体区别:LCDLCD(LiquidCrystalDisplay)是液晶显示技术的英文缩写,它是目前应用最广泛的平面显示技术之一。LCD显示技术的基本原理是:利用两片玻璃基板之间的液晶材料随电压变化而产生光学......
  • 马克思的数学问题
    一问题描述一共有三十个人其中有男人女人和小孩男人吃饭花3先令女人2先令小孩1先令一共花费50问男人女人小孩的人数。二设计思路多种情况运用穷举法通过循环嵌套将各个符合条件的结果输出。三程序流程图 四伪代码实现#include<iostream>usingnamespacestd;intmain(){ ......
  • openGauss之物理备份与恢复实践操作(openGauss课程openGauss3.0.0)
    一、opengauss的背景和行业现状 2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关 众所周知,opengauss起源于postgresql,在此基......
  • 多通道振弦传感器无线采集仪发送数据到 FTP 服务器
    多通道振弦传感器无线采集仪发送数据到FTP服务器配置工具的参数配置区列出了与设备工作相关的所有参数项,每个参数项有【读取】和【修改】两个按钮,点击【读取】按钮获得设备的当前参数值,点击【设置】按钮将当前界面显示的值写入设备。注:参数修改后,必须点击【系统】面板内的【......
  • 从零开始构建HTML 5 Web页面
    HTML5是时下Web开发领域炒得火热的一个术语,是的,很多人都看好它,也有很多业内知名公司开始正式使用HTML5重新构建自己的网站,如YouTube开始使用HTML5视频,Google已经弃用自家的Gears,开始全面拥抱HTML5实现离线解决方案,各大浏览器厂家也纷纷开始支持HTML5,连被人诟病的微软也声称要......
  • 这招学起来,自己就能给证件照换底色了!
    昨天,单位突然通知我们行政人员要提交两张白底一寸照,多第二天一大早就要上交,这也太突然了!最近拍的证件照只有蓝底的。马上去拍的话恐怕来不及吧。我还开玩笑的跟同事说:下次要把白底、蓝底、红底都拍一遍以防万一。我同事一脸惊讶问我为什么要这么麻烦!自己用软件处理一下不就好了吗?......
  • PATH和path,傻傻分不清
    习惯了Windows电脑下的所见即所得,找到程序或文件双击即可运行或打开;于是我们被惯得以为电脑会像人一样聪明,给他一个名字就可以运行程序或打开文件;于是在命令行下或程序里不断碰壁,为啥这个命令不运行了呢?我们不能太高估电脑(或操作系统),不要以为只要输入一个程序名或文件名,电脑(或操作......
  • 认识HTML5的WebSocket
    在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocketAPI。WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看HTML5的WebSocketAPI:它可用于客户端、服务器......
  • Web开发神器,最智能的Javascript IDE——WebStorm
    我的开发很大一部分是和Javascript打交道,很久以来,我一直在Spket、Aptana、VisualStudio、IntelliJIDEA、notepad++、vim等选择中徘徊,因为发现他们都很好,但都缺少我想要的……直到我开始使用WebStorm。 什么是我对JavascriptIDE选择的标准?1、快速智能的代码提示(全项目的)和补全2......