首页 > 其他分享 >springmvc的Interceptor拦截器和servlet的filter过滤器

springmvc的Interceptor拦截器和servlet的filter过滤器

时间:2023-02-11 12:24:16浏览次数:48  
标签:拦截器 springmvc filter 过滤器 import servlet public

springmvc的Interceptor拦截器和servlet的filter过滤器

1、springmvc的Interceptor拦截器和servlet的filter过滤器springboot实现方式

package com.liubaihui.lianxi01.controller;

import org.springframework.stereotype.Component;

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

@Component
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("过滤器dofilter被执行了");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器初始化方法执行了");
    }
}
package com.liubaihui.lianxi01.controller;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle被执行了");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle被执行了");
        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion被执行了");
        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
    }
}
package com.liubaihui.lianxi01.controller;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Component
public class MyMvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/**");
    }
}

 

2、springmvc的Interceptor拦截器和servlet的filter过滤器区别

1、filter是servlet提供的、interceptor是springmvc提供的接口

2、filter是基于回调执行的,interceptor是动态代理方式实现的

3、filter可以做一下初始化方法init()处理

4、interceptor可以处理controller方法执行前中后执行做处理,filter只能做请求一次拦截请求

3、springmvc的Interceptor拦截器和servlet的filter过滤器和aop执行顺序

过滤器----拦截器---aop

 

 

 参考:过滤器实现3种方式:https://blog.csdn.net/shaoming314/article/details/121366966

标签:拦截器,springmvc,filter,过滤器,import,servlet,public
From: https://www.cnblogs.com/liubaihui/p/17111189.html

相关文章

  • 手写一个带拦截器的ajax请求
    ajax<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewpor......
  • day06-SpringMVC底层机制简单实现-02
    SpringMVC底层机制简单实现-02https://github.com/liyuelian/springmvc-demo.git4.任务3-从web.xml动态获取容器配置文件4.1分析任务3:MyDispatcherServlet(自定义的......
  • SpringMVC源码(二):MVC容器启动
    SpringMVC是一个基于Java实现了MVC设计模式的请求驱动类型的轻量级Web框架,SpringMVC是在Spring框架的基础上做的拓展。一、分析思路在使用配置文件的方式设置Spr......
  • SpringMVC.三 RESTFul编程风格
    1、RESTFuli简介REST:RepresentationalStateTransfer,.表现层资源状态转移,资源资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一......
  • SpringMVC获取请求参数
    目录通过ServletAPI获取通过控制器方法的形参获取请求参数@RequestParam@RequestHeader@CookieValue通过POJO获取请求参数解决获取请求参数的乱码问题通过ServletAPI获取......
  • SpringMVC数据绑定
    SpringMVC数据绑定使用JavaBean绑定参数SpringMVC会根据请求参数名和JavaBean属性名进行自动匹配,自动为对象填充属性值,同时支持级联属性packagecom.soutwind.entity......
  • 【老王读SpringMVC】url 与 controller method 的映射关系注册
    上文提到,如果我们自己要实现springmvc框架的话,大致需要实现如下功能:0、将url与Controllermethod的对应关系进行注册1、通过请求的url找到Controllermethod(......
  • RibbonRoutingFilter是如何工作的
    在讲RibbonRoutingFilter是如何工作之前,也有一些比较重要的类需要去提前了解。重要的类RequestContext请求上下文,用于存储线程中对应的请求以及响应publicclassRe......
  • SpringMVC
    SpringMVCSpringMVC是目前主流的实现MVC设计模式的框架,相当于Spring的一个子模块。SpringMVC以SpringIoc容器为基础,利用容器特性简化它的配置。MVC模式:即把应用程序......
  • day05-SpringMVC底层机制简单实现-01
    SpringMVC底层机制简单实现-01主要完成:核心分发控制器+Controller和Service注入容器+对象自动装配+控制器方法获取参数+视图解析+返回JSON格式数据1.搭建开发环境创......