SpringMVC
开发模式:
(1)前后端不分离:服务端渲染
数据和结构并不分离,客户端发送请求后访问指定路径资源,服务端业务处理之后将数据组装到页面,并返回带数据的完整页面。
(2)前后端分离:
序列化:服务端将数据转化为数据格式(字符串或数据流),而浏览器需将其反序列化为对象。
序列化:对象→字符串
反序列化:字符串→对象
tips:
①改端口号:server.port=8888
一、RequestMapping
(一)、@RequestMapping(“/hello ”):请求映射(此方法处理hello路径的请求)
(1)路径映射
路径位置通配符:多个都能匹配上,那就精确路径优先,精确路径必须全局唯一
*:匹配任意多个字符(0-N),但不能匹配多个路径
**:匹配任意多层路径
?:匹配任意单个字符
精确程度:完全匹配>?>*>**
路径变量:@PathVariable
(2)请求限定
@RequestMapping(value="hell*",method={RequestMethod.DELETE,RequestMethod.POST},params={},headers="haha",consumes="application/json")
请求方式:method
请求参数:params
请求头:headers
请求内容类型:consumes
浏览器必须携带什么格式的数据
响应内容类型:produces
(二)、@ResponseBody:把返回值放到响应体中
(三)、@Controller:处理请求的组件
(四)、@RestController:
包含了@ResponseBody(只响应数据)和@Controller(处理请求)
二、http
锚点:
文件上传下载需要用文件流,其余普通数据使用json。
三、请求处理
public String handle01(String username,boolean agreement)
public String handle02(@RequestParam("username") String name,@RequestParam("agreement") boolean agree)
public String handle03(Person person)
public String handle04(@RequestHeader("user-agent") String ua)
public String handle05(@CookieValue("haha") String haha)
7.使用@RequestBody封装json对象
8.使用@RequestPart/@RequestParam封装文件,完成文件上传
文件上传有大小限制,因此可设置单个文件上传大小和多个上传大小:
总结:
四、响应处理
五、Restful
REST(Representational State Transfer表现层状态转移)是一种软件架构风格。
满足REST风格的系统,称为Restful系统。
五、拦截器
六、异常处理
优先级:本类>全局;精确>模糊
(1)@ExceptionHandler
若Controller本类出现异常,会自动在本类中找有没有@ExceptionHandler标注的方法,若有,执行这个方法,他的返回值就是客户端收到的结果。
如果发生异常,多个都能处理,则精确优先。
(2)@RestControllerAdvice
@RestControllerAdvice包含了@ControllerAdvice和@ResponseBody
@ControllerAdvice
(告诉springMVC,这个组件是专门负责进行全局异常处理的)
(3)异常最终处理
前端关心异常状态,后端关心正确的业务流程。因此后端只编写正确的业务逻辑,如果出现业务问题,后端通过抛异常的方式提前中断业务逻辑。
①必须有业务异常类(exception.BizException);
②必须有异常枚举类(exception.BizExceptionEnum);
列举项目中每个模块将会出现的所有异常情况。
③编写业务代码的时候,只需要编写正确逻辑,如果出现预期的问题,需要以抛异常的方式中断逻辑并通知上层。
使用抛业务异常来感知异常,当上层感知到业务处理器之后,使用全局异常处理器:
业务期间发生非预期的逻辑,直接抛异常,中断正常业务
④全局异常处理器:处理所有异常,返回给前端约定的json数据与错误码。
中断后由上层感知异常,抛异常时需指明是何种异常,然后将异常枚举传入,然后由异常抛给上层Api,Api再抛给全局异常处理器。全局异常处理器拿到业务异常后(Code和message),响应给前端。
七、数据校验
原文地址:https://blog.csdn.net/weixin_58738870/article/details/143991100
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!