前言:

最新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的使用相关推荐

  1. html页面设置拦截器,SpringBoot拦截器Filter的使用方法详解

    SpringBoot拦截器Filter的使用方法详解 发布时间:2020-08-27 22:44:03 来源:脚本之家 阅读:107 作者:玉天恒 前言: 最新Servlet 3.0拦截器的使用 1. ...

  2. 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener

    =================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...

  3. SpringBoot拦截器与过滤器

    一.拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器.这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的.在分析两者的区别之前,我们先理解一下AOP的概念,A ...

  4. springboot拦截器 跳过_springboot创建拦截器过程图解

    springboot创建拦截器过程图解 这篇文章主要介绍了springboot创建拦截器过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一. ...

  5. springboot + 拦截器 + 注解 实现自定义权限验证

    springboot + 拦截器 + 注解 实现自定义权限验证 最近用到一种前端模板技术:jtwig,在权限控制上没有用springSecurity.因此用拦截器和注解结合实现了权限控制. 1.1 定 ...

  6. springboot拦截器与过滤器详解

    前言 不管是传统的ssm项目,还是springboot项目,拦截器和过滤器在项目开发中都离不开,比如说对于ssm框架类的项目来说,许多登录逻辑的前置校验,黑白名单的检查,以及部分请求的数据分析等依然需 ...

  7. SpringBoot拦截器配置

    SpringBoot拦截器配置 自定义拦截器: com.example.mybatis2018.interceptor.MyInterCeptor package com.example.mybati ...

  8. Springboot 拦截器链 - 加载拦截器

    Springboot 拦截器链 - 加载拦截器 1.创建拦截器 // 创建拦截器需要实现 HandlerInterceptor 接口 @Slf4j public class HandleInterce ...

  9. Springboot拦截器实现IP黑名单

    Springboot拦截器实现IP黑名单 一·业务场景和需要实现的功能 以redis作为IP存储地址实现.业务场景:针对秒杀活动或者常规电商业务场景等,防止恶意脚本不停的刷接口.实现功能:写一个拦截器 ...

  10. SpringBoot 拦截器和AOP自定义注解进行数据拦截实例

    声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相. 欢迎加入资源共享QQ群:275343679,一起发现知识. ...

最新文章

  1. linux默认shell类型转换,Linux中默认的shell如何切换为其他类型的shell
  2. 输入矩阵包含 nan 或 inf_荣耀 V30 PRO 采用超感光电影相机矩阵
  3. 你所忽略的DNS---DNS实战及深度解读
  4. python3精要(27)-*与**解包
  5. python求和函数从1到m_python求从M个列表中取N个出来的组合算法
  6. ElementUI:el-container实现高度占满
  7. 是否忘记了向源中添加 stdafx.h
  8. NAR:蛋白功能层级注释数据库eggNOG5
  9. ASP.NET在Web窗体上输出九九乘法表
  10. 基于JTT808协议的车联网网关中间件
  11. 英语入门学习笔记2:英语语法知识树
  12. CUDA之GPU生态系统
  13. 量化交易python 文件_python数据分析与量化交易
  14. 作业一:数据软件系统的介绍及spss的操作简介
  15. 数据结构之数据指标对比(Performance Measurement)
  16. 鼠标滚轮调音量_使用滚轮鼠标轻松控制计算机音量
  17. 工业机器人码垛教学实施_工业机器人码垛方案设计
  18. 彻底禁用停用杀死WIN10的自动更新
  19. 数据库之SQL(INSERT,INSERT SELECT,INSERT INTO语句)
  20. 小程序构建npm问题

热门文章

  1. 【React Native 安卓开发】----(mac下开发环境配置)【第一篇】
  2. 打造狂拽炫酷的主流自定义侧滑控件(仿酷狗和QQ5.0)
  3. c# 对象json互相转换_能够将Excel 数据转换成Json格式的实用工具 excel2json
  4. Android页面传值b,android数据传递(一)之activityA传递到activityB
  5. ug区域轮廓铣没有重叠距离_UG编程轮廓铣的切削参数“清理几何体”,360°无死角扫除!...
  6. vue父子组件生命周期执行顺序_Vue.js 父子组件生命周期调用顺序
  7. python股票_python股票 - 随笔分类 - 無碼 - 博客园
  8. hardmard积 用什么符号表示_[关于数学哲学的科普]为数学学习准备的基础数理逻辑(用自然推理系统展现的命题演算以及一阶谓词演算)...
  9. mysql etc my.cnf_mysql配置文件/etc/my.cnf
  10. flink sink jdbc没有数据_一套 SQL 搞定数据仓库?Flink 有了新尝试