简述介绍Spring MVC 框架
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 框架相关推荐
- Spring MVC框架-持久层用hibernate自动化(1)
##Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC ...
- 【Java学习路线之JavaWeb】Spring MVC框架入门教程
文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...
- Spring MVC框架在进行表单提交,自动封装成对象提交,在以对象的形式入参
最近做了一个超市订单管理系统的项目,使用的是Spring MVC 和Spring 框架. 如上图:进行新用户添加.此处jsp页面代码如下: <div class="right" ...
- Spring MVC框架概述
概述 Spring MVC是Spring框架中用于Web应用快速开发的一个模块.作为当今业界最主流的Web应用开发框架,Spring MVC有时也被称为Spring Web MVC. 在介绍Sprin ...
- Mybatis,Spring,MVC框架
文章目录 @[toc] unit12-mybatis框架 MyBatis简介(了解) 什么是MyBatis 为什么要使用MyBatis MyBatis快速入门 准备数据,创建库和表 创建工程,导入所需 ...
- Spring MVC框架的数据验证
用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有Web应用必须处理的问题.在Spring MVC框架中有两种方法可以验证输入数据,一种是利用Spring自带的验证框架,另一种是利用JSR ...
- Spring MVC 框架搭建及详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- spring mvc框架设计与实现
spring mvc框架通过DispatcherServlet来作请求分发,主要由HandlerMapping,HandlerAdapter,HandlerInterceptor三个抽象来完成.通过H ...
- 搭建基于spring MVC框架 + RESTful架构风格技术总结
2019独角兽企业重金招聘Python工程师标准>>> 实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的 ...
最新文章
- 【科技】浅谈圆的反演
- 疯狂ios讲义疯狂连载之日期选择器(UIDatePicker)
- SAP CRM WebClient UI calculated fields的工作原理
- python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器
- golang下的条件编译
- win10远程计算机证书错误,win10系统下出现Wi-Fi证书错误的四种解决方案
- Load Average (系统负载)
- Linux系统在Xshell6布置定时任务
- 阿里云服务器使用不了rz、sz命令?
- python实现——WORD转PDF(全自动化,支持doc、docx)
- giant和huge的区别
- 如何恢复计算机我的电脑工具栏,电脑任务栏怎么还原 电脑任务栏的还原方法...
- 移动100m宽带慢的要死_家里拉了100M的宽带,为什么网速还是那么慢?
- H5页面调用手机打电话、发短信、传邮件功能
- php 解析pathinfo 类
- Decimal中Scale和Precision是什么
- 2022广航蓝桥杯选拔赛压轴题:取数博弈游戏
- Python模拟登录某橙色软件并获取所有订单,康康买了啥奇奇怪怪的东西?
- 想换工作,零基础如何转行3D建模,职业规划
- 控制bing搜索爬取的方法