Springboot过滤器和拦截器详解及使用场景

本文详细介绍了Spring Boot中过滤器和拦截器的配置与使用,包括使用FilterRegistrationBean注册Filter的方式,以及使用原生Servlet注解定义Filter的方法。此外,还探讨了拦截器的配置,包括实现HandlerInterceptorAdapter和HandlerInterceptor接口。文中提供了具体的代码示例和应用场景。
摘要由CSDN通过智能技术生成

两种方式的本质都是一样的,都是去FilterRegistrationBean注册自定义Filter

方式一: (使用spring boot提供的FilterRegistrationBean注册Filter )

①、先定义Filter:

package com.corwien.filter;

import javax.servlet.*;

import java.io.IOException;

public class MyFilter implements Filter {

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

}

@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // do something 处理request 或response

// doFilter()方法中的servletRequest参数的类型是ServletRequest,需要转换为HttpServletRequest类型方便调用某些方法

System.out.println(“filter1”); // 调用filter链中的下一个filter

HttpServletRequest request = (HttpServletRequest) servletRequest;

HttpServletResponse response = (HttpServletResponse) servletResponse;

String ip = request.getRemoteAddr();

String url = request.getRequestURL().toString();

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date d = new Date();

String date = sdf.format(d);

System.out.printf(“%s %s 访问了 %s%n”, date, ip, url);

filterChain.doFilter(request, response);

}

@Override public void destroy() {

}

}

②、注册自定义Filter

@Configuration

public class FilterConfig {

@Bean

public FilterRegistrationBean reg

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值