全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

spring boot 配置Filter过滤器的方法

Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter

首先要准备一个实现了Filter的接口的类 SessionFilter:

import org.slf4j.LoggerFactory;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by mazhenhua on 2016/12/27.
 *
 * 过滤器
 */
public class SessionFilter implements Filter {
  private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SessionFilter.class);


  /**
   * 封装,不需要过滤的list列表
   */
  protected static List<Pattern> patterns = new ArrayList<Pattern>();

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {

  }

  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
    logger.info("aaaaaaaaaa");
    String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
    if (url.startsWith("/") && url.length() > 1) {
      url = url.substring(1);
    }

    if (isInclude(url)){
      chain.doFilter(httpRequest, httpResponse);
      return;
    } else {
      HttpSession session = httpRequest.getSession();
      if (session.getAttribute("") != null){
        // session存在
        chain.doFilter(httpRequest, httpResponse);
        return;
      } else {
        // session不存在 准备跳转失败
        /* RequestDispatcher dispatcher = request.getRequestDispatcher(path);
          dispatcher.forward(request, response);*/
        chain.doFilter(httpRequest, httpResponse);
        return;
      }
    }


  }

  @Override
  public void destroy() {

  }


  /**
   * 是否需要过滤
   * @param url
   * @return
   */
  private boolean isInclude(String url) {
    for (Pattern pattern : patterns) {
      Matcher matcher = pattern.matcher(url);
      if (matcher.matches()) {
        return true;
      }
    }
    return false;
  }

}

实际开发中往往有很多请求要直接请求进来,不需要鉴权登陆的,所以代码中过滤掉这种请求的代码,装进list就好了。

  /**
   * 配置过滤器
   * @return
   */
  @Bean
  public FilterRegistrationBean someFilterRegistration() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(sessionFilter());
    registration.addUrlPatterns("/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("sessionFilter");
    return registration;
  }

  /**
   * 创建一个bean
   * @return
   */
  @Bean(name = "sessionFilter")
  public Filter sessionFilter() {
    return new SessionFilter();
  }

经过上面这俩步的配置,过滤器基本上就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# springboot配置filter  # spring  # boot  # 过滤器  # springboot  # filter  # Spring Boot的filter(过滤器)简单使用实例详解  # spring boot过滤器FilterRegistrationBean实现方式  # Spring Boot使用过滤器Filter过程解析  # springboot @WebFilter注解过滤器的实现  # Spring Boot之过滤器 Filter注入的方式解析  # Spring Boot Filter 过滤器的使用方式  # 不需要  # 装进  # 有很多  # 不存在  # 跳转  # 如何使用  # 创建一个  # 大家多多  # 就可以  # 中很  # 实现了  # 这俩  # 过滤掉  # 就好了  # implements  # public  # private  # Pattern  # Matcher  # Created 


相关文章: 重庆市网站制作公司,重庆招聘网站哪个好?  常州企业网站制作公司,全国继续教育网怎么登录?  网站专业制作公司有哪些,做一个公司网站要多少钱?  建站之星如何通过成品分离优化网站效率?  常州自助建站费用包含哪些项目?  如何在阿里云完成域名注册与建站?  七夕网站制作视频,七夕大促活动怎么报名?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  如何快速打造个性化非模板自助建站?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  教程网站设计制作软件,怎么创建自己的一个网站?  如何在建站之星网店版论坛获取技术支持?  如何通过VPS搭建网站快速盈利?  如何在IIS管理器中快速创建并配置网站?  如何通过老薛主机一键快速建站?  如何用VPS主机快速搭建个人网站?  如何在搬瓦工VPS快速搭建网站?  免费视频制作网站,更新又快又好的免费电影网站?  建站主机选虚拟主机还是云服务器更好?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何在新浪SAE免费搭建个人博客?  三星网站视频制作教程下载,三星w23网页如何全屏?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  建站ABC备案流程中有哪些关键注意事项?  建站之星安装步骤有哪些常见问题?  如何选择CMS系统实现快速建站与SEO优化?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  高端网站建设与定制开发一站式解决方案 中企动力  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何用免费手机建站系统零基础打造专业网站?  网站网页制作专业公司,怎样制作自己的网页?  如何用美橙互联一键搭建多站合一网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何快速启动建站代理加盟业务?  宝塔新建站点报错如何解决?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何在IIS7上新建站点并设置安全权限?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何在西部数码注册域名并快速搭建网站?  家庭建站与云服务器建站,如何选择更优?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何通过wdcp面板快速创建网站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何高效利用200m空间完成建站?  建站之星导航如何优化提升用户体验?  如何通过远程VPS快速搭建个人网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。