Bootstrap

深入理解SpringMVC(九)

目录

2.3、SpringMVC的响应处理

2.3.1、传统同步业务数据响应

2.3.2、前后端分离异步业务数据响应

2.4、SpringMVC的拦截器

2.4.1、拦截器Interceptor简介

2.4.2、拦截器快速入门

2.4.3、拦截器执行顺序

2.4.5、拦截器执行原理

2.5、SpringMVC的组件原理剖析

2.5.1、前端控制器初始化

2.5.2、前端控制器执行主流程

2.6、SpringMVC的异常处理机制

2.6.1、SpringMVC的异常处理方式 

2.6.2、异常处理机制原理剖析

2.6.3、SpringMVC常用的异常解析器


2.3、SpringMVC的响应处理

2.3.1、传统同步业务数据响应

Spring怎么给客户端响应数据,响应数据主要分为两大部分:

  • 传统同步方式:准备好模型数据,在跳转到执行页面进行展示,此方式使用越来越少,基于历史原因,一些旧项目还在使用;
  • 前后端分离异步方式:前端使用Ajax技术+Restful风格与服务端进行json格式为主的数据交互,目前市场上几乎都是此种方式了。

传统同步业务在数据响应时,SpringMVC又涉及如下四种形式:

  • 请求资源转发;
  • 请求资源重定向;
  • 响应模型数据;
  • 直接回写数据给客户端;

2.3.2、前后端分离异步业务数据响应

同步方式回写数据 vs 异步方式回写数据

  • 同步方式回写数据,是将数据响应给浏览器进行页面展示的,而异步方式回写数据一般是回写给Ajax引擎的,即谁访问服务器端,服务器端就将数据响应给谁
  • 同步方式回写的数据,一般就是一些无特定格式的字符串,而异步方式回写的数据大多数是Json格式字符串。

2.4、SpringMVC的拦截器

2.4.1、拦截器Interceptor简介

SpringMVC的拦截器Interceptor规范,主要是对Controller资源访问时进行拦截操作的技术,当然拦截后可以进行权限控制,功能增强等都是可以的。拦截器有点类似Javaweb开发中的Filter,拦截器与Filter的区别如下图:

 对Filter和Interceptor做个对比

实现了HandlerInterceptor接口,且被Spring管理的Bean都是拦截器,接口定义如下:

 HandlerInterceptor接口方法的作用及其参数,返回值详解如下:

;