java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 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("我是过滤器的被销毁时调用的方法!,活不下去了................" );
     }
 }

过滤器里面的三个方法:

三、测试结果

重新启动服务,刷新页面,查看结果如下图:

到此这篇关于SpringBoot过滤器的使用的文章就介绍到这了,更多相关SpringBoot过滤器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文