首页 > 其他分享 >学习笔记——拦截器与过滤器的区别;拦截器概述;拦截器中三个方法

学习笔记——拦截器与过滤器的区别;拦截器概述;拦截器中三个方法

时间:2023-01-22 00:55:07浏览次数:45  
标签:拦截器 请求 Controller 概述 过滤器 DispatcherServlet 方法

2023-01-21

一、拦截器与过滤器的区别

1、过滤器(Filter)属于web服务器组件

(1)过滤器主要作用:过滤Servlet请求

(2)执行时机:两处执行时机(Servlet前、Servlet后)

2、拦截器(Interceptor)属于框架(springMVC)

(1)拦截器主要作用:拦截Controller请求

(2)执行时机:三处执行时机

①执行DispatcherServlet之后,Controller之前

②执行Controller之后,DispatcherServlet之前

③执行DispatcherServlet之后

二、拦截器概述

1、SpringMVC可以使用拦截器实现拦截Controller请求,用户可以自定义拦截器来实现特定功能

2、实现拦截器两种方式

(1)实现接口:HandlerInterceptor

(2)继承适配器类:HandlerInterceptorAdapter

3、拦截器中三个方法

(1)preHandler():这个方法在业务处理器处理请求之前被调用,可以在此方法中做一些权限的校验。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他组件去处理请求,则返回false.

(2)postHandler():这个方法在业务处理器处理请求之后,渲染视图之前调用。在此方法中可以对ModelAndView中的模型和视图进行处理。

(3)afterCompletion():这个方法在DispatcherServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。

三、实现拦截器步骤

1、实现接口:HandlerInterceptor

2、重写三个方法

@Component
public class MyInterceptor implements HandlerInterceptor {

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

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

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
        System.out.println(" MyInterceptor==>afterCompletion " );

    }
}

3、在springmvc.xml配置文件中,装配拦截器

<!--    装配拦截器-->
    <mvc:interceptors>
        <ref bean="myInterceptor"></ref>
    </mvc:interceptors>

 

标签:拦截器,请求,Controller,概述,过滤器,DispatcherServlet,方法
From: https://www.cnblogs.com/isDaHua/p/17063981.html

相关文章

  • C++概述、选择结构、循环结构
    目录1C++概述1.1计算两个整数相加之和1.2计算三个整数相加之和2选择结构2.1小老鼠走迷宫1(if语句)2.2小老鼠走迷宫1(if语句)(多个单分支结构)2.3小老鼠走迷宫2(switch语句)2......
  • 学习笔记——SpringMVC消息转换器概述;使用消息转换器处理请求报文;使用消息转换器处理
    2023-01-20一、SpringMVC消息转换器概述1、HttpMessageConverter<T>消息转换器作用:(1)将java对象与请求报文及响应报文进行相互转化(2)使用HttpMessageConverter<T>将请......
  • 功能测试必备:Fiddler 过滤器使用场景演示
    大家好啊,我是大田Fiddler默认会抓取所有的网络报文请求,为了专注于所需的网络报文,这里使用过滤器。一、三步完成设置1、开启过滤2、设置过滤的指定地址3、配置过滤条......
  • C++概述
    计算两个整数相加之和#include<iostream>usingnamespacestd;/*函数功能:计算两个整数相加之和*/intAdd(inta,intb){return(a+b);}//主函数intmai......
  • 实现中文UTF8的过滤器
    1.过滤器代码:packagecom.yin;importjavax.servlet.*;importjava.io.IOException;publicclassfilterimplementsFilter{publicvoidinit(FilterConfig......
  • ASP.NET Core 实战-13.MVC 和 Razor Pages 过滤器管道
    了解过滤器以及何时使用它们在本节中,您将了解有关过滤器管道的所有信息。您将看到它在典型请求的生命周期中的位置、MVC和Razor页面之间的区别以及过滤器与中间件的区......
  • 数据库损坏指南(1)--概述
    一、概念与类比对于数据库,它是关于存储在磁盘上的数据的格式。当数据库产品(如PostgreSQL、MySQL或MongoDB)对磁盘进行写操作时,会使用某种格式来执行。当从磁盘读取数据时......
  • 学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PU
    2023-01-19一、@PathVariable注解基本使用1、获取URL中占位符2、占位符语法:{}3、实例代码:@RequestMapping("testPathVariable/{empId}")publicStringtestPath......
  • SAP S/4HANA Group Reporting 功能概述
    SAPGroupReporting在本地(local)和集团结算活动之间提供无缝流程,因为两者都在SAPS/4HANA核心中。本地和组结算活动也使用相同的数据库和用户界面。这加快了结算过......
  • C语言概述
    一.C语言程序初识,先介绍一个简单的C语言程序:#include<stdio.h>intarr[100000];//声明一个较大的整型数组,尽量放在函数外部/*原因是:函数内部申请的局部变量空间,来自于......