filter java spring_SpringBoot中使用Filter

1.在传统web项目中添加filter

TestFilter

com.jiafeng.filter.TestFilter

TestFilter

/*

paramName

paramValue

2.在springboot中添加filter有两种方式

2.1代码注册方式

先定义Filter类:Myfilter,然后通过FilterRegistrationBean将filter注册到调用链中。

@Configuration //相当于spring中的标签

public class WebConfiguration {

@Bean //相当于spring中标签

public FilterRegistrationBean testFilterRegistration() {

FilterRegistrationBean registration = new FilterRegistrationBean<>();

registration.setFilter(new MyFilter());

registration.addUrlPatterns("/*");//配置过滤路径

registration.addInitParameter("paramName", "paramValue");//添加初始值

registration.setName("myFilter");//设置filter名称

registration.setOrder(1);//请求中过滤器执行的先后顺序,值越小越先执行

return registration;

}

public class MyFilter implements Filter {

@Override

public void destroy() {

System.out.println("销毁MyFilter");

}

@Override

public void doFilter(ServletRequest sRequest, ServletResponse sResponse, FilterChain chain)

throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) sRequest;

System.out.println("this is MyFilter url :" + request.getRequestURI());

chain.doFilter(sRequest, sResponse);

}

@Override

public void init(FilterConfig arg0) throws ServletException {

System.out.println("初始化MyFilter");

}

}

}

2.2注解注册方式

定义过滤器类:HelloFilter,在过滤器类上添加@WebFilter注解配置过滤器名称、过滤路径等属性,通过@Order配置过滤器执行顺序。

注意使用@WebServlet、@WebFilter、@WebListener等servlet注解时需要在springboot的启动类上添加@ServletComponentScan注解,否则不会生效。

@WebFilter(urlPatterns="/*",filterName="helloFilter",initParams= {@WebInitParam(name="paramName",value="paramValue"),@WebInitParam(name="paramName2",value="paramValue2")})

@Order(2)

public class HelloFilter implements Filter {

@Override

public void destroy() {

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)

throws IOException, ServletException {

System.out.println("执行过滤器Hello Filter !");

filterChain.doFilter(request, response);

}

@Override

public void init(FilterConfig arg0) throws ServletException {

System.out.println("初始化HelloFilter!");

}

}

启动类

@SpringBootApplication

@ServletComponentScan

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值