当前位置: 首页 > news >正文

SSM框架-SpringMVC

SpringMVC简介

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

运行原理

797576-20190906163314064-187574891.png

1、DispacherServlet前端控制器

负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。

2、HandlerMapping处理器映射器
负责查找Handler(常用action),通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置。

3、HandlerAdapter处理器适配器
Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行。
负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndView,ModelAndView将Model和view封装起来(模型数据和视图)

4、ViewResolver视图解析器
负责进行视图解析,返回View,框架执行很多类型的View(jstlView、pdfView。。。)

5、Handler处理器
需要开发,按照适配器的规则开发,比如适配器要求Handler实现某个接口,Handler必须实现接口。

6、View视图页面(jsp)
需要开发,jsp+jstl。为了视图通用性建议使用第三方框架,jstl。

处理器映射器、处理器适配器、视图解析器称为springmvc的三大件。

转载于:https://www.cnblogs.com/monkay/p/11475637.html

相关文章:

  • SSM框架-mybatis
  • 微软3389远程漏洞CVE-2019-0708批量检测工具
  • 浅谈 赛马问题
  • JDK配置
  • 数据库模糊查询
  • C#视频拍照、视频录制项目示例
  • shell每隔一秒钟就记录下netstat状态
  • Java打包配置
  • Web前端之HTML
  • 数据结构与算法
  • Web前端之CSS基础
  • JAVA实现HTTP请求
  • 顺序存储结构与链式存储结构
  • Apache Kafka(九)- Kafka Consumer 消费行为
  • xray写POC踩坑
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • AngularJS指令开发(1)——参数详解
  • CSS 三角实现
  • es6要点
  • IndexedDB
  • JavaScript函数式编程(一)
  • Laravel 实践之路: 数据库迁移与数据填充
  • LeetCode18.四数之和 JavaScript
  • leetcode386. Lexicographical Numbers
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python打包系统简单入门
  • SAP云平台里Global Account和Sub Account的关系
  • TypeScript实现数据结构(一)栈,队列,链表
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • WePY 在小程序性能调优上做出的探究
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 缓存与缓冲
  • 前端临床手札——文件上传
  • 前端面试总结(at, md)
  • 入门到放弃node系列之Hello Word篇
  • 使用putty远程连接linux
  • 双管齐下,VMware的容器新战略
  • 提醒我喝水chrome插件开发指南
  • 组复制官方翻译九、Group Replication Technical Details
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # include “ “ 和 # include < >两者的区别
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #{}和${}的区别是什么 -- java面试
  • #13 yum、编译安装与sed命令的使用
  • #QT(一种朴素的计算器实现方法)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (java)关于Thread的挂起和恢复
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)换源+apt-get基础配置+搜狗拼音
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (离散数学)逻辑连接词