返回顶部
首页 > 资讯 > 后端开发 > Python >一文详解Java拦截器与过滤器的使用
  • 835
分享到

一文详解Java拦截器与过滤器的使用

2024-04-02 19:04:59 835人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录流程图拦截器vs过滤器springMVC技术架构图项目Demo依赖Interceptor拦截器Filter过滤器1、多Filter不指定过滤顺序2、多Filter指定过滤顺序流程

流程图

拦截器vs过滤器

拦截器是springmvc的技术

过滤器的Servlet的技术

先过过滤器,过滤器过完才到DispatcherServlet;

拦截器归属于SpringMVC,只可能拦SpringMVC的东西;

拦截器说白了就是为了增强,可以在请求前进行增强,也可以在请求后进行增强,但是不一定同时在前后都增强。

区别

SpringMVC技术架构图

项目Demo

项目地址

依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-WEB</artifactId>
        </dependency>
    </dependencies>

Interceptor拦截器

package com.test.filtertest.inter;

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

import javax.servlet.Http.httpservletRequest;
import javax.servlet.http.HttpServletResponse;


@Component
public class TestInter1 implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("TestInter1 preHandle...");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("TestInter1 postHandle...");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("TestInter1 afterCompletion...");
    }
}

Interceptor拦截器要注册

package com.test.filtertest.config;

import com.test.filtertest.inter.TestInter1;
import com.test.filtertest.inter.TestInter2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorReGIStry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private TestInter1 testInter1;

    @Autowired
    private TestInter2 testInter2;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //默认
@WebFilter(filterName = "TestFilter1", urlPatterns = "
@Configuration
public class FilterConfig {

    @Bean
    public FilterRegistrationBean testFilter1() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        Filter testFilter1 = new TestFilter1();
        filterRegistrationBean.setFilter(testFilter1);
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.setName("testFilter1");
        filterRegistrationBean.setOrder(2);//指定过滤顺序,数值越小优先级越高
        return filterRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean testFilter2() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        Filter testFilter2 = new TestFilter2();
        filterRegistrationBean.setFilter(testFilter2);
        filterRegistrationBean.setName("testFilter2");
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.setOrder(1);//指定过滤顺序,数值越小优先级越高
        return filterRegistrationBean;
    }
}

