参考:https://www.cnblogs.com/kaibindirver/p/15527052.html

 

 

 

创建配置文件来注册拦截器

MyMvcConfig
 1 package com.config;
 2 
 3 import com.controle.lanjieqi.LoginHandlerInterceptor;
 4 import org.springframework.context.annotation.Bean;
 5 import org.springframework.context.annotation.Configuration;
 6 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 7 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 8 
 9 /**
10  * @author: Amim
11  * @year: 2022/9
12  **/
13 @Configuration
14 public class MyMvcConfig implements WebMvcConfigurer {
15 
16     //所有的WebMvcConfigurerAdapter组件都会一起起作用
17     @Bean //将组件注册在容器中
18     public WebMvcConfigurer webMvcConfigurerAdapter(){
19         return new WebMvcConfigurer(){
20 
21             //注册拦截器
22             @Override
23             public void addInterceptors(InterceptorRegistry registry) {
24                 //静态资源; *.css,*.js
25                 //SpringBoot已经做好了静态资源映射
26                 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**");
27 //                .excludePathPatterns("/index.html","/","/user/login","/static/**","/webjars/**");
28                 // /**  表示拦截所有路径下的所有请求
29 //                registry.addInterceptor(new LoginHandlerInterceptor())
30 //                        .addPathPatterns("/person.html","/Person.html",
31 //                                "/questionnaire.html","/Questionnaire.html",
32 //                                "/result.html","/Result.html");
33             }
34         };
35     }
36 
37 }

创建一个拦截器

LoginHandlerInterceptor
 1 package com.controle.lanjieqi;
 2 
 3 import org.springframework.stereotype.Component;
 4 import org.springframework.web.servlet.HandlerInterceptor;
 5 import org.springframework.web.servlet.ModelAndView;
 6 
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 /**
11  * @author: Amim
12  * @year: 2022/9
13  **/
14 @Component
15 public class LoginHandlerInterceptor implements HandlerInterceptor {
16 
17     //目标方法执行之前
18     @Override
19     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
20 
21         //--------------------------------------------------------添加请求头,允许跨域----方法一
22 //        setHeader(name, value):如果Header中没有定义则添加,如果已定义则用新的value覆盖原用value值。
23 //        addHeader(name, value):如果Header中没有定义则添加,如果已定义则保持原有value不改变。
24         response.setHeader("Access-Control-Allow-Origin","*");
25         response.setHeader("Access-Control-Allow-Headers", "*");
26         //Access-Control-Allow-Methods: 真实请求允许的方法
27         //Access-Control-Allow-Headers: 服务器允许使用的字段
28         //Access-Control-Allow-Credentials: 是否允许用户发送、处理 cookie
29         //Access-Control-Max-Age: 预检请求的有效期,单位为秒。有效期内,不会重复发送预检请求
30 
31 
32         //获取请求参数
33         Object user5 = request.getQueryString();
34         System.out.println(user5);
35         //获取请求头参数
36         Object user6 = request.getHeader("currentUser");
37         System.out.println(user6);
38         //获取请求方式
39         Object user7 = request.getMethod();
40         System.out.println(user7);
41         //获取请求路径
42         Object user8 = request.getRequestURI();
43         System.out.println(user8);
44 //        //重定向访问路径
45 //        response.sendRedirect("/bbb2");
46 ////        添加请求头
47 //        response.addHeader("location","http://baidu.com");
48 //        if (user == null) {
49 //            //未登录,返回登录页面
50 //            System.out.println("第一拦截了,请求前");
51 ////            response.sendRedirect("/LoginError.html");
52 //            return false;
53 //        }else {
54 //            //放行
55         return true;
56 //        }
57     }
58 
59     @Override
60     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
61         System.out.println("第二拦截了,请求中");
62     }
63 
64     @Override
65     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
66         System.out.println("第三拦截了,请求后");
67     }
68 }

 

原文地址:http://www.cnblogs.com/amim/p/16791376.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性