SpringBoot拦截器Filter的使用方法详解

发布时间:2020-08-27 22:44:03

来源:脚本之家

阅读:107

作者:玉天恒

前言:

最新Servlet 3.0拦截器的使用

1.pom.xml添加需要使用的依赖

4.0.0

top.ytheng

springboot-demo

0.0.1

jar

org.springframework.boot

spring-boot-starter-parent

2.0.5.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-thymeleaf

org.springframework.boot

spring-boot-devtools

true

true

myspringboot

org.springframework.boot

spring-boot-maven-plugin

maven-compiler-plugin

1.8

1.8

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{

/*

* 容器加载完成调用

* */

@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

System.out.println("filter init...");

}

/*

* 请求被拦截的时候调用

* */

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

// TODO Auto-generated method stub

System.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;

}

}

/*

* 容器被销毁的时候调用

* */

@Override

public void destroy() {

// TODO Auto-generated method stub

System.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 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

Insert title here

hello theng

filter success

6.右键项目Run As启动项目,测试地址

http://localhost:8080/api/v1/filter/test?username=theng

http://localhost:8080/api/v1/filter/test?username=ytheng

另附:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

html页面设置拦截器,SpringBoot拦截器Filter的使用方法详解相关推荐

  1. python的装饰器迭代器与生成器_python3 装饰器、列表生成器、迭代器、内置方法详解等(第四周)...

    前言: 为什么要学习python3? 原因: 1.学习一门语言能力 2.通过该语言能力完成测试自动化以及独立完成自测框架知识 那么我要做什么呢? 1.每天花十个小时完成python3的学习 要在什么地 ...

  2. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  3. 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解

    本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...

  4. SpringBoot——slf4j+logback日志处理及配置详解

    SpringBoot--sl4j+logback日志处理及配置详解 日志的级别 打印级别:ALL > TRACE > FATAL > DEBUG > INFO > WAR ...

  5. SpringBoot (6)---RestTemplate方法详解(2)

    SpringBoot (6)---RestTemplate方法详解(2) 说明 上一篇SpringBoot 2.1 | 第三篇:RestTemplate请求HTTP(1)简单运用了RestTempla ...

  6. SpringBoot配置文件中spring.profiles.active配置详解

    SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...

  7. python类装饰器详解-Python类装饰器实现方法详解

    本文实例讲述了Python类装饰器.分享给大家供大家参考,具体如下: 编写类装饰器 类装饰器类似于函数装饰器的概念,但它应用于类,它们可以用于管理类自身,或者用来拦截实例创建调用以管理实例. 单体类 ...

  8. python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  9. filter vue 循环_详解在Vue.js编写更好的v-for循环的6种技巧

    在vuejs中,v-for循环是每个项目都会使用的东西,它允许您在模板代码中编写for循环. 在最基本的用法中,它们的用法如下. {{ product.name }} 但是,在本文中,我将介绍六种方法 ...

最新文章

  1. openstack rootwrap详解
  2. C语言数组作为传入参数
  3. 安卓实训项目源码_综合性项目:在线学习考试系统
  4. Ajax和JSON-学习笔记04【JSON_解析器】
  5. jQuery 判断元素是否在屏幕可见区域内
  6. 线程间通信————互斥
  7. qt中QMap与QMultimap用foreach遍历
  8. 线性表:顺序栈算法实现
  9. 从java的NIO版hello world看java源码,我们能看到什么?
  10. Session优缺点
  11. 智能一代云平台(三):15年上半年维护总结
  12. C# 23种设计模式
  13. PHP 5 echo 和 print 语句
  14. 用excel制作双层饼图_原创教程:用Excel做动态双层饼图
  15. [转]河北省生源地信用助学贷款管理系统学生使用手册
  16. Guarded Suspension Pattern
  17. JS在H5下实现本地历史搜索记录
  18. 我的梦想就是不工作,有什么错?
  19. 【问链财经-EOS公开课】 第十八课 史上最全EOS 资源汇总
  20. H 小P的数学问题(分块)

热门文章

  1. CSS清除浮动的方法及原理
  2. CSS 清除浮动原理详解
  3. 算法练习 Week2
  4. rapidjson 使用
  5. CVPR 2021论文解读 | 长尾分布问题解决新思路
  6. IDEA入门使用教程
  7. 一个VR游戏DEMO的开发历程是怎样的?
  8. qwt官方例子-CurveDome
  9. 安卓注定不是苹果的对手
  10. 如何快速制作一个简洁美观的在线产品手册