栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC学习笔记

SpringMVC:
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M:Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分两类:
	实体类Bean:专门存储业务数据,
	业务处理Bean:指Service 或 Dao对象,专门处理业务逻辑和数据访问
V:View,视图层,值工程中html或jsp页面,作用是于用户交互,展示数据
C:Controller,控制层,指工程中的Servlet,作用是接收请求和响应浏览器
MVC工作流程:
	用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller
	调用响应的Model层处理请求,处理完毕将结果返回到Controller,Controller在根据
	请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器
特点:
	基于原生的Servlet,功能强大的前端控制器DispatchServlet,对请求和响应进行
	统一处理
SpringMVC的配置方式:默认配置方式,位于WEB-INF下
	扩展配置方式,init-param 设置初始化参数、将DispatchServlet初始化时间提前到服务器启动时
		1
@RequestMapping注解:将请求和处理请求的控制器方法关联起来,建立映射关系
SpringMVC接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理对应的请求
	标识一个类:设置映射请求的请求路径的初始信息
	标识一个方法:设置映射请求的请求路径具体信息
	value属性必须设置,是一个字符串类型数组,表示该请求映射能够匹配多个请求地址对应的请求
	method属性通过请求的请求方式(get、post)匹配请求映射
		是一个RequestMethod类型的数组,表示该请求映射能够匹配多种请求方式的请求
		405报错:请求方式不满足method属性
	params属性通过请求的请求参数匹配请求映射,params 需要同时满足所有
	headers属性通过请求的请求头信息匹配请求映射
	ant风格的路径:? :表示任意单个字符、*:表示任意的0哥或多个字符、 **:任意一层或多层目录
	*路径中的占位符* @PathVariable注解,将占位符所表示的数据赋值给控制器的方法的形参
通过控制器方法的形参获取请求参数:
	在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在
	DispatcherServlet中就会将请求参数赋值给相应的形参
@RequestParam 将请求参数和控制器方法的形参创建映射关系,三个属性:
	value:指定为形参赋值的请求参数的参数名
	required:设置是否必须传输此请求参数,默认值true
		设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求
		参数,且没有设置defaultValue属性,则页面报错400;若设置为false;则当前请求
		不上必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null
	defaultValue:不管required属性值,当value所指定的请求参数没有传输或传输的值为""时
		则使用默认值为形参赋值
	@RequestHeader将请求头和控制器方法的形参创建映射关系
	@cookievalue将cookie数据和控制器方法的形参创建映射关系
	通过POJO获取请求函数、过滤器解决请求参数乱码问题
域对象共享数据:
	1.ServletAPI向request域对象共享数据
	*2.ModelAndView向request域对象共享数据 方法返回值为ModelAndView
		Model主要用于向请求域共享数据、View主要用于设置视图,实现页面跳转
	3.Model向request域对象共享数据
	4.map向request域对象共享数据
	5.ModelMap向request域对象共享数据
Model、ModelMap、map类型的参数本质上都是BindingAwareModelMap类型的
向session域共享数据 使用ServletAPI
向application域共享数据 ServletContext对象
SpringMVC的视图:
SpringMVC中的视图时View接口,视图作用渲染数据,将模型Model中的数据展示给用户
默认有转发视图(InrenalResourceView)和重定向视图(RedDirectView)
ThymeleafView: xmlns:th="http://www.thymeleaf.org"
转发视图:forward: 为前缀
重定向视图:redirect: 为前缀
视图控制器view-controller:在控制器方法中没有任何的请求处理过程,只需要设置一个视图名称
	
	当SpringMVC中设置了任何一个view-controller时,其他控制器中的请求映射将全部失效
	此时需要在SpringMVC的核心配置文件中设置mvc注解驱动标签
	开启MVC的注解驱动:
RESTFul:
representational State Transfer 表现层资源状态转移
HTTP协议里,四个表示操作方式的动词:GET 获取、POST 新建、PUT 更新、DELETE 删除
HiddenHttpMethodFilter:put和delete
web.xml 先配置编码过滤器再配置处理请求方式put和delete的HiddenHttpMethodFilter
开放对静态资源的访问
HttpMessageConverter:保温信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文
@RequestBody 标识形参  	RequestEntity 封装请求报文一种类型-完整请求报文信息
@ResponseBody 标识一个控制器方法(响应浏览器数据)  
	ResponseEntity	用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文
		实现文件下载功能、实现上传功能post emtype="multipart/form-data" 二进制
		文件上传解析器,将上传的文件封装为MultipartFile
		
json类型 对象{} 数组[]
拦截器:SpringMVC中的拦截器用于拦截控制器方法的执行
需要实现HandlerInterceptor
preHandle() 控制器方法之前 返回false拦截
postHandle() 之后
afterCompletion() 视图渲染之后
配置拦截器:
...
 在拦截器配置的顺序影响执行
preHandle()按配置顺序执行 postHandle()和afterCompletion()按配置的反序执行
preHandle()返回false和它之前的拦截器的preHandle()都会执行,postHandle()都不执行
	返回false的拦截器之前的拦截器的afterComplation()会执行
异常处理器:处理控制器方法执行过程中异常,HandlerExceptionResolver
配置异常处理:
	
注解异常处理:
@ControllerAdvice将当前类标识为异常处理组件
@ExceptionHandler(...)设置所标识的方法处理的异常
注解配置SpringMVC:
@Configuration 配置类
@ComponentScan(...) 扫描组件
@EnableWebMvc MVC注解驱动
@Bean
WebMvcConfigurer接口  ctrl+o 代码方法
SpringMVC常用组件:
DispatcherServlet:前端控制器 统一处理请求和响应
HandlerMapping:处理器映射器 根据请求的url、method等信息查找Handler
Handler:处理器
HandlerAdapter:处理器适配器,执行处理器(控制器)方法
ViewResolver:视图解析器
View:视图
SpringMVC的执行流程:
1.用户向服务器发送请求,请求被SpringMVC前端控制器DispatchServlet捕获
2.DispatchServlet对请求url解析,得到请求资源标识符(URI),
	判断请求URI对应的映射:
	不存在,在判断是否配置了mvc:default-servlet-handler找不到404,
	存在,3.根据URI,调用HandlerMapping获得该Handler配置的所有相关对象,最后以
		HandlerExecutionChain执行链对象的形式返回。
	4.DispatchServlet根据获得的Handler,选则合适的HandlerAdapter
	5.成功获得HandlerAdapter,此时执行preHandler
	6.提取Request中的模型数据,填充Handler,开始执行,处理请求
	7.Handler执行完成、返回给DispatchServlet一个ModelAndView对象
	8.postHandler
	9.根据返回ModelAndView,视图解析,渲染视图
	10.afterCompletion方法
	11.渲染结果返回客户端
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号