Spring Boot笔记-拦截器相关(用户权限方面)
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笔记-拦截器相关(用户权限方面)相关推荐
- Spring boot自定义拦截器和拦截器重定向配置简单介绍~!
大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8 idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...
- Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求, ...
- struts2如何使用拦截器进行用户权限控制
大多数网站会设置用户权限,如过滤非法用户,用户不登录时不能进行访问,或者设置访问的权限,如部分内容仅对VIP开放等等,这些权限的控制都可以用struts2中的拦截器来实现. 下面通过一个简单的Demo ...
- Spring Boot 添加拦截器的配置方式
在进行 Java Web 开发的时候我们经常会使用到过滤器,例如日志的记录.权限的验证等功能.以前使用 Spring MVC 的时候需要在 web.xml 中配置过滤器,现在使用 Spring Boo ...
- spring boot mybatis拦截器
mybaits拦截器 package com.chinamobile.scm.masterdata.interceptor;import com.alibaba.fastjson.JSON; impo ...
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...
- 框架:Spring Aop、拦截器、过滤器的区别
Spring Aop.拦截器.过滤器的区别 Filter过滤器:拦截web访问的url地址. Interceptor拦截器:拦截以.action结尾的url,拦截Action的访问. Spring A ...
- 拦截器,利用拦截器进行登陆权限控制
拦截器,登录权限控制demo 1. 拦截器demo 2. 登录权限控制 地址: https://github.com/sevenyoungairye/spring-mvc-interceptor 1. ...
- java spring 配置词典_java之spring mvc之拦截器
java之spring mvc之拦截器 1. springmvc 中的拦截器是由实现 HandlerInterceptor 或者继承 HandlerInterceptorAdapter 来实现的. 2 ...
最新文章
- php workerman demo,workerman-demo
- python调用电脑蜂鸣器一直响_电脑开机蜂鸣器一直响,9声滴~,什么问题?怎么处理?...
- ssh远程执行oracle命令,ssh远程执行命令技巧
- Intel IPP安装和安装测试
- Tpos时间定位表达式
- Android -- 无线网络配置信息的管理者WifiConfigStore简介
- 系统学习深度学习(二十六)--BiRNN
- Python3中Dict不能在循环中删除元素
- 【STM32】STM32驱动 LCD12864程序代码(串行方式)
- 同济第七版高数资料(教材+习题解答)
- node mysql菜鸟教程_Node.js 全局对象
- 安卓加载asset中的json文件_Android Studio读取本地json(读取assets中的文件)
- 软件工程——软件维护
- 求解带不确定事件的FJSP的多目标强化学习框架
- springboot+调用支付宝第三方接口(沙箱环境)
- 降低PNG图片存储大小方法、图片压缩方法
- 云服务器iss列表,【踩坑】发布ASP.NET网站到本地IIS和云服务器
- wind金融数据接口python_python使用用Wind接口获取全部A股历史交易数据
- 【附源码】计算机毕业设计JAVA支部党建工作
- 【软件测试】黑盒测试方法小结