Java: Filter

 

Java之Filter - Zh1z3ven - 博客园 (cnblogs.com)

 

复制代码
package io.veal.filter;


import javax.servlet.*;
import java.io.IOException;

public class FilterA implements Filter{
  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
    System.out.println("\033[37;7m" + "FilterA pre" + "\033[0m");

    chain.doFilter(request, response);

    System.out.println("\033[37;7m" + "FilterA post" + "\033[0m");
  }

  @Override
  public void init(FilterConfig filterConfig) throws ServletException{
    System.out.println("\033[37;7m" + "FilterA init" + "\033[0m");
    
    String param = filterConfig.getInitParameter("param");  // init方法中, 读取init-param
    System.out.println("FilterA init Method param = " + param);
    
    Filter.super.init(filterConfig);
  }

  @Override
  public void destroy(){
    System.out.println("\033[37;7m" + "FilterA destroy" + "\033[0m");
    
    Filter.super.destroy();
  }
}
复制代码

 

复制代码
package io.veal.filter;


import javax.servlet.*;
import java.io.IOException;

public class FilterB implements Filter{
  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
    System.out.println("\033[37;7m" + "FilterB pre" + "\033[0m");

    chain.doFilter(request, response);

    System.out.println("\033[37;7m" + "FilterB post" + "\033[0m");
  }

  @Override
  public void init(FilterConfig filterConfig) throws ServletException{
    System.out.println("\033[37;7m" + "FilterB init" + "\033[0m");

    Filter.super.init(filterConfig);
  }

  @Override
  public void destroy(){
    System.out.println("\033[37;7m" + "FilterB destroy" + "\033[0m");

    Filter.super.destroy();
  }
}
复制代码

 

 

复制代码
package io.veal.config;


import io.veal.filter.FilterA;
import io.veal.filter.FilterB;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FilterConfig{
  @Bean
  public FilterRegistrationBean<FilterA> filterA(){
    FilterRegistrationBean<FilterA> filterRegistrationBean = new FilterRegistrationBean<>();
    filterRegistrationBean.setName("FilterA");
    filterRegistrationBean.setFilter(new FilterA());
    filterRegistrationBean.addUrlPatterns("/servlet/category/*");  // 不能加context-path, 使用 *
    filterRegistrationBean.setOrder(Integer.MAX_VALUE - 100);  // 数字越小,优先级越高
    filterRegistrationBean.addInitParameter("param", "value");
    filterRegistrationBean.setEnabled(true);
    return filterRegistrationBean;
  }

  @Bean
  public FilterRegistrationBean<FilterB> filterB(){
    FilterRegistrationBean<FilterB> filterRegistrationBean = new FilterRegistrationBean<>();
    filterRegistrationBean.setName("FilterB");
    filterRegistrationBean.setFilter(new FilterB());
    filterRegistrationBean.addUrlPatterns("/servlet/category/*");  // 不能加context-path, 使用 *
    filterRegistrationBean.setOrder(Integer.MAX_VALUE - 1000);  // 数字越小,优先级越高
    filterRegistrationBean.setEnabled(true);
    return filterRegistrationBean;
  }
}
复制代码

 

posted @   ascertain  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-05-02 更改powershell执行脚本权限
2021-05-02 node.js mysql cheerio superagent 小爬虫 nodemailer
点击右上角即可分享
微信分享提示