一、Spring MVC简介
二、入门程序
以下时java的xml配置文件,用于@Controller注解的扫描。
为web.xml添加java的springmvc配置文件扫描
为java配置添加视图解析器
为java配置添加注解支持
其中 前端控制器,视图解析器需要做配置
处理器映射器和处理器适配器只需要在java配置文件添加<mvc:annotation-drive/>配置就可以自动开启
三、注解
3.1 @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传输。
二者的区别主要体现在数据传递的contentType,而不在于get还是post,
3.32 json
3.4 @Pathvariable
3.5 @RequestHeader
3.6 @CookieValue
3.7 @ModelAttribute
类似预加载机制,先执行的方法可从数据库中查找,再执行controller方法值,再对数据库信息进行覆盖,没有的部分得以保存。
3.8 @SessionAttributes
四、请求参数绑定
4.1 简单数据类型的绑定
4.2 javabean的绑定
实现序列化的作用是可以将javabean转化为字节流进行网络传输。
在jsp页面中添加form表单,用于封装javabean
4.3 集合的绑定
4.4 类型转换
4.5 原生servlet
五、RESTful
请求方法表示动词,路径表示名词。
POST:增加
GET:获取
DELETE:删除
PUT:修改
请求路径相同,请求方法不同会跳转到不同的方法内执行。
如果方法和路径均相同,可以用占位符{id}区分。
六、Response
6.1 页面跳转
6.11 String跳转
1.经视图解析器解析,返回指定页面
2.将信息通过model存储到request,前端解析拿到数据并展示。
6.22 void跳转
6.13 ModelAndView跳转
6.3 转发和重定向
七、文件上传
7.1 前提
7.2 原理
7.3 实现
7.3.1 前端
7.3.2 后端传统实现
7.3.3 后端Spring MVC实现
7.3.4 跨服务器上传
八、拦截器
8.1 原理
8.2 自定义异常处理实现
8.3 拦截器实现
过程为
1前 2前
2后 1后
2最后 1最后