一、上图
二、说明
2.1 过滤器
过滤器适用于所有请求;
2.2 调度程序servlet
该servlet分析请求,并将其分发给对应的控制器进行处理;
2.3 通用服务
通用服务将被应用与每个请求,以提供国际化、主题、文件上传等功能。他们的配置在DispatcherServlet的WebApplicationContext中定义;
2.4 处理映射
将传入的请求映射到处理程序(Controller中的方法)。自spring2.5以来,多数不用配置,因为springMVC会自动注册一个HandlerMapping的实现,该实现通过@HandlerMapping注解在控制器中的类上或方法上表示HTTP的路径来映射处理程序;
2.5 处理程序拦截器
为处理程序注册拦截器,实现通用的检查或逻辑;(检查head中有无版本号,没有非法请求)
2.6 处理程序异常解析器
springMVC中,HandlerExceptionResolver接口用于解析请求处理期间抛出的异常。默认情况下,DispatcherServlet注册了DefaultHandlerExceptionResolver类。该解析器通过响应码处理springMVC的标准异常。也可通过@ExceptionHandler,传入异常类型来实现自己的异常解析器;
2.7 视图解析
springMVC的ViewResolver接口支持基于控制器返回的逻辑名称的视图解析。
例
UrlBasedViewResolver:将逻辑名解析为url;
ContentNegotiatingViewResolver:根据客户端支持的媒体类型(XML、JSON、PDF)动态解析视图;
FreeMarker系列、Velocity系列、JasperReports系列