SpringBoot知识体系+Vue3 实战WIKI知识库系统笔记 demo8_Filter_Interceptor_aop

本文介绍了Spring MVC中Filter、Interceptor和AOP的区别及使用场景。Filter在Tomcat容器内,作用范围更广,用于全局请求处理;Interceptor是Spring框架特有的,适用于登录校验和权限控制;AOP则通过切面实现方法执行前后的日志记录和参数、返回结果的处理。文章展示了三者在实际应用中的日志打印实例,并讨论了它们的执行顺序。

Filter & Interceptor & aop

这三个选一个用即可.

Filter

使用一个链来调用方法把请求传回过滤链.

package com.roc.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);
    }
}

拦截器:

Spring框架特有的,,请求日志打印 /login

过滤器的preHandler返回false, 整个业务也就结束了. 常用于登录校验,权限校验, 当你没有登陆时后面的业务逻辑也就不会执行了.

package com.roc.wiki.interceptor;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dlage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值