以下为个人学习记录,可能存在误解,不对之处希望指正,谢谢!
SPRING的MVC的C主要采用前端控制器的模式去分发由视图层所提交的请求,核心是DispatcherServlet。
DispatcherServlet
它继承了HttpServlet。它将被配置在WEB.XML中用以接收请求。
AP.
它将处以所有以form和shtml结束的请求。
DispatcherServlet处理过程为:
Setp1:找到WebApplicationContext并将其绑定到请求对象(request)的一个属性上(setAttribute)(为了方便后面的各个模 块中使用,这个属性默认名称为DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);
Setp2:将本地化解析器(localResolver)绑定到请求中(方便后面模块的本地化处理,如果不需本地化也可以将它忽略);
Setp3:将主题解析器(ThemesResolver)绑定到请求中(决定试图所使用的主题,如果不需要也可以将其忽略);
Setp3:根据Handler找到适合的处理器执行和这个处理器相关的执行链(预处理器,后置处理器,控制器),以便为视图准备模型数据 (用于渲染);
Setp4:如果处理完成后试图模型被返回,将找到配置中对于的视图解析器(ViewResolver),如果无视图模型返回,视图将不会被 显示。导至视图不返回的原因有很多,可能是被预处理器或后置处理器拦截(如非法请求).
注: 如果处理过程中发出异常,可以被任何WebApplicationContext中的异常解析器处理(ExceptionResover)