spring mvc基本介绍
1 MVC 盖帘:
MVC 是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计编写 Web 应用程序表现层的模式。
MVC 设计模式的三大角色:
Model(模型):模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。
View(视图):通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。通常视图是依据数据模型创建的。
Controller(控制器):是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑
2 SpringMVC是什么:
Spring MVC 全名叫 Spring Web MVC ,它是 Spring家族Web模块 的一个重要成员。
SpringMVC 是一种基于MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建Web 应用程序的全功能 MVC 模块。
使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。
SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越Struts2,成为最优秀的 MVC 框架。
它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。
3 spring mvc六大组件说明:
1. 在 springmvc 的各个组件中,前端控制器(C)、处理器(M)、视图(V)称为 springmvc 的MVC组件
2. 在 springmvc 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 springmvc的三大组件
3. 需要开发的组件有:处理器、视图
DispatcherServlet:前端控制器
用户请求到达前端控制器,它就相当于mvc模式中的C,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。
Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
View:视图
springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。
HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等
HandlAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行
View Resolver:视图解析器
View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
Spring MVC 调用过程:
4 拦截器
SpringMVC 的拦截器主要是针对特定处理器进行拦截的。springMvc 拦截器( Interceptor )实现对每一个请求处理前后进行相关的业务处理,类似与servlet 中的Filter。
SpringMVC 中的 Interceptor 拦截请求是通过 HandlerInterceptor 接口来实现的。
在 SpringMVC 中定义一个 Interceptor 非常简单,主要有4种方式:
1. 实现 SpringMVC 的 HandlerInterceptor 接口;
2. 继承实现了 HandlerInterceptor 接口的类,比如 SpringMVC 已经提供的实现了HandlerInterceptor 接口的抽象类 HandlerInterceptorAdapter ;
3. 实现 SpringMVC 的 WebRequestInterceptor 接口;
4. 继承实现了 WebRequestInterceptor 的类;配置拦截器
SpringMVC 拦截器是绑定在HandlerMapping 中的,即:如果某个 HandlerMapping 中配置拦截,则该 HandlerMapping 映射成功的 Handler 会使用该拦截器。SpringMVC 的全局拦截器配置,其实是把配置的拦截器注入到每个已初始化的 HandlerMapping 中了。
5 CORS跨域解决方案
什么是跨域
浏览器因为安全考虑,所以设置了同源策略。同源策略简单理解就是DNS域名,端口号,协议完全相同就称为同源。同源下的页面之间才能进行js的dom操作,如果不在同一个源下任何跨文档dom访问都是被阻止的。不同源下的访问可以称之为跨域访问。
spring mvc基本介绍的更多相关文章
- Spring MVC 使用介绍(十五)数据验证 (二)依赖注入与方法级别验证
一.概述 JSR-349 (Bean Validation 1.1)对数据验证进一步进行的规范,主要内容如下: 1.依赖注入验证 2.方法级别验证 二.依赖注入验证 spring提供BeanValid ...
- Spring MVC 使用介绍(十四)文件上传下载
一.概述 文件上传时,http请求头Content-Type须为multipart/form-data,有两种实现方式: 1.基于FormData对象,该方式简单灵活 2.基于<form> ...
- Spring MVC 使用介绍(十三)数据验证 (一)基本介绍
一.消息处理功能 Spring提供MessageSource接口用于提供消息处理功能: public interface MessageSource { String getMessage(Strin ...
- Spring MVC学习(一) Spring MVC基本介绍以及配置
Spring MVC学习(一) Spring MVC基本介绍以及配置 摘要:这篇笔记是对于Spring MVC的第一部分的学习中的整理,主要记录了Spring MVC的基础知识以及配置一个简单的S ...
- Spring MVC 使用介绍(五)—— 注解式控制器(一):基本介绍
一.hello world 相对于基于Controller接口的方式,基于注解方式的配置步骤如下: HandlerMapping 与HandlerAdapter 分别配置为RequestMapping ...
- Spring MVC 使用介绍(八)—— 类型转换
一.概述 spring类型转换有两种方式: PropertyEditor:可实现String<--->Object 之间相互转换 Converter:可实现任意类型的相互转换 类型转换的过 ...
- spring mvc简单介绍xml版
spring mvc介绍:其实spring mvc就是基于servlet实现的,只不过他讲请求处理的流程分配的更细致而已. spring mvc核心理念的4个组件: 1.DispatcherServl ...
- Spring MVC 原理介绍(执行流程)
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServle ...
- Spring MVC 简单介绍
Spring MVC 是典型的mvc架构,适合web开发. controler 输入输出的控制器,也是对外view提供数据的接口,调用service层. model 数据,由bean组成(相应表),关 ...
- Spring MVC 使用介绍(十二)控制器返回结果统一处理
一.概述 在为前端提供http接口时,通常返回的数据需要统一的json格式,如包含错误码和错误信息等字段. 该功能的实现有四种可能的方式: AOP 利用环绕通知,对包含@RequestMapping注 ...
随机推荐
- 1137. 第 N 个泰波那契数 (Easy)
问题描述 1137. 第 N 个泰波那契数 (Easy) 泰波那契序列 T 定义如下: T = 0, T = 1, T = 1, 且在 n >= 0 的条件下 T = T + T + T 给你整 ...
- NFS服务器搭建与autofs自动挂载
一.NFS文件详解 1. /data/ 表示需要共享的目录. 2. IP 表示允许哪个客户端访问. 3. IP 后括号 ...
- 采集存储计算处理卡设计原理图:619-基于6U VPX的双FMC ZU19EG 采集存储计算处理卡
619-基于6U VPX的双FMC ZU19EG 采集存储计算处理卡 基于6U VPX的双FMC ZU19EG 采集存储计算处理卡 一.板卡概述 该板卡是采集.存储.计算.管理一体的高集成度.加固 ...
- 错误:[ERROR] 不再支持源选项 5。请使用 6 或更高版本。 [ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。
解决方案 pom.xml文件中增加maven编译的java.version jdk版本设置,以及maven.compiler.source 资源编译jdk版本设置和maven.compiler.tar ...
- yagmail 邮件模块
安装 yagmail 安装yagmail:https://coding.net/s/01e2c2fe-82c0-4e05-a31b-f3e9e2dbc43a 下载完成之后,cmd 切换到文件目录下,执 ...
- 一条命令删除所有静态路由华为eNSP
在系统视图下执行undo ip route-static all,可以一次删除所有静态路由,包括缺省路由. 默认状态: 执行 undo ip route-static all
- windows系统mysql8.0.20.0踩坑(-)
首先, 下载mysql-installer-web-community-8.0.20.0.msi 一步一步安装下来,一切看起来如此美好 cmd运行mysqld --install 但发现net sta ...
- Postman配置多环境请求地址
在使用Postman测试接口时,一个项目往往有多个环境(测试.正式等),请求不同环境的接口一般只是IP和端口不一样. 这时候我们可以定义多个环境变量,在接口地址中进行引用. 一.添加环境变量 1.点击 ...
- Java-Collectors.groupingBy
Java中的Collectors类的groupingBy()方法用于按某些属性对对象进行分组并将结果存储在Map实例中. 当我我们想利用它的特性,我们需要指定一个属性来执行分组.此方法提供的函数类似于 ...
- python peewee
from peewee import MySQLDatabase, Model from peewee import CharField, IntegerField, BooleanField # 引 ...