一、Spring MVC简介
三层架构
MVC
Spring MVC
Spring MVC架构
Spring MVC 与 Struts2
二、入门程序
架构
web.xml
index.jsp
以下时java的xml配置文件,用于@Controller注解的扫描。
springmc.xml
为web.xml添加java的springmvc配置文件扫描
web.xml
控制器
为java配置添加视图解析器
springmc.xml
为java配置添加注解支持
springmc.xml
程序流程
程序完整流程
其中 前端控制器,视图解析器需要做配置
处理器映射器和处理器适配器只需要在java配置文件添加<mvc:annotation-drive/>配置就可以自动开启
mvc:annotation-driven
三、注解
3.1 @RequestMapping
@RequestMapping
@RequestMapping(value = "/town",method = {RequestMethod.POST,RequestMethod.GET},params = {"username"},headers = {“Accept”)
@RequestMapping(value = "/town",method = RequestMethod.GET,params = {"username=town"})
value 和 path 作用相同,代表访问路径
method限定请求的方法
params限定请求必须包含规定的key或key-value
headers限定请求头
3.2 @RequestParam
作用
@RequestParam是强制的,请求参数key必须为name的值
3.3 @RequestBody
3.31 基础内容
作用
主要应用于json传输。
@RequestParam和@RequestBody
二者的区别主要体现在数据传递的contentType,而不在于get还是post,
3.32 json
java配置文件
ajax请求
接收json请求
返回json响应
3.4 @Pathvariable
作用
3.5 @RequestHeader
作用
3.6 @CookieValue
作用
3.7 @ModelAttribute
作用
类似预加载机制,先执行的方法可从数据库中查找,再执行controller方法值,再对数据库信息进行覆盖,没有的部分得以保存。
return+pojo方法
void+map方法
3.8 @SessionAttributes
作用
四、请求参数绑定
4.1 简单数据类型的绑定
index.jsp
控制器
4.2 javabean的绑定
实现序列化的作用是可以将javabean转化为字节流进行网络传输。
实体类
在jsp页面中添加form表单,用于封装javabean
index.jsp
Controller
web.xml
4.3 集合的绑定
实体类
index.jsp
页面输入及结果
4.4 类型转换
类型转换java类
java配置文件
4.5 原生servlet
五、RESTful
请求方法表示动词,路径表示名词。
POST:增加
GET:获取
DELETE:删除
PUT:修改
请求路径相同,请求方法不同会跳转到不同的方法内执行。
如果方法和路径均相同,可以用占位符{id}区分。
六、Response
6.1 页面跳转
6.11 String跳转
1.经视图解析器解析,返回指定页面
2.将信息通过model存储到request,前端解析拿到数据并展示。
String
6.22 void跳转
void
手动转发页面
6.13 ModelAndView跳转
mv
6.3 转发和重定向
forware和redirect
七、文件上传
7.1 前提
7.2 原理
7.3 实现
文件上传依赖
7.3.1 前端
index.jsp
7.3.2 后端传统实现
controller
7.3.3 后端Spring MVC实现
原理
springmvc.xml
controller
7.3.4 跨服务器上传
跨服务器上传依赖
八、拦截器
8.1 原理
8.2 自定义异常处理实现
controller
异常处理
方法
修改控制器
自定义异常类
异常解析器
java配置文件配置异常解析器
error前端页面
8.3 拦截器实现
原理
自定义三种拦截器
java配置拦截器
执行结果
多拦截器配置
过程为
1前 2前
2后 1后
2最后 1最后
九、SSM框架
9.1 架构说明
soring整合MVC和MyBatis
9.2 实现
表结构
实体类
dao层
service接口
seviceImpl实现类