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

Spring MVC 拦截器总结

1.简介

Spring MVC提供了拦截器方便在接口调用前后进行一些通用处理。

2.步骤

1.实现一个拦截器类,共有三处拦截时机:

public class Interceptor1 implements HandlerInterceptor {//实现HandlerInterceptor接口//执行handler之前调用//编码格式处理,登录保护,权限处理@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("Interceptor1.preHandle");return true;//拒绝还是通过}//handler执行完毕后执行//检查敏感词汇@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("Interceptor1.postHandle");HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}//整体处理完毕执行@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("Interceptor1.afterCompletion");HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

2.在配置类中注册拦截类:

public class MvcConfig implements WebMvcConfigurer {//实现WebMvcConfigurer接口
...@Overridepublic void addInterceptors(InterceptorRegistry registry){//方法 1.注册拦截类,拦截全部请求registry.addInterceptor(new Interceptor1());//方法 2.指定地址拦截//通配符:* :一层字符 **:多层字符registry.addInterceptor(new Interceptor1()).addPathPatterns("/product/**");//方法 3.排除拦截registry.addInterceptor(new Interceptor1()).addPathPatterns("/user/***").excludePathPatterns("/user/data1");//如果有多个拦截类优先级如何?registry.addInterceptor(new Interceptor1())//先声明优先级高,先进后出.addPathPatterns("/product/**");registry.addInterceptor(new Interceptor2())//后声明优先级低,后进先出.addPathPatterns("/product/**");
}
http://www.lryc.cn/news/445599.html

相关文章:

  • Linux——创建编写并编译一个C程序
  • window下idea中scala的配置
  • Qt C++设计模式->享元模式
  • 前端实用技能
  • Android LiveData 数据倒灌
  • umi项目中使用mockj生成数据模拟请求调用
  • 事件【JavaScript】
  • 【Linux】Linux基本命令
  • 微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑
  • 实战OpenCV之图像滤波
  • AI学习指南深度学习篇-Adadelta的Python实践
  • go webapi上传文件 部属到linux
  • 接口加解密及数据加解密
  • 开创远程就可以监测宠物健康新篇章
  • 二叉树的基本概念(上)
  • aws s3 存储桶 前端组件上传简单案例
  • 【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)
  • python爬虫初体验(四)—— 百度文库PPT的爬取
  • 下水道内缺陷识别检测数据集 yolo数据集 共2300张
  • 年轻用户对Facebook的使用趋势分析
  • EasyCVR全方位安全守护智慧电厂:构建高效视频监控系统优势分析
  • 基于深度学习的情感生成与交互
  • JavaScript匿名函数
  • 线性判别分析(LDA)中计算两个类的中心点在投影方向w上的投影示例
  • 前端知识——标签知识
  • 使用Docker和cpolar在Linux服务器上搭建DashDot监控面板
  • 解决docker拉取镜像报错
  • C++之STL—deque容器
  • leveldb前缀匹配查找Seek
  • 【自动驾驶】ros如何隔绝局域网内其他电脑播包