首页 > 其他分享 >SpringMvc——拦截器学习

SpringMvc——拦截器学习

时间:2022-11-05 16:56:07浏览次数:51  
标签:web 拦截器 SpringMvc springframework 学习 import org servlet

1、拦截器(Interceptor)是一种动态拦截方法调用的机制
作用:
在指定的方法调用前后执行预先设定后的的代码
阻止原始方法的执行
2、拦截器与过滤器区别
归属不同:Filter属于Servlet技术,Interceptor.属于SpringMVC技术
拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行增强

在SpringMvc中进行拦截器配置,一般写在controller下,拦截器为业务层服务。
package com.itheima.controller.Interceptor;

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 ProjectInterceptor implements HandlerInterceptor {
    //原始程序运行之前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandler....");
        //false代表终止原始操作
        return true;
    }

    //运行之后
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandler...");
    }
    //运行之后
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion...");
    }
}

在springMvc中加载拦截器

package com.itheima.config;

import com.itheima.controller.Interceptor.ProjectInterceptor;
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.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class SpringWebSupport extends WebMvcConfigurationSupport {
    @Autowired
    private ProjectInterceptor projectInterceptor;

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
    }

//    拦截器
//设置拦截器对象和拦截请求
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(projectInterceptor).addPathPatterns("/books"); //配置拦截路径
    }
}

加载完之后,需要在SpringMvc配置文件中进行扫描。

拦截器的执行流程

 

 

 

标签:web,拦截器,SpringMvc,springframework,学习,import,org,servlet
From: https://www.cnblogs.com/jzz-111jy/p/16860557.html

相关文章

  • 学习笔记——元数据、blob类型的元素
    2022-11-04一、元数据1、元数据的说明:元数据就是指描述数据的数据,例如:数据有多少列、数据的列名称等。2、使用的代码:1ResultSetMetaDatametaData=rs.getMeta......
  • mysql 8系备份学习总结
    一、背景:1、 PerconaXtrabackup8.0.25不支持低于MySQL8.0的备份(因为MySQL8.0在数据字典、redolog中和之前版本不兼容),因此2.4版本的也不支持8系的备份     ......
  • SpringMVC 原理
    1.原理图(实现代表自动装配完成,虚线我们需要实现的地方)   2.实现步骤  3.实现  HelloController.javapackagecom.zxy.contorller;importorg.springfr......
  • 解决在idea中使用springMvc向mysql写入中文数据乱码
    相关设置:1、idea编码格式设置:   2、MySQL的相关编码格式设置:修改前编码:无用操作:之前通过命令行修改编码格式:setcharacter_set_client=utf8......
  • shardingsphere-jdbc 水平分表学习记录
    放在自己博客里搬过来一份~前司使用的是自己魔改的TDDL,在家时间比较多就尝试学一些业内比较常用的中间件.这里记录一下学习中遇到的一些问题.环境设置的比较简单(太......
  • 2022-2023-1 20221421 《计算机基础与程序设计》第十周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10作业目标:cpu调度,进程控制,先到先......
  • 《Unix/Linux系统编程》第十二章学习笔记 20201209戴骏
    第十二章、块设备I/O和缓冲区管理知识点归纳一、块设备I/O缓冲区I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk......
  • 学习笔记-Windows 基础服务搭建
    Windows基础服务搭建磁盘管理例1新建两个10G的硬盘,名称为A-10-1、A-10-2,挂载到主机;新建镜像卷,使用所有空间,驱动器号为D.1.开始——管理工具——计算机......
  • 学习笔记-组策略
    组策略组策略的概念组策略(英语:GroupPolicy)是微软WindowsNT家族操作系统的一个特性,它可以控制用户帐户和计算机帐户的工作环境。组策略提供了操作系统、应用程序和活......
  • 学习笔记-ACL
    ACL什么是ACLwindows系统中的ACL(AccessControlList),用来表示组与用户权限的列表。比如文件、注册表的权限都包括ACL,它用来表示哪些组与用户具有操作权限,其实主要......