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的Interceptor拦截器和servlet的filter过滤器的更多相关文章

  1. SpringMvc中Interceptor拦截器用法

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆等. 一. 使用场景 1 ...

  2. springMVC之Interceptor拦截器

    转自:https://blog.csdn.net/qq_25673113/article/details/79153547 Interceptor拦截器用于拦截Controller层接口,表现形式有点 ...

  3. 【SpringMVC学习11】SpringMVC中的拦截器

    Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用 ...

  4. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  5. SpringMVC(AbstractController,拦截器,注解)

    1.Controller接口及其实现类 Controller是控制器/处理器接口,只有一个方法handleRequest,用于进行请求的功能处理(功能处理方法),处理完请求后返回ModelAndVie ...

  6. SpringMVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  7. SpringMVC 中的Interceptor 拦截器

    1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors>  <!-- 日志拦截器 -->  <mvc:interceptor> ...

  8. SpringMVC中的Interceptor拦截器及与Filter区别

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  9. [转]SpringMVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  10. SpringMVC之七:SpringMVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

随机推荐

  1. 用Redis实现延迟队列,我研究了两种方案,发现并不简单

    大家好,我是三友~~ 背景 前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是 ...

  2. .NET 和 .NET Core 使用 JWT 授权验证

    JWT介绍 参考文章 https://www.cnblogs.com/cjsblog/p/9277677.html 一..NET 中使用 1. NuGet包 搜索JWT,下载安装(本人用的是8.2.3 ...

  3. osx使用alfred集成有道查词

    概述 使用 mac 的同学应该经常会使用 alfred 这个软件, 主要能随时能够通过一个快键键打开查询窗口, 方便的搜索或打开软件, 文件等等, 同时也可以集成脚本方便实现其它的功能. 在日常使用的 ...

  4. JAVASE小练习 (今天做一个基于javase的银行ATM小练习)

    实现的功能有1,用户登录2,用户开户(基于用户登录)3,查询账户(基于用户登录)4,存款5,取款6,转账7,修改密码(只有三次确认密码的机会)8,退出登录9,注销 这个小例子可以让我们充分复习所学的j ...

  5. Epicor 助力F1车队Scuderia AlphaTauri 提升车队运营效率和性能

    Scuderia AlphaTauri 很高兴地宣布,Epicor 是促进业务增长的行业特定企业软件的全球领导者,已被任命为车队的官方 ERP 合作伙伴.这项多年期协议建立在已经成功的长期技术合作关系 ...

  6. ABP微服务系列学习-搭建自己的微服务结构(三)

    上一篇我们基础服务初步搭建完毕,接下来我们整一下认证和网关. 搭建认证服务 认证服务的话,ABP CLI生成的所有模板都包括了一个AuthServer.我们直接生成模板然后微调一下就可以直接用了. a ...

  7. pat乙级1023 组个最小数

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> ...

  8. layui级联操作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link re ...

  9. 下拉刷新,上拉触底(.js里自带)

    <view>content值是{{cont}}</view> <button bindtap="add">+1</button>   ...

  10. Springboot 拦截器的配置

    在Springboot项目中添加拦截器,分两步: 1:创建一个拦截器类 2:配置拦截器 以上步骤完成就可以使用了,下面来添加拦截器: 1:创建一个拦截器类 MyInteceptor 继承 Handle ...