Spring Boot拦截器的使用

使用注解@Configuration

继承WebMvcConfigurerAdapter

重写addInterceptors添加需要拦截器地址:

运行截图如下:

后端拦截如下:

这里主要是依靠注册拦截器实现的

这里一个拦截器可以进行多个链接过滤,只需在后面加入addPathPatterns即可

程序结构如下:

WebMvcConfig.java

package com.example.demo.config;import com.example.demo.interceptor.OneInterceptor;
import com.example.demo.interceptor.TwoInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new OneInterceptor()).addPathPatterns("/one/**");registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/two/**");registry.addInterceptor(new OneInterceptor()).addPathPatterns("/three/**");registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/three/**");super.addInterceptors(registry);}
}

OneController.java

package com.example.demo.interceptor;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("one")
public class OneController {@RequestMapping("/index")public String index(){return "index";}@RequestMapping("/index2")public String index2(){return "index2";}@RequestMapping("/index3")public String index3(){return "index3";}
}

OneInterceptor.java

package com.example.demo.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 OneInterceptor implements HandlerInterceptor {/*** 在请求处理之前进行调用(Controller方法调用之前)*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object object) throws Exception {System.out.println("OneInterceptor preHandle");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response,Object object, ModelAndView mv)throws Exception {System.out.println("OneInterceptor postHandle");}/*** 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行* (主要是用于进行资源清理工作)*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object object, Exception ex)throws Exception {System.out.println("OneInterceptor afterCompletion");}
}

ThreeController.java

package com.example.demo.interceptor;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("three")
public class ThreeController {@RequestMapping("/index")public String index(){return "index";}@RequestMapping("/index2")public String index2(){return "index2";}@RequestMapping("/index3")public String index3(){return "index3";}
}

TwoController.java

package com.example.demo.interceptor;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Controller
@RequestMapping("two")
public class TwoController{@RequestMapping("/index")public String index(){return "index";}@RequestMapping("/index2")public String index2(){return "index2";}@RequestMapping("/index3")public String index3(){return "index3";}
}

TwoInterceptor.java

package com.example.demo.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 TwoInterceptor implements HandlerInterceptor {/*** 在请求处理之前进行调用(Controller方法调用之前)*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object object) throws Exception {System.out.println("TwoController preHandle");return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response,Object object, ModelAndView mv)throws Exception {System.out.println("TwoController postHandle");}/*** 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行* (主要是用于进行资源清理工作)*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object object, Exception ex)throws Exception {System.out.println("TwoController afterCompletion");}
}

index相关.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>INDEX</title>
</head>
<body>
<h1>INDEX PAGE</h1>
</body>
</html>

porn.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

Spring Boot笔记-拦截器相关(用户权限方面)相关推荐

  1. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!

    大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8   idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...

  2. Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求, ...

  3. struts2如何使用拦截器进行用户权限控制

    大多数网站会设置用户权限,如过滤非法用户,用户不登录时不能进行访问,或者设置访问的权限,如部分内容仅对VIP开放等等,这些权限的控制都可以用struts2中的拦截器来实现. 下面通过一个简单的Demo ...

  4. Spring Boot 添加拦截器的配置方式

    在进行 Java Web 开发的时候我们经常会使用到过滤器,例如日志的记录.权限的验证等功能.以前使用 Spring MVC 的时候需要在 web.xml 中配置过滤器,现在使用 Spring Boo ...

  5. spring boot mybatis拦截器

    mybaits拦截器 package com.chinamobile.scm.masterdata.interceptor;import com.alibaba.fastjson.JSON; impo ...

  6. Spring Boot(十四):spring boot整合shiro-登录认证和权限管理

    Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...

  7. 框架:Spring Aop、拦截器、过滤器的区别

    Spring Aop.拦截器.过滤器的区别 Filter过滤器:拦截web访问的url地址. Interceptor拦截器:拦截以.action结尾的url,拦截Action的访问. Spring A ...

  8. 拦截器,利用拦截器进行登陆权限控制

    拦截器,登录权限控制demo 1. 拦截器demo 2. 登录权限控制 地址: https://github.com/sevenyoungairye/spring-mvc-interceptor 1. ...

  9. java spring 配置词典_java之spring mvc之拦截器

    java之spring mvc之拦截器 1. springmvc 中的拦截器是由实现 HandlerInterceptor 或者继承 HandlerInterceptorAdapter 来实现的. 2 ...

最新文章

  1. php workerman demo,workerman-demo
  2. python调用电脑蜂鸣器一直响_电脑开机蜂鸣器一直响,9声滴~,什么问题?怎么处理?...
  3. ssh远程执行oracle命令,ssh远程执行命令技巧
  4. Intel IPP安装和安装测试
  5. Tpos时间定位表达式
  6. Android -- 无线网络配置信息的管理者WifiConfigStore简介
  7. 系统学习深度学习(二十六)--BiRNN
  8. Python3中Dict不能在循环中删除元素
  9. 【STM32】STM32驱动 LCD12864程序代码(串行方式)
  10. 同济第七版高数资料(教材+习题解答)
  11. node mysql菜鸟教程_Node.js 全局对象
  12. 安卓加载asset中的json文件_Android Studio读取本地json(读取assets中的文件)
  13. 软件工程——软件维护
  14. 求解带不确定事件的FJSP的多目标强化学习框架
  15. springboot+调用支付宝第三方接口(沙箱环境)
  16. 降低PNG图片存储大小方法、图片压缩方法
  17. 云服务器iss列表,【踩坑】发布ASP.NET网站到本地IIS和云服务器
  18. wind金融数据接口python_python使用用Wind接口获取全部A股历史交易数据
  19. 【附源码】计算机毕业设计JAVA支部党建工作
  20. 【软件测试】黑盒测试方法小结

热门文章

  1. awk:split()函数、数组、自定义函数
  2. 做一个中国式站长必须知道的五十个问题
  3. 男子吐槽:为什么那么多人不喜欢996,非要年纪轻轻进国企养老
  4. 飞秋爱好者(WZ132)
  5. 做公益的飞秋(FeiQ)程序代码
  6. 飞鸽_飞鸽传书_飞鸽传书2010_飞鸽传书2010下载
  7. 文件加密保卫中小企业信息安全
  8. 莱比锡爆料:《星际争霸2》估计明年也没戏
  9. C++常类型(const)
  10. VC在windows下编写用于串行通讯的程序