SpringBoot过滤器的使用
目录
- 一、什么是过滤器
- 二、过滤器的使用
- 三、测试结果
一、什么是过滤器 过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的,这个时候,也可以用到过滤器。过滤器的功能还有很多,例如实现
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); @Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic 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时自动调用。*/@Overridepublic void destroy() {System.out.println("我是过滤器的被销毁时调用的方法!,活不下去了................" ); } }
过滤器里面的三个方法:
init
:filter
对象只会创建一次,init
方法也只会执行一次。doFilter
: 主要的业务代码编写方法,可以多次重复调用destroy
: 在销毁Filter
时自动调用(程序关闭或者主动销毁Filter
)。
三、测试结果 重新启动服务,刷新页面,查看结果如下图:
文章图片
【SpringBoot过滤器的使用】到此这篇关于SpringBoot过滤器的使用的文章就介绍到这了,更多相关SpringBoot过滤器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JS中浮点数精度问题的分析与解决方法
- 如何修复Android上的移动数据问题(解决方法介绍)
- 已发的朋友圈修改可见权限人
- 找回卸载的支付宝
- 酷划锁屏手机赚钱APP的使用经验分享
- 如何导出android内部存储的文件(不用root)
- CSAPP 3e: Bomb lab (phase_2) + lab中的GDB 使用
- JDBC中的事务管理
- 在Oracle数据库中存储映像的示例
- 在Oracle数据库中存储文件的示例