如何从vo类中取出数据_117SpringBoot 服务端表单数据校验以及异常的处理

  1. SpringBoot服务端数据-实现添加用户功能
    1. 修改POM文件添加Web启动器与Thymeleaf坐标。

<!-- springBoot 的启动器 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

  1. 在项目中使用Thymeleaf编写一个添加用户的视图。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<form th:action="@{/user/add}">

用户姓名: <input type="text" name="username"><br>

用户年龄: <input type="text" name="userage"><br>

<input type="submit" value="添加">

</form>

</body>

</html>

  1. 创建一个Controller处理添加用户请求。

@RequestMapping("/add")

public String addUser(Users users) {

this.usersService.insertUser(users);

return "ok";

}

  1. SpringBoot服务端数据-数据校验
    1. Spring Boot中服务端数据校验技术的特点是什么?

方便,简单

阐述Spring Boot中如何实现服务端数据校验?

th:errors 会获取响应的数据 .有,会将数据取出,没有会报异常

  1. @NotBlank注解的作用是什么?

非空校验

  1. @Valid注解的作用是什么?

针对哪一个对象进行校验

  1. BindingResult的作用是什么?

@Valid 和 BindingResult 是一一对应的,如果有多个@Valid,那么每个@Valid后面跟着的BindingResult就是这个@Valid的验证结果,顺序不能乱

  1. SpringBoot服务端数据-解决异常
    1. 在服务端数据校验时会出现什么异常?

7404d3971384c707668ce1694b483aee.png
  1. 产生异常的原因是什么?

在刚开始加载页面的时候,由于还没有开始填写数据,就进行跳转页面,所以这时没有数据。th:errors 会获取响应的数据 .有,会将数据取出,没有会报异常

  1. 如何解决该异常?

方式一(注入对象式)

方式二(@ModelAttribute()注解式)

  1. @ModelAttribute注解的作用是什么?

@ModelAttribute() 注解的作用相当于为 users 对象修改别名 ,使用后,前端获取方式应该同样改变,

  1. SpringBoot服务端数据-其他校验规则
    1. @NotBlank: 注解的作用是什么?

判断字符串是否为null 或者是空串(去掉首尾空格)。

  1. @NotEmpty: 注解的作用是什么?

判断字符串是否null 或者是空串。

  1. @Length: 注解的作用是什么?

判断字符的长度(最大或者最小)

  1. @Min: 注解的作用是什么?

判断数值最小值

  1. @Max: 注解的作用是什么?

判断数值最大值

  1. @Email:注解的作用是什么?

判断邮箱是否合法

  1. SpringBoot异常处理-自定义错误页面
    1. 在Spring Boot中一共提供了几种处理异常的方式?

五种

  1. 什么是自定义错误页面方式?

SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常SpringBoot 会向 /error 的url 发送请求。在springBoot 中提供了一个叫BasicExceptionController 来处理 /error 请求,然后跳转到默认显示异常的页面来展示异常信息。

  1. 自定义错误页面的命名上有何要求?

如果我们需要将所有的异常同一跳转到自定义的错误页面, 需要在 src/main/resources/templates 目录下创建error.html 页面。注意:名称必须叫error

  1. 自义定错误页面应该放到项目的什么位置?

需要在 src/main/resources/templates 目录

  1. SpringBoot异常处理-@ExceptionHandler
    1. @ExceptionHandler注解的作用是什么?

它会捕获注解里面的异常 ,然后通过Controller跳转到相应的异常页面

  1. 使用@ExceptionHandler注解处理异常的步骤是什么?

添加注解,指定异常

  1. SpringBoot异常处理-@ControlleAdvice
    1. @ControllerAdvice注解的作用是什么?

使用@ControllerAdvice定义全局异常

  1. @ControllerAdvice+@ExceptionHandler注解处理异常有什么特点?

这一种方式是对前两种方式的升华 ,可以在不同的controller类中,都可以使用。但是问题仍是代码量过多 ,可以实现错误页面的映射 ,以及所有对应异常的页面的跳转

  1. SpringBoot异常处理-SimpleMappingExceptionResolver
    1. SimpleMappingExceptionResolver的作用是什么?

完成异常的统一处理

  1. 阐述使用SimpleMappingExceptionResolver处理异常的方式是什么?

在全局异常类中添加一个方法@Bean 完成异常的统一处理

该方法必须要有返回值。返回值类型必须是: SimpleMappingExceptionResolver

  1. SpringBoot异常处理-自定义HandlerExceptionResolver
    1. HandlerExceptionResolver接口的作用是什么?

同样配合 @Configuration实现全局异常的页面映射与跳转

  1. 阐述使用HandlerExceptionResolver接口处理异常的方式是什么?

创建一个异常处理的controller,继承HandlerExceptionResolver

  1. Spring Boot整合junit单元测试
    1. @RunWith注解的作用是什么?

让junit 与spring 环境进行整合

  1. @SpringBootTest注解的作用是什么?

1. 当前类为springBoot 的测试类

2. 加载SpringBoot 启动类。启动 springBoot

  1. Spring Boot热部署-SpringLoader-方式一
    1. 使用SpringLoader实现热部署的方式有几种?

两种

  1. SpringLoader实现热部署有什么缺陷?

就是Java 代码做部署处理。但是对页面无能为力。

这种方式的缺点是Springloader 热部署程序是在系统后台以进程的形式来运行。需要手动关闭该进程

  1. 如何启动通过Maven插件方式引入SpringLoader实现热部署的服务?

spring-boot:run

  1. 如何关闭使用SpringLoader热部署的服务?

输入 tasklist ,会显示正在运行的进程以及他们的pid ,找到对应的pid

找到需要结束进程的pid编号,输入taskkill /pid 编号 /f,按回车键,如下图所示:

也可以通过进程的名称来结束进程,输入taskkill /im 进程名称(带上后缀) /f 就可以关闭进程了,

  1. Spring Boot热部署-SpringLoader-方式二
    1. 手动添加SpringLoader的jar实现项目的热部署的步骤是什么?

添加springloader 的jar 包

  1. 启动服务时与基于插件方式添加SpringLoader方式有何区别?

可以通过eclipse直接关闭

  1. 启动服务时需要添加什么启动参数?

-javaagent:.libspringloaded-1.2.5.RELEASE.jar -noverify

  1. Spring Boot热部署-Devtools的使用
    1. Spring Loader与Devtools的区别是什么?

SpringLoader:SpringLoader 在部署项目时使用的是热部署的方式。

DevTools:DevTools 在部署项目时使用的是重新部署的方式

  1. 使用Devtools实现热部署的步骤是什么?

修改项目的pom 文件添加devtools 的依赖

运行项目即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值