MVC模式是指Model-View-Controller(模式-视图-控制器)模式,是开发Web应用程序时常用的一种代码分层方式。

最典型的MVC就是jsp+servlet+javabean模式

JavaBean作为模型,既可以作为数据模型来封装业务数据,又可以作为业务逻辑模型来包含应用的业务操作。其中,数据模型用来存储或传递业务数据,而业务逻辑模型接收到控制器传过来的模型更新请求后,执行特定的业务逻辑处理,然后返回相应的执行结果。

JSP作为视图层,负责提供页面为用户展示数据,提供相应的表单(Form)来用于用户的请求,并在适当的时候(点击按钮)向控制器发出请求来请求模型进行更新。

Serlvet作为控制器,用来接收用户提交的请求,然后获取请求中的数据,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法进行更新,同时根据业务执行结果来选择要返回的视图。

SpringMVC架构处理请求流程

SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。

Spring MVC框架的体系结构

客户端发出HTTP请求,Web应用服务器接收此请求。如匹配DispatcherServlet的请求映射路径,则Web容器将该请求转交给DispatcherServlet处理;

DispatcherServlet拿到请求之后,根据请求的信息(URL、请求参数、HTTP方法等)及HandlerMapping的配置找到处理请求的处理器(Handler);

当DispatcherServlet找到相应的Handler之后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter可以理解为真正使用Handler来干活的人。

在请求信息真正到达调用Handler的处理方法之前的这段时间,Spring MVC还完成了很多工作,它会将请求信息以一定的方式转换并绑定到请求方法的入参,对于入参的对象会进行数据转换、数据格式化以及数据校验等。这些都做完以后,最后才真正调用Handler的处理方法进行相应的业务逻辑处理。

处理器完成业务处理之后,将一个ModelAndView对象返回给DispatcherServlet,其中包含了逻辑视图名和模型数据信息。

DispatcherServlet通过ViewResolver将逻辑视图名解析为真正的视图对象View,可以是JSP、HTML、XML、PDF、JSON等等,Spring MVC均可灵活配置,在以后会介绍。

得到真正的视图对象之后,DispatcherServlet会根据ModelAndView对象中的模型数据对View进行视图渲染。

最终客户端获得响应消息。

最后总结一下核心开发步骤

1、  DispatcherServlet 在 web.xml 中的部署描述,从而拦截请求到 Spring Web MVC

2、  HandlerMapping 的配置,从而将请求映射到处理器

3、  HandlerAdapter 的配置,从而支持多种类型的处理器

4、  ViewResolver 的配置,从而将逻辑视图名解析为具体视图技术

5、  处理器(页面控制器)的配置,从而进行功能处理

Spring MVC需要的jar包

简述介绍Spring MVC 框架相关推荐

  1. Spring MVC框架-持久层用hibernate自动化(1)

    ##Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC ...

  2. 【Java学习路线之JavaWeb】Spring MVC框架入门教程

    文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...

  3. Spring MVC框架在进行表单提交,自动封装成对象提交,在以对象的形式入参

    最近做了一个超市订单管理系统的项目,使用的是Spring MVC 和Spring 框架. 如上图:进行新用户添加.此处jsp页面代码如下: <div class="right" ...

  4. Spring MVC框架概述

    概述 Spring MVC是Spring框架中用于Web应用快速开发的一个模块.作为当今业界最主流的Web应用开发框架,Spring MVC有时也被称为Spring Web MVC. 在介绍Sprin ...

  5. Mybatis,Spring,MVC框架

    文章目录 @[toc] unit12-mybatis框架 MyBatis简介(了解) 什么是MyBatis 为什么要使用MyBatis MyBatis快速入门 准备数据,创建库和表 创建工程,导入所需 ...

  6. Spring MVC框架的数据验证

    用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有Web应用必须处理的问题.在Spring MVC框架中有两种方法可以验证输入数据,一种是利用Spring自带的验证框架,另一种是利用JSR ...

  7. Spring MVC 框架搭建及详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  8. spring mvc框架设计与实现

    spring mvc框架通过DispatcherServlet来作请求分发,主要由HandlerMapping,HandlerAdapter,HandlerInterceptor三个抽象来完成.通过H ...

  9. 搭建基于spring MVC框架 + RESTful架构风格技术总结

    2019独角兽企业重金招聘Python工程师标准>>> 实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的 ...

最新文章

  1. 【科技】浅谈圆的反演
  2. 疯狂ios讲义疯狂连载之日期选择器(UIDatePicker)
  3. SAP CRM WebClient UI calculated fields的工作原理
  4. python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器
  5. golang下的条件编译
  6. win10远程计算机证书错误,win10系统下出现Wi-Fi证书错误的四种解决方案
  7. Load Average (系统负载)
  8. Linux系统在Xshell6布置定时任务
  9. 阿里云服务器使用不了rz、sz命令?
  10. python实现——WORD转PDF(全自动化,支持doc、docx)
  11. giant和huge的区别
  12. 如何恢复计算机我的电脑工具栏,电脑任务栏怎么还原 电脑任务栏的还原方法...
  13. 移动100m宽带慢的要死_家里拉了100M的宽带,为什么网速还是那么慢?
  14. H5页面调用手机打电话、发短信、传邮件功能
  15. php 解析pathinfo 类
  16. Decimal中Scale和Precision是什么
  17. 2022广航蓝桥杯选拔赛压轴题:取数博弈游戏
  18. Python模拟登录某橙色软件并获取所有订单,康康买了啥奇奇怪怪的东西?
  19. 想换工作,零基础如何转行3D建模,职业规划
  20. 控制bing搜索爬取的方法

热门文章

  1. PeekMessage和GetMessage函数的主要区别
  2. flutter wrap和chip
  3. java vector的排序_java 中vector 排序
  4. 简单粗暴的学习计划表,希望自己能够坚持!
  5. 群体智能优化算法之鲸鱼优化算法(Whale Optimization Algorithm,WOA)
  6. js删除字符串中指定字符
  7. 密信国密浏览器,为SM2商密算法普及提供生态支持
  8. c语言二维数组判断几行几列,C语言 二维数组的行列区别
  9. 最新全自动建站神器系统/宝塔建站系统源码
  10. 拼多多、饿了么、蚂蚁金服Java面试题大集合