SpringMVC與Servlet接口
Servlet接口規(guī)范
-
Servlet
接口 定義servlet接口規(guī)范init, service梯轻, destroy
?
-
GenericServlet
抽象類 實現(xiàn)Servlet實現(xiàn)了init 傳入ServletConfig厦瓢,調(diào)用自己的init。
?并且用抽象service方法覆蓋了父類service
?
-
HttpServlet
抽象類 繼承GenericServlet實現(xiàn) 了service方法,調(diào)用自己的servlce,
service內(nèi)部調(diào)用了方法doGet,doPost,doPut,doDelete,doOptions,doTrace,
SpringFramework下的servlet實現(xiàn)
-
HttpServletBean
抽象類 繼承HttpServlet覆蓋了init胀蛮,內(nèi)部 調(diào)用自己的intiServletBean
?
-
FrameworkServlet
抽象類,繼承了HttpServletBean1糯钙、覆蓋了
service
方法粪狼,添加了method=patch
的處理,然后調(diào)用父類的service任岸。在父類service內(nèi)部會調(diào)用
doXXX
方法2再榄、而這里又覆蓋了
doGet,doPost,doPut,doDelete,doOptions,doTrace
方法3、另外覆蓋了
destroy
方法4享潜、還覆蓋了
initServletBean
方法困鸥,這在父類init中調(diào)用在initServletBean中會調(diào)用
initWebApplicationContext
,而InitWebApplicationContext
內(nèi)部會調(diào)用onRefresh
方法?
-
DispatcherServlet
類 剑按。繼承了FrameworkServlet1疾就、覆蓋了
onRefresh
方法。 這個內(nèi)部就是加載了各中springMvc相關的組件艺蝴。springMVC組件就是從這里來的猬腰,也就是在servlet初始化時加載 的
initMultipartResolver(context); initLocaleResolver(context); initThemeResolver(context); initHandlerMappings(context); initHandlerAdapters(context); initHandlerExceptionResolvers(context); initRequestToViewNameTranslator(context); initViewResolvers(context); initFlashMapManager(context);
總結一下
FrameworkServlet
負責實現(xiàn)了servlet規(guī)范,init, service猜敢, destroy
DispatcherServlet
負責初始化springMVC相關組件
預留問題:
后續(xù)我們再看springMVC各組件的加載