首页 > 编程语言 > 详细

springboot 拦截器 使用

时间:2021-01-24 14:18:28      阅读:28      评论:0      收藏:0      [点我收藏+]

1、创建 拦截器(interceptor) 


package com.example.demo.config;

import com.example.demo.interceptor.MyHandlerInterptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
* Created by Intellij IDEA.
*
* @author
* User:  33754
* Date:  2021/1/23
*/
@Configuration
public class AdminWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyHandlerInterptor())
//所有请求都拦截
.addPathPatterns("/**")
//放行的请求, 放行的静态资源
.excludePathPatterns("/","/login","/css/*.css","/fonts/*","/images/*","/js/*");
}
}
 

 

2、创建 拦截器执行的 class

  

 1 package com.example.demo.interceptor;
 2 
 3 import com.example.demo.tuil.Optional;
 4 import lombok.extern.log4j.Log4j;
 5 import lombok.extern.log4j.Log4j2;
 6 import lombok.extern.slf4j.Slf4j;
 7 import org.springframework.web.servlet.HandlerInterceptor;
 8 import org.springframework.web.servlet.ModelAndView;
 9 
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.servlet.http.HttpSession;
13 
14 /**
15  * Created by Intellij IDEA.
16  *登录检查
17  * @author18  * User:  33754
19  * Date:  2021/1/23
20  */
21 @Slf4j
22 public class MyHandlerInterptor implements HandlerInterceptor {
23 
24     /**
25      * 前处理器
26      * @param request 请求
27      * @param response 返回
28      * @param handler 处理器
29      * @return  返回
30      * @throws Exception  异常
31      */
32     @Override
33     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
34         StringBuffer requestUrl = request.getRequestURL();
35         log.info("拦截的路径我是   "+requestUrl);
36 
37         //检查是否登录
38         HttpSession session = request.getSession();
39         Object user = session.getAttribute("user");
40         //调用 optional(判断非null... )类 
41             Optional<Object> objectOptional = Optional.ofNullable(user);
42            if (objectOptional.isPresent()) {
43                return true;
44            }
45         session.setAttribute("msg","请先登录");
46         response.sendRedirect("/");
47         return false;
48     }
49     /**
50      *  后处理器
51      * @param request 请求
52      * @param response 返回
53      * @param handler 处理器
54      * @param modelAndView  参数 视图
55      * @throws Exception  异常
56      */
57     @Override
58     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
59         System.out.println("postHandle modelandview"+ modelAndView);
60     }
61     /**
62      * 页面加载完之前
63      * @param request 请求
64      * @param response 返回
65      * @param handler 处理器
66      * @param ex    异常
67      * @throws Exception 异常
68      */
69     @Override
70     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
71         System.out.println("after ex 异常"+ ex);
72     }
73 
74 }

 

springboot 拦截器 使用

原文:https://www.cnblogs.com/nowthefuture/p/14320675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!