Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html

前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

1.什么SpringMVC

Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一个模块。SpringMVC和Spring无需通过中间整合层进行整合。

SpringMVC是一个基于mvc的web框架。

2.mvc在b/s系统下的应用

(1)用户发起request请求至控制器(Controller)

    控制接收用户请求的数据,委托给模型进行处理。

(2)控制器通过模型(Model)处理数据并得到处理结果

   模型通常是指业务逻辑

(3)模型处理结果返回给控制器

(4)控制器将模型数据在视图(View)中展示

  web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。

(5)控制器将视图response响应给用户

   通过视图展示给用户要的数据或处理结果。

3.SpringMVC框架

3.1架构流程

(1)用户发请求至前端控制器(DispatcherServlet)

(2)DispatcherServlet接收到请求调用HandlerMapping处理器映射器

(3)处理器映射器根据请求url找到具体的处理器(Handler,可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

(4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

(5)执行处理器(Controller,也叫后端控制器)

(6)Controller执行完后返回ModelAndView

(7)HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器

(9)ViewResolver解析后返回具体View

(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

(11)DispatcherServlet响应用户

3.2组件说明

(1)前端控制器DispatcherServlet(不需要程序员开发)

    作用:接收请求、响应结果,相当于转发器,中央处理器。

     有了DispatcherServlet可以减少其它组件之间的耦合度。

(2)处理器映射器HandlerMapping(不需要程序员开发)

     作用:根据请求的url查找Handler

(3)处理器适配器HandlerAdapter

     作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

(4)处理器Handler(需要程序员开发)

     注意:编写Handler时按照HandlerAdapter的要求去做,注意适配器才可以去正确执行Handler。

(5)视图解析器Viewresolver(不需要程序员开发)

    作用:进行谁解析,根据逻辑视图名解析成真正的视图(View)

(6)视图View(需要程序员开发jsp)

      View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf....)

如果此文对您有帮助,微信打赏我一下吧~

时间: 2024-10-17 13:24:32

Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构的相关文章

Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十三)--SpringMVC入门程序(二) 1.需求 使用springmvc和mybatis完成商品列表查询. 2.整合思路 springmvc+mybatis的系统架构: 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口. 使用mapper的扫描器自动扫描mappe

Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发 MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下: properties(属性) setting(全局配置参数) typeAliases(类名别名) typeHandlers(类名处理器) objectFactory(对

Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇) 本文主要内容: (1)SpringMVC校验 (2)数据回显 (3)异常处理器 (4)图片上传 (5)Json数据交互 (6)支持RESTful 1.SpringMVC校验 1.1校验理解 项目中,通常使用较多的是前端的校验,比如页面中js校验.对于安全要求较高的

Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7065294.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十四)--SpringMVC和MyBatis整合 1.商品修改功能开发 1.1需求 操作流程: (1)进入商品查询列表页面: (2)点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询),  要修改的商品从数据库查询,根据商品id(主键)查询商品信息: (3)在商品修改页面,修改商品信息,修改后,

Spring+SpringMVC+MyBatis深入学习及搭建(五)——动态sql

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6908763.html 前面有讲到Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射 mybatis核心:对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. mybatis提供各种标签方法实现动态拼接sql. 1. if&where 1.2 需求 用户信息综合查询列表和用户信息查询列表总数这两个statement的定义使用动态sq

Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发(转发同上)

前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)--MyBatis的基础知识.MybatisFirst中存在大量重复的代码.这次简化下代码: 原地址:http://www.cnblogs.com/shanheyongmu/p/7121016.html 使用MyBatis开发Dao,通常有两种方法,即原始Dao开发方法和Mapper接口开发方法. 1.SqlSession使用范围 1.1 SqlsessionFactoryBuilder 通过SqlSessionFac

Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--MyBatis和Spring整合 使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件. 1.什么是逆向工程 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程可以针对单表自动生成mybatis执行所需要

Spring+SpringMVC+MyBatis深入学习及搭建(八)——MyBatis查询缓存

1.什么是查询缓存 mybatis提供查询缓存,用于减轻数据库压力,提高数据库性能. mybatis提供一级缓存和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据.不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的. 二级缓存是mapper级别的缓存,多个sqlSession去操作同一个Mapper的sql语句,多个sqlSession可以共用二级缓存,二级缓存

Spring+SpringMVC+MyBatis深入学习及搭建(六)——MyBatis关联查询(转发同上)

原地址:http://www.cnblogs.com/shanheyongmu/p/7122520.html 1.商品订单数据模型 1.1数据模型分析思路 (1)每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程. (2)每张表重要的字段设置 非空字段.外键字段 (3)数据库级别表与表之间的关系 外键关系 (4)表与表之间的业务关系 在分析表与表之间的业务关系时,一定要建立在某个业务意义基础上去分析. 1.2属性模型分析 2.一对一查询 2.1需求 查询订