Springboot基本结构——登录 控制层

一般来说在控制层,我们要:

1.处理异常;

2.设计请求;

3.处理请求。

首先看第一个,诶,为什么在注册的时候没有处理异常?其实也处理了:

还记得吗,这是我们控制层的基类,在这里面就有对异常的统一处理。

现在我们继续添加:

 1 public class BaseController {
 2     //操作成功的状态码
 3     public static final int OK = 200;
 4 
 5     //请求处理方法,这个函数的返回值就是需要传递到前端的数据
 6     //自动将异常对象传递到此方法的参数列表上
 7     @ExceptionHandler(ServiceException.class)  //统一处理抛出的异常
 8     public JsonResult<Void> handleException(Throwable e) {
 9         JsonResult<Void> result = new JsonResult<>(e);
10         if (e instanceof UsernameDuplicatedException) {
11             result.setState(4000);
12             result.setMessage("用户名已经被占用");
13         } else if (e instanceof InsertException) {
14             result.setState(5000);
15             result.setMessage("注册时产生未知的异常");
16         } else if (e instanceof UserNotFoundException) {
17             result.setState(5001);
18             result.setMessage("产生找不到用户的异常");
19         } else if (e instanceof PasswordNotMatchException) {
20             result.setState(5002);
21             result.setMessage("产生用户名密码错误的异常");
22         }
23         return result;
24     }
25 }

 

 

 

 

好,这一部分做完后现在我们要设计请求了:

主要按照这个逻辑去设计就可以了。

 

 

 

 

 

好,现在处理请求:

在哪里编写login方法?是不是UserController这个类里面?对的。

这一部分的编写也是非常简单,直接依葫芦画瓢,注册怎么写的这里登录就怎么写,调用业务层的login方法就好了。

1 @RequestMapping("login")
2     public JsonResult<User> login(@RequestBody String username, String password) {
3         userService.login(username, password);
4         return new JsonResult<>(OK);
5     }

 最后在浏览器端测试一下就完了,比如:

localhost:8080/users/login?username=  &password=这样的格式。

posted @ 2022-09-08 16:02  EvanTheBoy  阅读(86)  评论(0编辑  收藏  举报