springmvc詳細(xì)工作流程 springmvc參數(shù)封裝原理?
springmvc參數(shù)封裝原理?(1)前端控制器DispatcherServlet(配置表就行)功能:中央處理器,可以接收請求,自己不做任何處理,只不過是將請求發(fā)送中給其他組件接受處理。Dispatc
springmvc參數(shù)封裝原理?
(1)前端控制器DispatcherServlet(配置表就行)
功能:中央處理器,可以接收請求,自己不做任何處理,只不過是將請求發(fā)送中給其他組件接受處理。DispatcherServlet是整個流程的控制中心。
(2)處理器映射器HandlerMapping(配置表就行)
功能:參照DispatcherServlet郵箱里的url只是請求路徑查找Handler
最常見的處理器映射器
:BeanNameUrlHandlerMapping,SimpleUrlHandlerMapping,ControllerClassNameHandlerMapping,DefaultAnnotationHandlerMapping(不個人建議不使用)
(3)處理器適配器HandlerAdapter(配置即可解決)
功能:按照特定的事件規(guī)則(HandlerAdapter要求的規(guī)則)去不能執(zhí)行Handler。
是從HandlerAdapter對處理器通過想執(zhí)行,這是適配器模式的應(yīng)用,按照擴(kuò)展多個適配器對許多類型的處理器并且先執(zhí)行。
最常見的一種的處理器適配器
:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter,AnnotationMethodHandlerAdapter
(4)處理器Handler即Controller(程序猿c語言設(shè)計)
功能:c語言設(shè)計Handler時通過HandlerAdapter的要求要做,那樣適配器才也可以去正確的執(zhí)行Handler。
(5)視圖解析器ViewReslover(配置即可)
功能:接受視圖解析,依據(jù)邏輯視圖名解析成完全的視圖。
ViewResolver全權(quán)負(fù)責(zé)將處理結(jié)果化合View視圖,ViewResolver是需要根據(jù)邏輯視圖名解析成物理視圖名即具體看的頁面地址,再化合View視圖對象,到最后對View進(jìn)行渲出將處理結(jié)果是從頁面展示展示給用戶。
springmvc框架提供給了功能高效View視圖類型,如:jstlView、freemarkerView、pdfView...
(6)視圖View(程序猿c語言設(shè)計)
View是一個接口,利用類支持差別的View類型(jsp、freemarker、pdf...)
MVC工作流程?
SpringMVC工作流程描述:
1.用戶向服務(wù)器發(fā)送跪請,只是請求被Spring前端再控制Servelt DispatcherServlet捕獲;
2.DispatcherServlet對各位URL參與解析,得到請求資源標(biāo)識符(URI)。然后把依據(jù)什么該URI,動態(tài)鏈接庫HandlerMapping我得到該Handler配置的所有相關(guān)的對象(除開Handler對象這些Handler對象不對應(yīng)的攔截器),后來以HandlerExecutionChain對象的形式回;
3.DispatcherServlet依據(jù)完成任務(wù)的Handler,選擇類型一個比較好的HandlerAdapter;
4.提純Request中的模型數(shù)據(jù),填充后Handler入?yún)?,又開始先執(zhí)行Handler(Controller)。在填充Handler的入?yún)⑦^程中,依據(jù)你的配置,Spring將幫你做一些額外的工作:HttpMessageConveter:將幫忙消息(如Json、xml等數(shù)據(jù))可以轉(zhuǎn)換成一個對象,將對象轉(zhuǎn)換成為委托的響應(yīng)信息。數(shù)據(jù)轉(zhuǎn)換:對只是請求消息進(jìn)行數(shù)據(jù)轉(zhuǎn)換。如String裝換成Integer、slip等。數(shù)據(jù)根式化:對跪請消息通過數(shù)據(jù)磁盤格式化。如將字符串轉(zhuǎn)換的成磁盤格式化數(shù)字或格式化日期等。數(shù)據(jù)不驗(yàn)證:不驗(yàn)證數(shù)據(jù)的有效性(長度、格式等),驗(yàn)證結(jié)果存儲位置到BindingResult或Error中。
5.Handler先執(zhí)行能完成后,向DispatcherServlet前往一個ModelAndView對象;
6.依據(jù)什么直接返回的ModelAndView,中,選擇一個合適的ViewResolver(必須是巳經(jīng)需要注冊到Spring容器中的ViewResolver)回給DispatcherServlet;
增強(qiáng)Model和View,來軟件渲染視圖;
8.將渲染結(jié)果返回給客戶端。