SpringMVC的运行流程如下图所示:
注意点:
1. 如果SringMVC中不存在请求的对应映射,会检查springmvc的配置文件中是否配置了 <mvc:default-servlet-handler />。
1.1 如果没有配置,则会跳转到404页面,并在控制台输出 No mapping found for HTTP request with URI[/XX/XX] in DispatcherServelt;
1.2 如果配置了,则会把该请求当作对静态资源的请求,并去访问相应的静态资源。如果找不到该静态资源,那么也会跳转到404页面,但是不会在控制台输出上述提示信息。
2. 如果SringMVC中存在请求的对应映射,那么在从执行控制器的目标方法到渲染视图并得到响应结果的过程中,会涉及到三个比较重要的类:
- HandlerMapping:用于定义请求到处理器之间的映射。
- HandlerExecutionChain:处理器调用链。包含了某一个处理器对象,以及和这个处理器相关的拦截器。
- HandlerAdapter:处理器适配器。 用于实现目标方法调用过程中的适配工作(例如表单数据类型的校验、转换、格式化,HttpMessageConverter的使用),并调用目标方法。