使用SpringMvc登录拦截Hexo博客

图库跑路了所以图片看不了了

SpringMvC中的MVC是什么?

MVC是一种设计模式,这种模式的理念是将复杂的代码分为三个模式,MVC主要解决表现层的问题。

浏览器访问表现层(Controller)–>表现层访问业务层–>将数据封装到(Model)–>再通过(View)渲染

业务逻辑和实现思路:对我的博客想添加一个登录页面,即需要对我博客下的所有地址进行拦截,而这与平时所练的接口拦截差不多,因为登录博客页面也是个get请求。采用JWT令牌进行校验。至于为什么要对我的博客进行拦截,后面我的新项目你就知道答案了awa~

先用IDEA新建一个项目

里面创建好如下的目录:

user类:

1
2
3
4
5
6
7
8
9
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private String password;
private String token;

}

数据库的话就三个列,id 主键递增,name 和 password

再在application里配置下自己的数据库地址:

1
2
3
4
5
6
spring:
datasource:
username: root
password: xxxx
url: jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver

controller层:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@RestController
@Slf4j
public class Controller {

@Autowired
private LoginMapper loginMapper;

private final String LOGIN_SUCCESS="登录成功!";

private final String LOGIN_FAIL="用户名或密码错误,登录失败";


// ...其他处理请求的方法
@PostMapping("/login")
public String login(@RequestBody User user) {
log.info("用户名:{}", user.getName());
// 调用Mapper方法,根据用户名查询数据库
User u =loginMapper.login(user);
return u!=null?LOGIN_SUCCESS: LOGIN_FAIL;
}
}

Mapper层:

1
2
3
4
5
6
7
@Mapper
public interface Mapper {

@Select("SELECT * FROM users WHERE name = #{name} AND password = #{password}")
User login(User user);

}

接下来就是最关键的jwt令牌和登录拦截了~