首页 > 其他分享 >Springmvc中的处理器、拦截器、过滤器的执行时机

Springmvc中的处理器、拦截器、过滤器的执行时机

时间:2024-08-30 11:50:26浏览次数:9  
标签:拦截器 Springmvc System --- Override 过滤器 println public out

Springmvc中的处理器、拦截器、过滤器的执行时机

测试案例:

public class MyFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("--->> MyFilter.init");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("--->> MyFilter.doFilter");
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        System.out.println("--->> MyFilter.destroy");
    }
}
public class MyInterceptor implements HandlerInterceptor {

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

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

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("--->> MyInterceptor afterCompletion");
    }
}
public class MyListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("--->> MyListener.contextInitialized");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("--->> MyListener.contextDestroyed");
    }
}

image

image

image

执行顺序:

image

标签:拦截器,Springmvc,System,---,Override,过滤器,println,public,out
From: https://www.cnblogs.com/dongyaotou/p/18388432

相关文章

  • SpringMVC扩展点RequestBodyAdvice和ResponseBodyAdvice如何使用及实现原理
    1.概述  SpringMVC是当今web项目系统开发后端技术框架的不二之选,也是Spring全家桶中非常重要的一个成员,它的设计思想和实现套路都是很值得我们学习的,所以今天我们就再来看看SpringMVC框架中预留的两个钩子也就是扩展点:RequestBodyAdvice和ResponseBodyAdvice。之前在总结详解......
  • 过滤器与拦截器对比
    在JavaWeb开发中,过滤器(Filter)和拦截器(Interceptor)都是用于处理请求和响应的机制,但它们在使用场景、实现方式和功能上有一些重要的区别。 过滤器(Filter)特点:工作原理:过滤器是在请求到达Servlet之前或响应离开Servlet之后进行处理的。过滤器可以对请求和响应进行修改。配......
  • SpringMVC接收返回值方法汇总
    传统方式@RequestMapping("/param01")publicStringparam01(HttpServletRequestrequest)throwsUnsupportedEncodingException{request.setCharacterEncoding("UTF-8");Stringid=request.getParameter("id");request.setAt......
  • Qt 事件传递流程-事件处理器|事件分发器|事件过滤器
    (总体传递流程图见文章末尾)自定义控件结构 自定义继承于QLabel的控件类 PropagateLabel.h 自定义窗口 PropagateWidget 在PropagateWidget中添加一个PropagateLabel标签1PropagateWidget::PropagateWidget(QWidget*parent):2QWidget(parent)3{4......
  • Spring MVC (什么是MVC ?MVC模式又是什么 ?SpringMVC 的执行流程)
    1、MVC是什么?1.1、MVCSpringMVC(全称SpringWebMVC)是Spring框架提供的一款基于MVC模式的轻量级Web开发框架,是Spring为表示层(UI)开发提供的一整套完备的解决方案。注:三层架构分为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL),表示层则包含前台页面和后台Servlet,Sprin......
  • MyBatis源码(6)拦截器
    1、目标本文的主要目标是学习MyBatis拦截器的源码,本文将以插入操作为例debug拦截器相关的源码2、拦截器源码分析调用mapper接口的insert插入记录方法,会调用SqlSession对象的insert方法SqlSession执行insert方法Spring容器会创建SqlSessionTemplate对象,为了实现插入操......
  • 毕业设计-基于SpringMVC的农产品土特产商城管理系统
    一、项目介绍        基于SpringMVC的农产品土特产商城管理系统分为前端用户端和后台管理系统。        用户端包括注册登录、查看商品列表、查看商品详情、商品加入购物车、购物车结算、评价商品、查看我的订单、编辑个人资料、留言、查看浏览历史等。商品......
  • REST framework:排序过滤器的使用
    对于列表数据,RESTframework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序1、在setting中的REST_FRAMEWORK添加配置'DEFAULT_FILTER_BACKENDS':(#这个是指定使用django_filters中的过滤器来进行过滤'django_filters.rest_framework.DjangoFilte......
  • sql拦截器
    好用的sql拦截器​ 写项目的时候遇到了好用的sql拦截器,自记录,整体结构如下:importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;......
  • 什么是布隆过滤器,实现原理是什么?
    背景介绍在互联网中,我们经常遇到需要在大量数据中判断目标数据是否存在的情况。例如,在网络爬虫中,我们需要判断某个网址是否已经被访问过。为了实现这一功能,通常需要使用一个容器来存储已访问过的网址。如果将这些数据直接存储在磁盘中,每次判断都要进行磁盘查询,这将导致大量的I......