目录
7.3@RequestMapping 是 post 还是 get 请求?
1.什么是SpringMVC?
我们可以从官网看下对于SpringMVC的描述:
Spring Web MVC :: Spring Framework
翻译为中文:
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring 框架中。它的 正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC”。
从上述定义我们可以得出两个关键信息:
1. Spring MVC 是一个 Web 框架。
2. Spring MVC 是基于 Servlet API 构建的。
2.SpringMVC的作用
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
MVC模式(Model-View-Controller):解决页面代码和后台代码的分离。
3.SpringMVC的原理
在没有使用SpringMVC之前我们都是使用Servlet在做Web开发。但是使用Servlet开发在接收请求参数,数据共享,页面跳转等操作相对比较复杂。servlet是java进行web开发的标准,既然springMVC是对servlet的封装,那么很显然SpringMVC底层就是Servlet,SpringMVC就是对Servlet进行深层次的封装。
4.MVC模式
在上面我们提到了MVC模式,那么到底什么是MVC模式呢?
MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构模式,它把软件系统分为模型model(javabean)、视图view(jsp/img)、控制器Controller(Action/servlet)三个基本部分。
我们可以这样理解:
控制器存在的目的就是为了保证模型和视图的一致性,当模型发生改变时,控制器可以把模型中的新内容更新到视图中。
1.Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数 据。
2.View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
3.Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户 输入,并向模型发送数据。
5.SpringMVC的执行流程和原理
上面的图只是展示出了 SpringMVC 的 MVC 三部分的处理情况
那么SpringMVC涉及到了哪些组件呢?以及SpringMVC执行流程和原理到底是什么呢?
--涉及组件分析:
1、前端控制器DispatcherServlet由框架提供,在web.xml中配置。
作用:接收请求,响应结果,相当于转发器,中央处理器。
2、处理器映射器HandlerMapping)由框架提供。
作用:根据请求的url查找Handler(处理器/Controller),可以通过XML和注解方式来映射。
3、处理器适配器HandlerAdapter由框架提供。
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler中的方法。
4、处理器Handler(也称之为Controller,需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。
作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。
5、视图解析器ViewResolver由框架提供。
作用:进行视图解析,把逻辑视图解析成真正的物理视图。
SpringMVC框架支持多种View视图技术,包括:jstlView、freemarkerView、ThymeleafView等。
6、视图View(需要工程师开发)
作用:把数据展现给用户的页面
View是一个接口,实现类支持不同的View技术(jsp、freemarker、pdf等)
--SpringMVC执行流程:
1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
5.执行处理器Handler(Controller,也叫页面控制器)。
6.Handler执行完成返回ModelAndView
7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11.DispatcherServlet响应用户。
6.如何学习SpringMVC?
说了这么多,我们到底应该怎样学习SpringMVC呢?
学习 Spring MVC 我们需要掌握以下 3 个功能:
1. 连接的功能:将用户(浏览器)和 Java 程序连接起来,也就是访问一个地址能够调用到我们的 Spring 程序。
2. 获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数。
3. 输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户。
对于 Spring MVC 来说,掌握了以上 3 个功能就相当于掌握了 Spring MVC。
7.SpringMVC的创建和连接
Spring MVC 项目创建和 Spring Boot 创建项目相同(Spring MVC 使用 Spring Boot 的