深入理解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接口方法的作用及其参数,返回值详解如下: