SpringBoot过滤器的使用
作者:久曲键 时间:2023-08-28 21:28:56
一、什么是过滤器
过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的,这个时候,也可以用到过滤器。过滤器的功能还有很多,例如实现URL
级别的权限控制、压缩响应信息、编码格式等等。
过滤器依赖servlet
容器。在实现上基于函数回调,可以对几乎所有请求进行过滤。
二、过滤器的使用
下面简单的说说Spring Boot
里面如何增加过滤器。
过滤器使用实例:具体示例代码如下:
package com.rongrong.wiki.filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component
public class LogFilter implements Filter {
private static final Logger LOG = LoggerFactory.getLogger(LogFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 打印请求信息
HttpServletRequest request = (HttpServletRequest) servletRequest;
LOG.info("------------- LogFilter 开始 -------------");
LOG.info("请求地址: {} {}", request.getRequestURL().toString(), request.getMethod());
LOG.info("远程地址: {}", request.getRemoteAddr());
long startTime = System.currentTimeMillis();
filterChain.doFilter(servletRequest, servletResponse);
LOG.info("------------- LogFilter 结束 耗时:{} ms -------------", System.currentTimeMillis() - startTime);
}
/**
* 在销毁Filter时自动调用。
*/
@Override
public void destroy() {
System.out.println("我是过滤器的被销毁时调用的方法!,活不下去了................" );
}
}
过滤器里面的三个方法:
init
:filter
对象只会创建一次,init
方法也只会执行一次。doFilter
: 主要的业务代码编写方法,可以多次重复调用destroy
: 在销毁Filter
时自动调用(程序关闭或者主动销毁Filter
)。
三、测试结果
重新启动服务,刷新页面,查看结果如下图:
来源:https://www.cnblogs.com/longronglang/p/15470032.html
标签:SpringBoot,过滤器


猜你喜欢
Java实现Http工具类的封装操作示例
2021-08-14 10:27:57
JAVA使用hutool工具实现查询树结构数据(省市区)
2021-11-04 18:30:09

利用Thumbnailator轻松实现图片缩放、旋转与加水印
2022-03-26 18:44:04

IDEA插件开发之环境搭建过程图文详解
2022-01-17 14:04:08

Struts2 $,#,%详解及实例代码
2021-09-10 04:18:40
WPF实现XAML转图片的示例详解
2023-09-13 21:38:51

Android 属性动画ValueAnimator与插值器详解
2023-04-12 19:05:33
Spring Boot 集成MyBatis 教程详解
2021-10-12 04:49:21

Android界面设计(APP设计趋势 左侧隐藏菜单右边显示content)
2023-05-20 04:54:24

Spring Boot 工程的创建和运行(图文)
2022-06-26 15:39:49

OpenCV + MFC实现简单人脸识别
2023-02-24 06:15:55

Java中超详细this与super的概念和用法
2021-05-25 19:45:50

详解springboot集成mybatis xml方式
2022-08-05 09:04:54

Spring Boot插件spring tool suite安装及使用详解
2021-12-15 03:29:23

RocketMQ特性Broker存储事务消息实现
2022-07-10 20:42:13
Proxy实现AOP切面编程案例
2023-07-23 06:44:52

Java计算文本MD5加密值的方法示例
2023-11-15 13:18:48
java+jsp+struts2实现发送邮件功能
2023-08-28 18:25:27

SpringBoot实用小技巧之如何动态设置日志级别
2023-02-09 04:27:58

一篇文章带你入门Java Script
2023-09-12 06:09:24