SpringBoot过滤器 SpringBoot过滤器的使用
久曲键 人气:0想了解SpringBoot过滤器的使用的相关内容吗,久曲键在本文为您仔细讲解SpringBoot过滤器的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:SpringBoot过滤器的使用,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); @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
)。
三、测试结果
重新启动服务,刷新页面,查看结果如下图:
加载全部内容