从DispatcherServlet类层次图可以看出DispatcherServlet具有Servlet基础功能。
Servlet源码中一行注释:
<li>The servlet is constructed, then initialized with the <code>init</code> method.
意思:servlet被构建后会通过init方法进行初始化。
即通过web.xml配置DispatcherServlet最终会触发init方法。
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
init方法委托子类的initServletBean初始化>>>>FrameworkServlet.initServletBean
而FrameworkServlet.initServletBean又委托给initWebApplicationContext()方法
initWebApplicationContext()有委托给子类的onRefresh(wac)方法即DispatcherServlet.onRefresh方法