乐途乐途
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
  • 学习路径
  • 第1章 SpringMVC概述与DispatcherServlet

    • 本章导读:Spring MVC概述与DispatcherServlet
    • Spring MVC 是什么
    • MVC 设计模式
    • 前端控制器模式
    • DispatcherServlet
    • 核心组件协作
  • 第2章 控制器与请求映射

    • 本章导读:控制器与请求映射
    • Controller
    • RestController
    • RequestMapping
    • GetMapping
    • PostMapping
    • PutMapping
    • DeleteMapping
    • PathVariable
    • RESTful
    • 请求映射原理
  • 第3章 请求参数获取与转换

    • 本章导读:请求参数获取与转换
    • RequestParam
    • RequestBody
    • RequestHeader
    • CookieValue
    • Model
    • ModelAttribute
    • 数据绑定原理
    • 数据校验
  • 第4章 响应数据与视图解析

    • 本章导读:响应数据与视图解析
    • ResponseBody
    • ResponseEntity
    • ModelAndView
    • ViewResolver
    • HttpMessageConverter
    • forward与redirect
  • 第5章 拦截器过滤器与跨域

    • 本章导读:拦截器、过滤器与跨域
    • HandlerInterceptor
    • WebMvcConfigurer
    • CrossOrigin
    • 登录验证实战
  • 第6章 文件上传与异常处理

    • 本章导读:文件上传与异常处理
    • MultipartFile
    • 文件下载
    • ExceptionHandler
    • ControllerAdvice
    • RestControllerAdvice
    • ResponseStatus
  • 第7章 高级特性与最佳实践

    • 本章导读:高级特性与最佳实践
    • SessionAttributes
    • SessionAttribute
    • RedirectAttributes
    • MockMvc测试
    • 国际化
    • 最佳实践
  • 第8章 扩展与异步机制

    • 本章导读:扩展与异步机制
    • 异步请求处理
    • 自定义参数解析器
    • 内容协商

"白歌,每个接口都写权限校验太重复了,能不能统一处理?"小崔在实现用户模块时问道。白歌在白板上画了一条线:"拦截器就是这条线——横切在请求到达控制器之前。配合跨域配置,你能用一套机制解决认证、日志、限流等所有横切关注点。"

——白歌,飞翔科技架构师

本章导读:拦截器、过滤器与跨域

本章定位

本章解决的核心问题:如何在请求到达控制器之前或响应返回客户端之后,统一执行预处理、后处理逻辑(如权限校验、日志记录、跨域放行),以及如何通过配置类集中管理这些横切机制。

学习路线图

学习建议:先理解拦截器的三个回调钩子(preHandle/postHandle/afterCompletion),再学习如何通过WebMvcConfigurer注册和配置拦截器,然后掌握跨域注解的使用,最后通过"登录验证实战"将所有知识串联为可运行的安全方案。

文件关系说明

文件一句话角色
HandlerInterceptor.md横切核心:拦截器的生命周期与三个回调方法,理解它是Spring MVC提供的AOP式请求拦截机制。
WebMvcConfigurer.md配置中枢:通过实现WebMvcConfigurer接口注册拦截器、配置跨域、自定义消息转换器等,Spring MVC的Java配置总入口。
CrossOrigin.md跨域放行:@CrossOrigin注解与全局跨域配置,解决前后端分离开发中的浏览器同源策略限制。
登录验证实战.md综合演练:利用拦截器实现JWT/Session登录态校验的完整案例,将拦截器、配置类、异常处理串联为生产级方案。

知识图谱

图谱解读:请求先经过Servlet容器的Filter层,再进入DispatcherServlet,随后触发HandlerInterceptor.preHandle进行预处理(如登录校验)。校验通过后到达Controller执行业务逻辑,返回后依次经过postHandle和afterCompletion。WebMvcConfigurer是统一配置这些拦截器和跨域规则的入口。"登录验证实战"展示了如何将拦截器与认证逻辑结合,形成完整的安全防线。

与下一章的衔接

本章学完后,你已经掌握了"在请求链路中插入横切逻辑"。下一章将解决"如何处理文件流和异常情况"——你将学习MultipartFile实现文件上传下载,以及@ExceptionHandler、@ControllerAdvice等全局异常处理机制,这是从"正常流程开发"到"健壮性工程实践"的必备能力。

下一页
HandlerInterceptor