SpringMVC
SpringMVC入门
介绍
SpringMVC将Servlet一些通用功能进行了抽取和封装,使用它之后,代码主要有两部分组成:
前端控制器:由SpringMVC提供,主要负责接收参数和返回数据
处理器:由程序员编写,主要负责参数的处理和业务层调用
案例
入门案例
需求
发送一个请求name=张三&age=18,后台接收参数,封装一个User对象返回json数据
步骤分析
创建web工程,添加依赖
添加web环境的初始类和核心配置类
创建实体类
创建处理器
部署项目到Tomcat
入门案例工作流程分析
注解
@RequestMapping
名称:@RequestMapping
位置:方法 类
范例:
属性:
value: 等同于path,用于为当前方法绑定访问路径
method:用于限制请求类型,如果省略此选项,代表不对请求类型做限制
注意:此注解也可以标注在类上,代表类中的所有方法都可以共用一段URL
@ResponseBody
作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为JSON格式响应
位置:Controller方法上/类上(如果标在类上,代表类中所有方法上都生效)
简化:@RestController = @Controller + @ResponseBody ;
postman
postman
Postman是一款功能强大的接口调试工具
接受请求参数
简单、对象类型
简单类型
需要保证前端传递的参数名称跟方法的形参名称一致
对象类型
需要保证前端传递的参数名称跟实体类的属性名称一致
数组、集合类型
数组类型
需要保证前端传递的参数名称跟方法中的数组形参名称一致
日期类型
日期类型
使用 @DateTimeFormat 注解完成日期参数格式转换
Json参数
JSON参数
SpringMVC也可以接收请求体中的json字符串为参数,并且自动封装为指定对象
此时要求JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识
路径参数
路径参数
springmvc还支持通过请求路径直接传递参数,后台使用{…}来标识该路径参数,需要使用 @PathVariable 获取
@RequestParam
如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。
使用@RequestParam还可以为参数设置默认值
注意事项
@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。
如果该参数是可选的,可以将required属性设置为false。
统一异常处理
出现异常,该如何处理?
方案一:在Controller的方法中进行try…catch处理。代码臃肿,不推荐
方案二: 全局异常处理。简单、优雅、推荐
全局异常处理器
注意事项
@RestControllerAdvice 标注在类上,声明当前类是一个用于专门处理异常的类
@ExceptionHandler 标注在方法上,声明当前方法可以处理哪些异常
Restful
开发规范-Restful
REST是一种软件架构风格,其强调HTTP应当以资源为中心[在请求地址中尽量的不要出现动词]。
REST使用不同的请求方式表示不同的操作操作: GET(获取)、POST(新建)、PUT(更新)、DELETE(删除)