SpringBoot过滤器的使用
短信预约 -IT技能 免费直播动态提醒
一、什么是过滤器
过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的,这个时候,也可以用到过滤器。过滤器的功能还有很多,例如实现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);
}
@Override
public void destroy() {
System.out.println("我是过滤器的被销毁时调用的方法!,活不下去了................" );
}
}
过滤器里面的三个方法:
init
:filter
对象只会创建一次,init
方法也只会执行一次。doFilter
: 主要的业务代码编写方法,可以多次重复调用destroy
: 在销毁Filter
时自动调用(程序关闭或者主动销毁Filter
)。
三、测试结果
重新启动服务,刷新页面,查看结果如下图:
到此这篇关于SpringBoot过滤器的使用的文章就介绍到这了,更多相关SpringBoot过滤器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341