自学内容网 自学内容网

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)!