1、同时原本Filter过滤器上的@WebFilter(filterName = “TestFilter1”, urlPatterns = “/*”)

这个注解最好去掉,否则bean重复会报错,要么bean名称不要重复,换个名称。但是不去掉的话@ServletComponentScan也要被保留,最好统一格式,只使用config配置。

2、启动类上的@ServletComponentScan 注解也不需要了,可以去掉了,因为不用扫描@WebFilter注解了。但是如果@WebFilter还保留了,那么就不能去掉了。不然加了@WebFilter的过滤器就不会生效了,因为没扫到。

到此这篇关于一文详解Java拦截器与过滤器的使用的文章就介绍到这了,更多相关Java拦截器 过滤器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 一文详解Java拦截器与过滤器的使用

本文链接: https://lsjlt.com/news/147453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一文详解Java拦截器与过滤器的使用
    目录流程图拦截器vs过滤器SpringMVC技术架构图项目Demo依赖Interceptor拦截器Filter过滤器1、多Filter不指定过滤顺序2、多Filter指定过滤顺序流程...
    99+
    2024-04-02
  • 一文详解Java过滤器拦截器实例逐步掌握
    目录一、过滤器与拦截器相同点二、过滤器与拦截器区别三、过滤器与拦截器的实现四、过滤器与拦截器相关面试题一、过滤器与拦截器相同点 1、拦截器与过滤器都是体现了AOP的思想,对方法实现...
    99+
    2023-05-15
    Java过滤器拦截器 Java过滤器
  • JAVA中的拦截器、过滤器
    JAVA变成拦截器、过滤器 一、拦截器1、简介说明2、源码及方法说明3、拦截器自定义应用 二、过滤器1、简介说明2、源码及方法说明3、过滤器的自定义应用 三、Springboot中的WebMvcConfigurer1、简介2...
    99+
    2023-08-19
    java servlet 开发语言
  • Java中过滤器 (Filter) 和 拦截器 (Interceptor)的使用
    目录1.过滤器 (Filter)2.拦截器 (Interceptor)3.区别3.11、实现原理不同3.2 使用范围不同3.3 触发时机不同3.4 拦截的请求范围不同3.5 注入Be...
    99+
    2024-04-02
  • java如何使用过滤器进行拦截
    Java中使用过滤器进行拦截的步骤如下:1. 创建一个实现了javax.servlet.Filter接口的过滤器类,例如:```ja...
    99+
    2023-08-18
    java
  • java 使用过滤器实现登录拦截处理
    目录滤器实现登录拦截处理一、什么是过滤器二、工作原理及生命周期三、过滤器使用filter简易实现登录功能拦截LoginFlitercontroller结果图滤器实现登录拦截处理 一、...
    99+
    2024-04-02
  • SpringBoot过滤器与拦截器实例演示
       SpringBoot中的过滤器拦截器操作与springmvc中的几乎一样所以这里也不过多介绍了,下面举两个简单的栗子演示一下 1、过滤器         1 创建过滤器类Log...
    99+
    2024-04-02
  • SpringBoot过滤器与拦截器使用方法深入分析
    目录什么是过滤器什么是拦截器拦截器与过滤器的区别什么是过滤器 过滤器 Filter 基于 Servlet 实现,过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet ...
    99+
    2022-12-27
    SpringBoot过滤器 SpringBoot拦截器
  • Java拦截器和过滤器的区别分析
    目录一、过滤器(filter)二、拦截器(interceptor)三、拦截器与过滤器的区别 四、详细说明 一、过滤器(filter) 过滤器处于客户端与Web资源(Servlet、J...
    99+
    2024-04-02
  • Java过滤器和拦截器怎么实现
    这篇文章主要介绍“Java过滤器和拦截器怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java过滤器和拦截器怎么实现”文章能帮助大家解决问题。一、过滤器与拦截器相同点拦截器与过滤器都是体现了...
    99+
    2023-07-06
  • 过滤器和拦截器的区别
    文章目录 一、拦截器和过滤器的区别1、过滤器1、实现方式2、应用场景 2、拦截器1、实现方式2、应用场景 总结 一、拦截器和过滤器的区别 过滤器和拦截器触发时机不一样,过...
    99+
    2023-09-12
    servlet java spring
  • 使用SpringBoot如何实现自定义过滤器与拦截器
    使用SpringBoot如何实现定义过滤器与拦截器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、自定义过滤器创建一个过滤器,实现javax.servlet.Filter...
    99+
    2023-05-31
    springboot 拦截器 监听器
  • Java拦截器和过滤器的区别有哪些
    小编给大家分享一下Java拦截器和过滤器的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、过滤器(filter)过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源之间的请求...
    99+
    2023-06-15
  • java拦截器和过滤器有哪些区别
    Java拦截器和过滤器有以下区别:1. 执行顺序:过滤器在Servlet容器内部执行,而拦截器在Java代码中执行。过滤器是在请求被...
    99+
    2023-10-08
    java
  • java拦截器和过滤器有什么不同
    Java拦截器和过滤器在功能和使用场景上有所不同。1. 功能:拦截器主要用于拦截并处理方法调用,可以在方法执行前后进行一些额外的处理...
    99+
    2023-10-10
    java
  • java拦截器和过滤器有什么区别
    Java拦截器和过滤器都是用于处理请求和响应的中间件,但它们在功能和使用方面有一些区别。 功能:拦截器主要用于处理方法级别的拦截...
    99+
    2023-10-24
    java
  • 一文了解Spring中拦截器的原理与使用
    目录1.Spring中的拦截器1.1HandlerInterceptor拦截器1.2 MethodInterceptor拦截器2.二者的区别1.Spring中的拦截器 在web开发中...
    99+
    2024-04-02
  • 如何在Java项目中使用过滤器、拦截器和监听器
    如何在Java项目中使用过滤器、拦截器和监听器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个...
    99+
    2023-05-31
    java 拦截器 过滤器
  • Java中拦截器和过滤器有什么区别
    这篇文章将为大家详细讲解有关Java中拦截器和过滤器有什么区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、过滤器(filter)过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,...
    99+
    2023-06-15
  • java过滤器和拦截器有哪些异同点
    这篇“java过滤器和拦截器有哪些异同点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java过滤器和拦截器有哪些异同点”文...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作