一:DispatcherServlet是什么?
DispatcherServlet是SpringMVC的前端控制器,拦截Web请求,并且把请求分派的匹配的控制起来进行处理,是Spring MVC框架的一个核心类,所以需要深入的了解这个类的原理,处理请求过程和源码分析。
二:特点都有哪些?
根据Spring官方的文档或者从源码的注释中,可以了解到DispatcherServle的的特点有以下几点:
1:DispatcherServlet基于java bean配置机制,也就是都基于SpringIOC容器的机制
2:映射请求:可以使用任何的HandlerMapping实现来匹配请求的路由来处理请求。默认使用BeanNameUrlHandlerMapping和DefaultAnnotationHandlerMapping.
3 : 适配处理:使用任何的HandlerAdapter接口来适配处理器.默认的Adapters实现有HttpRequestHandlerAdapter, SimpleControllerHandlerAdapter.HttpRequestHandlerAdapter对应HttpRequestHandler,
SimpleControllerHandlerAdapter对应Controller接口
4 : 异常处理:采用HandlerExceptionResolver来处理异常机制。默认的异常机制包括AnnotationMethodHandlerExceptionResolver、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolver.
5 : 视图解析 : 采用ViewResolver来处理视图的解析。默认的实现类是InternalResourceViewResolver
6 : 文件上传:采用MultipartResolver来处理文件上传.默认的实现类CommonsMultipartResolver。
7:本地资源:采用LocaleResolver来处理本地资源,实现类是AcceptHeaderLocaleResolver.
8 : 模板解析:采用ThemeResolver解析模板。默认实现类是FixedThemeResolver.
三:处理请求过程:
在DispatherServlet.doDispatch()来处理Web的请求.处理过程如下:
1 : 首先会处理文件上传请求.
2 : 根据请求获得一个合适的执行链HandlerExecutionChain,这个执行链,由handler对象和一组HandlerInterceptor组成。
3 : 从Handler匹配合适的HandlerAdapter.
4 : 根据lastModified来判断当前servlet请求是否需要重新刷新还是缓存,如果没有更新,则不用处理.
5 : 调用执行链中的拦截器的预处理
6 : 然后调用处理器的实际处理,返回一个ModelView对象
7 : 调用处理器Handler.applyPostHandle()处理
8: 处理响应结果,包括视图解析,本地化解析,渲染具体的视图等等。
相关推荐
浅谈SpringMVC的DispatcherServlet分析 在本篇文章中,我们将对SpringMVC的DispatcherServlet进行深入分析,并了解其在Web应用程序中的作用。 一、DispatcherServlet的配置 在SpringMVC中,DispatcherServlet是...
2. DispatcherServlet 分析请求 URL,通过 HandlerMapping 找到对应的控制器方法。 3. HandlerAdapter 负责调用控制器方法,处理请求。 4. 控制器处理请求,可能涉及到 Service 层调用 Dao 层操作数据。 5. 处理完成...
Spring源码学习九:DispatcherServlet初始化源码分析1 DispatcherServlet是SpringMVC的核心分发器,它实现了请求分发,是处理请求的入口,本篇将深入源码分析它的初始化过程。 首先,从DispatcherServlet的名称上...
2. DispatcherServlet 分析请求信息,找到对应的 HandlerMapping(处理器映射器)。 3. HandlerMapping 根据请求 URL 和方法找到相应的 Controller 方法。 4. HandlerAdapter(处理器适配器)执行 Controller 方法,...
2. DispatcherServlet 分析请求,找到合适的控制器方法来处理请求。 3. 控制器方法执行,可能涉及到对模型对象的更新,或者调用服务层进行业务处理。 4. 控制器方法返回一个模型视图名(ModelAndView 对象)或者直接...
2. DispatcherServlet 分析请求信息,找到合适的 HandlerMapping(处理器映射器)来定位处理请求的 Controller 方法。 3. HandlerAdapter(处理器适配器)根据 Controller 方法的签名,执行该方法,处理业务逻辑。 4...
2. DispatcherServlet 分析请求并找到合适的 HandlerMapping。 3. HandlerMapping 根据请求信息找到对应的 Controller 方法。 4. Controller 方法执行,可能涉及到 Service 层和 Dao 层进行业务处理。 5. Controller...
2. DispatcherServlet 分析请求,找到对应的HandlerMapping。 3. HandlerMapping 根据请求映射到相应的处理器(Controller)。 4. Controller 处理请求,可能涉及业务逻辑和数据访问。 5. Controller 返回...
本篇文章将深入探讨DispatcherServlet的请求分发流程。 DispatcherServlet继承自HttpServlet,其核心功能在于处理HTTP请求。在Servlet的service方法中,DispatcherServlet会接收到请求并进行分发。在...
本篇文章将深入分析DispatcherServlet如何实现请求转发的过程,以及Spring MVC与Servlet容器的紧密集成。 首先,当一个HTTP请求到达Servlet容器时,如Tomcat,容器会调用Servlet的`service()`方法。对于...
2. DispatcherServlet 分析请求,通过处理器映射器找到合适的Controller。 3. Controller 处理请求,可能涉及数据的获取、业务逻辑的执行以及ModelAndView的创建。 4. ModelAndView 传递给视图解析器,解析出具体的...
通过上述分析,我们可以了解到SpringMVC是如何利用`DispatcherServlet`作为中心调度器,以及如何通过路由匹配和分发机制来处理请求的。这种设计使得SpringMVC具有高度的灵活性和扩展性,同时也降低了各个组件之间的...
源码解析将揭示DispatcherServlet的工作流程,包括控制器的查找,模型视图的构建,以及视图的渲染。理解这些细节,可以帮助你在处理复杂请求逻辑时游刃有余,同时提升Web应用的响应速度。 最后,Mybatis作为持久层...
2.3 加载DispatcherServlet的配置文件,默认为/WEB-INF/servlet-name-servlet.xml(servlet-name为DispatcherServlet在web.xml中的name属性值)。 2.4 注册DispatcherServlet的HandlerMapping、HandlerAdapter、...
《看透SpringMVC源代码分析与实践》这本书旨在帮助读者深入理解SpringMVC这一流行的Java Web框架的工作原理,通过源代码分析与实践相结合的方式,提升开发者的技术深度和解决问题的能力。SpringMVC作为Spring框架的...
1.DispatcherServlet:在Spring MVC中,DispatcherServlet是中央调度器,负责接收用户的请求,并根据配置找到合适的控制器来处理请求。在源代码层面,我们需要理解它如何初始化、如何处理请求以及如何与各个组件相互...
在这个源码分析中,我们将深入探讨Spring MVC的核心组件和工作流程。 1. **DispatcherServlet**:Spring MVC的入口点,它是所有请求的前端控制器。当一个HTTP请求到达服务器时,DispatcherServlet负责拦截请求,并...