🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
上一篇我们已经将通过jwt生成好的token返回给了前端 那么对于一些需要登陆的控制器就得需要携带token进行访问 所以今天我们来开发一下springboot的登陆拦截器 ### ![](https://img.kancloud.cn/8e/8b/8e8bbdf39a26833a98dee146d23ee5c8_2856x1736.png) ![](https://img.kancloud.cn/f3/52/f352b50d898b75aa5a9c920e17c5295d_1903x1663.png) ### 然后再去写一个拦截配置 ### ![](https://img.kancloud.cn/bf/32/bf32ed6e55bc3d1a88f162cfb4ec8c54_2418x1593.png) ### 随便写一个控制器我们来测试一下 ### ![](https://img.kancloud.cn/dc/2b/dc2b34a6048032308514ab96cfa7bb71_2393x1649.png) ### ![](https://img.kancloud.cn/48/f8/48f8b48811cd73c62e25ea532f76c42c_2164x1237.png) ### 在Spring Boot中,如果你想要创建一个拦截器(Interceptor),那么你需要实现`HandlerInterceptor`接口。这个接口定义了三个方法,你可以在需要的时候覆盖它们来添加自定义的拦截逻辑: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`:这个方法在请求处理之前调用(即在控制器方法调用之前)。如果此方法返回`false`,则请求处理流程将立即停止,并且不会调用后续的拦截器(如果有的话)以及目标处理器。如果此方法返回`true`,则请求流程将继续。 2. `postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)`:这个方法在请求处理之后调用(即在控制器方法调用之后,但在视图渲染之前)。它通常用于在视图渲染之前修改模型数据。请注意,如果控制器方法没有返回任何视图(即它返回了一个`@ResponseBody`注解的响应),则不会调用此方法。 3. `afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)`:这个方法在整个请求处理完成后调用,即在视图渲染之后。它通常用于执行清理操作,如日志记录、资源清理等。