SpringBoot------拦截器Filter的使用
前言:
最新Servlet 3.0拦截器的使用
1.pom.xml添加需要使用的依赖
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>top.ytheng</groupId><artifactId>springboot-demo</artifactId><version>0.0.1</version><packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency></dependencies><build><!-- 打包的名称 --><finalName>myspringboot</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build> </project>
2.添加Filter拦截器
package top.ytheng.demo.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;//Servlet3.0特性 //urlPatterns:拦截的url地址 //filterName:拦截器名称 @WebFilter(urlPatterns="/api/*", filterName="loginFilter") public class LoginFilter implements Filter{/** 容器加载完成调用* */@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stubSystem.out.println("filter init...");}/** 请求被拦截的时候调用* */@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// TODO Auto-generated method stubSystem.out.println("doFilter...");HttpServletRequest req = (HttpServletRequest)request;HttpServletResponse resp = (HttpServletResponse)response;String username = req.getParameter("username");if(username.equals("theng")) {chain.doFilter(request, response);} else {//重定向resp.sendRedirect("/filter.html");return;}}/** 容器被销毁的时候调用* */@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("filter destroy...");}}
3.添加测试控制器
package top.ytheng.demo.controller;import java.util.HashMap; import java.util.Map;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/api/v1/filter") public class FilterController {@RequestMapping("/test")public Object testFilter() {Map<String, Object> map = new HashMap<>();map.put("name", "theng");map.put("pwd", "123456");return map;} }
4.添加启动类
package top.ytheng.demo;import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication //等于下面3个 //@SpringBootConfiguration //@EnableAutoConfiguration //@ComponentScan //拦截器用到 @ServletComponentScan public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
5.添加拦截后调整的页面filter.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body><h4>hello theng</h4><h3>filter success</h3> </body> </html>
6.右键项目Run As启动项目,测试地址
http://localhost:8080/api/v1/filter/test?username=theng http://localhost:8080/api/v1/filter/test?username=ytheng
另附:
SpringBoot------拦截器Filter的使用相关推荐
- html页面设置拦截器,SpringBoot拦截器Filter的使用方法详解
SpringBoot拦截器Filter的使用方法详解 发布时间:2020-08-27 22:44:03 来源:脚本之家 阅读:107 作者:玉天恒 前言: 最新Servlet 3.0拦截器的使用 1. ...
- 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...
- SpringBoot拦截器与过滤器
一.拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器.这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的.在分析两者的区别之前,我们先理解一下AOP的概念,A ...
- springboot拦截器 跳过_springboot创建拦截器过程图解
springboot创建拦截器过程图解 这篇文章主要介绍了springboot创建拦截器过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一. ...
- springboot + 拦截器 + 注解 实现自定义权限验证
springboot + 拦截器 + 注解 实现自定义权限验证 最近用到一种前端模板技术:jtwig,在权限控制上没有用springSecurity.因此用拦截器和注解结合实现了权限控制. 1.1 定 ...
- springboot拦截器与过滤器详解
前言 不管是传统的ssm项目,还是springboot项目,拦截器和过滤器在项目开发中都离不开,比如说对于ssm框架类的项目来说,许多登录逻辑的前置校验,黑白名单的检查,以及部分请求的数据分析等依然需 ...
- SpringBoot拦截器配置
SpringBoot拦截器配置 自定义拦截器: com.example.mybatis2018.interceptor.MyInterCeptor package com.example.mybati ...
- Springboot 拦截器链 - 加载拦截器
Springboot 拦截器链 - 加载拦截器 1.创建拦截器 // 创建拦截器需要实现 HandlerInterceptor 接口 @Slf4j public class HandleInterce ...
- Springboot拦截器实现IP黑名单
Springboot拦截器实现IP黑名单 一·业务场景和需要实现的功能 以redis作为IP存储地址实现.业务场景:针对秒杀活动或者常规电商业务场景等,防止恶意脚本不停的刷接口.实现功能:写一个拦截器 ...
- SpringBoot 拦截器和AOP自定义注解进行数据拦截实例
声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相. 欢迎加入资源共享QQ群:275343679,一起发现知识. ...
最新文章
- linux默认shell类型转换,Linux中默认的shell如何切换为其他类型的shell
- 输入矩阵包含 nan 或 inf_荣耀 V30 PRO 采用超感光电影相机矩阵
- 你所忽略的DNS---DNS实战及深度解读
- python3精要(27)-*与**解包
- python求和函数从1到m_python求从M个列表中取N个出来的组合算法
- ElementUI:el-container实现高度占满
- 是否忘记了向源中添加 stdafx.h
- NAR:蛋白功能层级注释数据库eggNOG5
- ASP.NET在Web窗体上输出九九乘法表
- 基于JTT808协议的车联网网关中间件
- 英语入门学习笔记2:英语语法知识树
- CUDA之GPU生态系统
- 量化交易python 文件_python数据分析与量化交易
- 作业一:数据软件系统的介绍及spss的操作简介
- 数据结构之数据指标对比(Performance Measurement)
- 鼠标滚轮调音量_使用滚轮鼠标轻松控制计算机音量
- 工业机器人码垛教学实施_工业机器人码垛方案设计
- 彻底禁用停用杀死WIN10的自动更新
- 数据库之SQL(INSERT,INSERT SELECT,INSERT INTO语句)
- 小程序构建npm问题
热门文章
- 【React Native 安卓开发】----(mac下开发环境配置)【第一篇】
- 打造狂拽炫酷的主流自定义侧滑控件(仿酷狗和QQ5.0)
- c# 对象json互相转换_能够将Excel 数据转换成Json格式的实用工具 excel2json
- Android页面传值b,android数据传递(一)之activityA传递到activityB
- ug区域轮廓铣没有重叠距离_UG编程轮廓铣的切削参数“清理几何体”,360°无死角扫除!...
- vue父子组件生命周期执行顺序_Vue.js 父子组件生命周期调用顺序
- python股票_python股票 - 随笔分类 - 無碼 - 博客园
- hardmard积 用什么符号表示_[关于数学哲学的科普]为数学学习准备的基础数理逻辑(用自然推理系统展现的命题演算以及一阶谓词演算)...
- mysql etc my.cnf_mysql配置文件/etc/my.cnf
- flink sink jdbc没有数据_一套 SQL 搞定数据仓库?Flink 有了新尝试