当前位置: 首页 > news >正文

springMVC拦截器,拦截器拦截策略设置

目录

1、MyInterceptor1

2、UserController

3、MvcConfig,拦截器4种拦截方法策略


做请求的校验,如果校验没有通过,直接返回,原来下面的处理,就不用处理了
将request进行拦截校验
将response进行拦截校验

preHandle 在请求处理之前调用

postHandler 是在回应以后

afterCompletion 是在最后调用

1、MyInterceptor1

package cn.tedu._06interceptor.interceptor;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 拦截指定请求** */
public class MyInterceptor1 implements HandlerInterceptor {/*** 一般做权限校验** retrun 是否放行,false则直接结束,请求结束* */@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("MyInterceptor1 第一个拦截器拦截 1、preHandle");return true;
//        return HandlerInterceptor.super.preHandle(request, response, handler);}/*** 可以做敏感词过滤* ModelAndView 模型数据* */@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);System.out.println("MyInterceptor1 第一个拦截器拦截 2、postHandle");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);System.out.println("MyInterceptor1 第一个拦截器拦截 3、afterCompletion");}
}

2、UserController

package cn.tedu._06interceptor.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping(value = "/v1/users/")
public class UserController {@GetMapping("login")public String login() {return "登录成功";}@GetMapping("reg")public String reg() {return "注册成功";}
}

3、MvcConfig,拦截器4种拦截方法策略

package cn.tedu._06interceptor.config;import cn.tedu._06interceptor.interceptor.MyInterceptor1;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class MvcConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {
//        注册拦截器:
//        1、策略1,拦截所有请求
//        registry.addInterceptor(new MyInterceptor1());//        2、策略2:拦截指定请求,比如:拦截登录请求
//        执行登录接口的时候,会打印拦截器日志
//        registry.addInterceptor(new MyInterceptor1())
//                .addPathPatterns("/v1/users/login");//        3、策略3:拦截指定多个请求,比如拦截用户模块请求
//        registry.addInterceptor(new MyInterceptor1())
//                .addPathPatterns("/v1/users/**");//        4、策略4:拦截用户模块中,除了登录功能以外的所有请求,registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/v1/users/**").excludePathPatterns("/v1/users/login");}
}

http://www.xdnf.cn/news/559027.html

相关文章:

  • 破解误区:WebView 调试常见认知误区与 WebDebugX 实践指南
  • AnyText2 在图片里玩文字而且还是所想即所得
  • V2X协议|如何做到“车联万物”?【无线通信小百科】
  • Hutool 常用工具类实战指南
  • selenium——基础知识
  • 数据一致性校验算法
  • 创建与管理MySQL数据库
  • Google精准狙击OpenAI Codex,发布AI编程助手Jules!
  • Fluent Bit持久化配置指南:保障日志不丢失的关键策略
  • Elasticsearch高级面试题汇总及答案
  • AMBA三种总线详解并比较
  • 元宇宙赋能广州文化传承,激发新活力​
  • C语言学习之内存函数
  • AI练习:毛发旋转效果
  • 再议AOI算法
  • 通过强化学习让大模型自适应开启思考模式
  • 101个α因子#9
  • C++(3)
  • idea如何让文件夹分层显示,而不是圆点分割
  • Python训练营打卡 Day31
  • 模板引擎:FreeMarker
  • 基于pyttsx3的文字转语音实现
  • 输出字母在字符串中位置索引
  • 超强吸水宠物垫行业2025数据分析报告
  • 从计算机组成原理寻址方式参悟指针的本质
  • cpu的x86架构跟ARM架构的区别介绍
  • SpringBoot整合LangChain4J
  • 深入探讨 Java 中的函数式编程
  • 9-社区动态(Stack布局)
  • 探秘大数据架构:解锁高效数据处理的密码