springboot拦截器拦截提示_2020.09.06Springboot中使用拦截器

Springboot中使用拦截器

在原有项目的基础上添加拦截器提示错误信息的跳转

登录的判断将取得的用户存放到session中

编写一个拦截器

重写方法

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

//每一个项目对于登陆的实现逻辑都有所区别,这里使用最简单的Session提取User来验证登陆。

HttpSession session = request.getSession();

//这里的User是登陆时放入session的

User user = (User) session.getAttribute("user");

//如果session中没有user,表示没登陆

if (user == null) {

//这个方法返回false表示忽略当前请求,如果一个用户调用了需要登陆才能使用的接口,如果他没有登陆这里会直接忽略掉

//重定向到错误信息页面

//当然你也可以利用response给用户返回一些提示信息,告诉他没登陆

response.sendRedirect(request.getContextPath() + "/user/error");

return false;

} else {

return true;

//如果session里有user,表示该用户已经登陆,放行,用户即可继续调用自己需要的接口

}

}

编写配置类

其实和SSM中的拦截器基本上一样

@Autowired

private UserLoginInter userLoginInter;

// 这个方法用来注册拦截器,我们自己写好的拦截器需要通过这里添加注册才能生效

@Override

public void addInterceptors(InterceptorRegistry registry) {

//拦截的路径

String[] addPathPattern = {"/user/**"};

//放行的路径

String[] excludePath = {

"/user/index", "/user/login", "/user/error", "/user/loginIng"

};

//为自己定义好的拦截器添加路径 registry.addInterceptor(userLoginInter).addPathPatterns(addPathPattern).excludePathPatterns(excludePath);

}

此时运行项目

这是登录成功后跳转的路径

http://localhost:8080/user/mian

跳过登录步骤直接访问

结果重定向到此

提示错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值