博学,切问,近思--詹子知 (https://jameszhan.github.io)
前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现。这里我们就采用后一种方式来实现我们的MVC框架。
1.配置web.xml,使得我们的前端控制器可以拦截所有符合要求的用户请求,这里我们的前端控制器能处理所有以.do结尾的用户请求。 2.FrameworkServlet实现。
FrameworkServlet是DispatcherServlet的直接父类,继承自HttpServlet,主要用来初始话WebApplicationContext,把不同的Http请求操作委托给同一个方法去处理。 3.DispatcherServlet实现。
初始化操作.
- 检查系统中是否已经定义HandlerMapping。如果没有定义,则使用默认配置。
- 检查系统中是否已经定义HandlerAdapter。如果没有定义,则使用默认配置。
- 检查系统中是否已经定义ViewResolover。如果没有定义,则使用默认配置。
请求处理.
- 根据特定的请求,使用HandlerMapping找到相应的控制器Handler。
- 找到支持此种handler的HandlerAdapter,handler处理完响应业务后,HandlerAdapter把它转化为ModelAndView对象。
- 利用ViewResolver对ModelAndView进行分析,生成相应的View对象。
- 生成响应。
默认配置
相关文章: