首页 > 其他分享 >springboot+resttemplat+请求拦截器

springboot+resttemplat+请求拦截器

时间:2022-10-14 13:58:41浏览次数:81  
标签:拦截器 springboot Object springframework html import resttemplat response 请求

参考: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 }

 

标签:拦截器,springboot,Object,springframework,html,import,resttemplat,response,请求
From: https://www.cnblogs.com/amim/p/16791376.html

相关文章

  • Springboot整合MQTT
    业务场景硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收、解析、业务处理、存储入库、数据展示。MQTT是基于发布(Publish)/订......
  • springboot+swagger
    参考:https://www.cnblogs.com/kaibindirver/p/14948036.html目录结构 maven依赖,在pom.xml添加配置1<dependency>2<groupId>io.springfox</group......
  • SpringBoot(三) - Slf4j+logback 日志,异步请求,定时任务
    1、Slf4j+logback日志SpringBoot框架的默认日志实现:slf4j+logback;默认日志级别:info,对应了实际生产环境日志级别;1.1日志级别#常见的日志框架中,日志级别都包含五种,......
  • struts2拦截器实现页面保护
    11020171018请输入用户名:请输入密码:......
  • SpringBoot 2.x 集成kaptcha生成图形验证码
    Kaptcha框架介绍谷歌开源的一个可高度配置的实用验证码生成工具验证码的字体/大小/颜色验证码内容的范围(数字,字母,中文汉字!)验证码图片的大小,边框,边框粗细,边框颜色......
  • 初识SpringBoot
    什么是SpringSpring是一个开源框架,2003年兴起的轻量级的Java开发框架。作者:RodJohnsonSpring是为解决企业级应用开发的复杂性而创建的,简化开发。Spring如何简化Java......
  • springboot项目中swagger配置
    1、导入依赖查看代码<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</vers......
  • springboot/spring使用ConfigurationProperties注解读取自定义属性(尚硅谷)
    pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xs......
  • SpringBoot集成JMH进行基准测试
    基准测试时评估程序/接口性能的一个有效的方法。笔者早期在网上了解到​​JMH​​这个代码工具。由于之前找到的一些代码不具备项目实践场景的说服力,通常是一项简单算法,独立......
  • 几行代码,搞定 SpringBoot 接口恶意刷新和暴力请求!
    在实际项目使用中,必须要考虑服务的安全性,当服务部署到互联网以后,就要考虑服务被恶意请求和暴力攻.击的情况,下面的教程,通过​​intercept​​和​​redis​​针对​​url+ip......