感谢作者:https://www.jianshu.com/p/f69b21731b41
本章目标
学习使用SpringBoot中是如何配置拦截器,使用拦截器来完成简单的用户登录状态判定。
项目结构:
一、pom.xml
1.添加依赖
二、application.yml
三、配置控制器
LoginController.java
1.将UserJPA使用SpringBean形式注入
2.添加用户登录方法
3.从数据库中查询指定用户, 然后对比密码是否符合, 最后写入session中
4.注意使用 @RestController
IndexController.java
1.注意使用 @Controller
四、创建拦截器
SessionInterceptor.java
1.实现HandlerInterceptor
2.设置不拦截路径
3.验证session是否存在, 不存在则拦截
接下来我们需要将SessionInterceptor拦截器添加到SpringBoot的配置中,让SpringBoot项目有这么一个拦截器存在,我们新创建一个SessionConfiguration,将拦截器的配置以及拦截路径配置好
SessionConfiguration.java
1.SpringBoot2 是实现 WebMvcConfigurer (注意)
2.SpringBoot 是继承 WebMvcConfigurerAdapter (过时)
五、运行测试
访问: http://localhost:8080/user/index
现在显示是没有问题了,我们没有登录直接访问index.jsp,当然会被拦截器拦截,
拦截后直接跳转到登录页面(preLogin.jsp)
假设用户名存在, 密码错误 进行登录会显示如下提示
我们现在输入数据库存在的用户名:admin,密码:123 进行登录会显示如下提示
显示我们已经登录成功,也就是说我们的登录用户消息已经存放到session内,那么我们来访问
http://localhost:8080/user/index