SpringMVC
2021-11-15 20:22:16 1 举报
AI智能生成
SpringMVC框架
作者其他创作
大纲/内容
依赖
DispatcherServlet
CharacterEncodingFilter
HiddenHttpMethodFilter
web.xml
自动扫描的包
Thymeleaf 视图解析器
注解驱动(标配)
spring-mvc.xml
SpringMVC本身
jdbc.properties
logback.xml
配置数据源
保留Mybatis全局配置文件
舍弃Mybatis全局配置文件
需要装配数据源
指定Mapper配置文件位置
根据需要配置插件
配置SqlSessionFactoryBean
MapperScannerConfigurer
mybatis-spring:scan
扫描Mapper接口
Spring和Mybatis整合
事务管理器
开启基于注解的声明式事务
在需要事务的方法上使用@Transactional注解
声明式事务
spring-persist.xml
读取 spring-persist.xml
在 web.xml 中配置 ContextLoaderListener
读取 spring-mvc.xml
在 web.xml 中配置 DispatcherServlet
子容器可以装配父容器中的bean
两个 IOC 容器之间是父子关系
Spring和SpringMVC整合
SSM整合
搭建环境
方法级别
类级别
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
附加请求方式要求
@RequestMapping
view-controller
请求映射
value属性:请求参数名字
required属性:当前请求参数是否为必需
defaultValue属性:默认值
@RequestParam注解
通过 setXxx() 方法注入请求参数
实体类
请求参数
@RequestHeader
@CookieValue
HttpServletRequest
HttpServletResponse
HttpSession
原生 Servlet API
存入模型的数据会被存入请求域
Model系列对象
数据绑定操作的结果,如果绑定操作出错,那么错误信息可以从BindingResult对象获取
BindingResult
主要用来把请求体中的JSON数据转换为Java实体类传入handler方法
@RequestBody
其他数据
handler 方法形参
逻辑视图
转发:使用forward指令
重定向:使用redirect指令
页面跳转指令
将handler方法返回的实体类转换为JSON作为响应体返回给浏览器
@ResponseBody
作用:实现文件下载
要下载的文件的字节数组
响应消息头
封装数据
ResponseEntity
handler 方法返回值
通过 HttpSession 获取
自动装配
获取 ServletContext
让SpringMVC对未映射的请求直接放行
使用mvc:default-servlet-handler
url-pattern匹配斜杠
匹配扩展名的请求:SpringMVC处理
不匹配扩展名的请求:SpringMVC不管,Tomcat处理
url-pattern匹配扩展名
静态资源访问
基础操作
所有单词由斜杠分开,不允许使用问号键值对形式的请求参数
如果需要携带数据,那就把数据放在 URL 地址中
风格一致
URL地址的要求
POST
增
通过HiddenHttpMethodFilter来进行转换
DELETE
删
PUT
改
GET
查
请求方式要求
_method
请求参数名
原始请求方式
将路径中会变化的部分匹配出来
@PathVariable
REST
JSON数据的转换需要Jackson支持
必须配置mvc:annotation-driven
环境
@RestController
注解
Ajax
拦截全部请求
默认情况
精确匹配
匹配一层
/*
匹配多层
/**
模糊匹配
配置情况
拦截
过滤
返回true:放行
返回false:不放行
preHandle()方法
放行
三要素
preHandle()
目标 handler 方法
postHandle()
渲染视图
afterCompletion()
执行顺序
拦截器
字符串到基本数据类型
日期时间数据指定格式就能自动转换
自动类型转换
通过BindingResult是否出错
转换失败
自定义类型转换器
类型转换
hibernate-validator
hibernate-validator-annotation-processor
通过注解设定校验规则
实体类成员变量
@Validated
handler 方法中实体类形参
需要mvc:annotation-driven支持
数据校验
请求处理过程中抛出的异常
基本思想
抛出异常展示的是友好的提示界面
微观
整个项目范围内统一管理错误消息
宏观
效果
基于XML
普通请求
Ajax请求
@ControllerAdvice
@ExceptionHandler
基于注解
实现
异常映射
请求方式
multipart/form-data
编码方式
input type="file"
文件上传框
表单要求
commons-fileupload
commons-io
配置CommonsMultiPartResolver
上传文件相关数据
文件转存
Handler方法中使用MultiPartFile类型接收上传的文件
后端
文件上传
下载文件的数据
文件下载
特定功能
读取配置文件
创建内置组件对象并加入IOC容器
收集请求映射
启动过程
建立调用链
创建HandlerAdapter对象
调用拦截器的preHandle()方法
注入请求参数
准备所需的其他参数
调用handler方法
调用目标handler方法
调用拦截器的postHandle()方法
检查是否存在异常
把模型数据存入请求域
调用拦截器的afterCompletion()方法
后续操作
请求处理过程
运行原理
SpringMVC
0 条评论
回复 删除
下一页