首页 > 其他分享 >SpringMvc拦截器

SpringMvc拦截器

时间:2024-11-05 19:46:54浏览次数:3  
标签:拦截器 SpringMvc handler registry Override 拦截 public

 什么是拦截器?

就是你在访问控制层去做业务前后都做一些事,你调用我之前我先看看你有没有这个权限

拦截器和过滤器的区别:

        归属不同:一个是Servlet技术一个是SpringMvc的技术

        拦截的内容不同:过滤器Filter对所有访问进行加强,过滤器Interceptor仅仅针对SpringMvc的访问进行增强

简单的案例

1.声明拦截器的bean 实现 HandlerInterceptor 接口(注意扫描加载bean)

@Component
public class ProjectInterceptor implements HandlerInterceptor {
    //拦截前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String connection = request.getHeader("Connection");
        //handler里面封装了执行的方法
        System.out.println(handler);
        System.out.println("preHandle..." + connection);
        //false表示终止原始操作
        return true;
    }

    //拦截后
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        //modelAndView封装了页面跳转相关的
        System.out.println("postHandle...");
    }

    //拦截后并且再postHandle之后运行
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        //ex 拿到异常
        System.out.println("afterCompletion...");
    }
}

 2.定义配置类 设置拦截的请求和使用的拦截器

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    @Autowired
    private ProjectInterceptor projectInterceptor;
  
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
        registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");
    }

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        //调用/books请求时间拦截 拦截器projectInterceptor
        registry.addInterceptor(projectInterceptor).addPathPatterns("/books","/books/*");
      
}

配置多个拦截器(了解)

标签:拦截器,SpringMvc,handler,registry,Override,拦截,public
From: https://blog.csdn.net/2302_80849963/article/details/143523764

相关文章

  • 使用 axios 拦截器实现请求和响应的统一处理(附常见面试题)
    在现代前端开发中,我们经常需要向服务器发送HTTP请求,并根据响应内容做不同的处理。axios是一个流行的HTTP库,提供了拦截器功能,可以在请求和响应阶段插入自定义逻辑,这使得我们在处理认证、错误提示等场景时更为简洁、统一。本文将讲解如何利用axios的请求拦截器和响应拦......
  • Spring框架中的AOP是什么?如何使用AOP实现切面编程和拦截器功能?
    1、Spring框架中的AOP是什么?如何使用AOP实现切面编程和拦截器功能?在Spring框架中,AOP(Aspect-OrientedProgramming,面向切面编程)是一种用于处理程序中不同方面的技术,例如日志、安全性、事务管理等。通过AOP,我们可以将特定的代码片段(称为切面)应用到应用程序的不同方面,而无需修......
  • SpringMVC笔记 一万字
    此笔记来自于B站尚硅谷文章目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建sprin......
  • springmvc请求源码流程解析(二)
        Spring官网的MVC模块介绍:SpringWebMVC是基于ServletAPI构建的原始Web框架,从一开始就已包含在Spring框架中。正式名称“SpringWebMVC”来自其源模块的名称(spring-webmvc),但它通常被称为SpringMVC。    从Servlet到SpringMVC:    最典型的MVC就是J......
  • 【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求
    【web服务器】web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼常见的web服务器:Tomcat,Jboss,IIS等SpringBoot内置了Tomcat服务器,无需配置即可使用Tomcat默认端口是「8080」......
  • 【SpringMVC】传递json,获取url参数,上传文件
    【传递json数据】【json概念】一种轻量级数据交互格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,其本质上是字符串,负责在不同的语言中数据传递与交换json数据以字符串的形式体现【json字符串与Java对象互转】我们需要在pom.xml中增加对json的依赖【对象转jso......
  • springmvc-servlet.xml和web.xml文件的存放路径是哪里?项目添加到Tomcat上运行后就报错
        用eclipse写了一个简单的web项目,springmvc-servlet.xml文件和web.xml文件都配置好了,运行起来能看见hello的web页面,但是有一堆报错,不知道是什么原因                                     ......
  • SpringMVC实战(2):接收与响应数据
    二、SpringMVC接收数据2.1访问路径设置@RequestMapping注解的作用就是将请求的URL地址和处理请求的方式(handler方法)关联起来,建立映射关系。SpringMVC接收到指定的请求,就会来找到在映射关系中对应的方法来处理这个请求。精准路径匹配在@RequestMapping注解指定URL地......
  • 021、深入解析前端请求拦截器
    目录深入解析前端请求拦截器:1.引言2.核心实现与基础概念2.1基础拦截器实现2.2响应拦截器配置3.实际应用场景3.1完整的用户认证系统3.2文件上传系统3.3API请求缓存系统3.4请求重试机制3.5国际化处理4.性能优化实践4.1请求合并(RequestBatching)4.2......
  • SpringMVC7-RESTful
    目录RESTful简介资源资源的表述状态转移RESTful的实现案例RESTful简介REST:RepresentationalStateTransfer,表现层资源状态转移资源资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象......