亚洲三级在线,国产黄色网址在线观看,www.天天操,污视频在线观看网站

      <menuitem id="xujay"><address id="xujay"></address></menuitem><bdo id="xujay"></bdo>
      <track id="xujay"></track>

      位置: IT常識 - 正文

      SpringMVC執(zhí)行流程(springmvc執(zhí)行流程簡單)

      編輯:rootadmin
      SpringMVC執(zhí)行流程

      推薦整理分享SpringMVC執(zhí)行流程(springmvc執(zhí)行流程簡單),希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。

      文章相關(guān)熱門搜索詞:springmvc執(zhí)行流程及原理,springmvc執(zhí)行流程及代碼實現(xiàn),springmvc執(zhí)行流程+攔截器,springmvc執(zhí)行流程圖,springmvc執(zhí)行流程簡單,springmvc執(zhí)行流程及原理,springmvc執(zhí)行流程及原理,springmvc執(zhí)行流程及原理,內(nèi)容如對您有幫助,希望把文章鏈接給更多的朋友!

      SpringMVC常用組件

      DispatcherServlet:前端控制器,不需要工程師開發(fā),由框架提供 作用:統(tǒng)一處理請求和響應(yīng),整個流程控制的中心,由它調(diào)用其它組件處理用戶的請求HandlerMapping:處理器映射器,不需要工程師開發(fā),由框架提供

      作用:根據(jù)請求的url、method等信息查找Handler,即控制器方法Handler:處理器,需要工程師開發(fā) 作用:在DispatcherServlet的控制下Handler對具體的用戶請求進(jìn)行處理HandlerAdapter:處理器適配器,不需要工程師開發(fā),由框架提供 作用:通過HandlerAdapter對處理器(控制器方法)進(jìn)行執(zhí)行ViewResolver:視圖解析器,不需要工程師開發(fā),由框架提供 作用:進(jìn)行視圖解析,得到相應(yīng)的視圖,例如:ThymeleafView、InternalResourceView、RedirectViewView:視圖 作用:將模型數(shù)據(jù)通過頁面展示給用戶

      DispatcherServlet初始化過程?

      ?DispatcherServlet 本質(zhì)上是一個 Servlet,所以天然的遵循 Servlet 的生命周期。所以宏觀上是 Servlet生命周期來進(jìn)行調(diào)度。

      SpringMVC執(zhí)行流程(springmvc執(zhí)行流程簡單)

      ?初始化WebApplicationContext

      所在類:org.springframework.web.servlet.FrameworkServle

      protected WebApplicationContext initWebApplicationContext() {WebApplicationContext rootContext =WebApplicationContextUtils.getWebApplicationContext(getServletContext());WebApplicationContext wac = null;if (this.webApplicationContext != null) {// A context instance was injected at construction time -> use itwac = this.webApplicationContext;if (wac instanceof ConfigurableWebApplicationContext) {ConfigurableWebApplicationContext cwac =(ConfigurableWebApplicationContext) wac;if (!cwac.isActive()) {// The context has not yet been refreshed -> provide servicessuch as// setting the parent context, setting the application contextid, etcif (cwac.getParent() == null) {// The context instance was injected without an explicitparent -> set// the root application context (if any; may be null) as theparentcwac.setParent(rootContext);}configureAndRefreshWebApplicationContext(cwac);}}}if (wac == null) {// No context instance was injected at construction time -> see if one// has been registered in the servlet context. If one exists, it isassumed// that the parent context (if any) has already been set and that the// user has performed any initialization such as setting the context idwac = findWebApplicationContext();}if (wac == null) {// No context instance is defined for this servlet -> create a local one// 創(chuàng)建WebApplicationContextwac = createWebApplicationContext(rootContext);}if (!this.refreshEventReceived) {// Either the context is not a ConfigurableApplicationContext withrefresh// support or the context injected at construction time had already been// refreshed -> trigger initial onRefresh manually here.synchronized (this.onRefreshMonitor) {// 刷新WebApplicationContextonRefresh(wac);}}if (this.publishContext) {// Publish the context as a servlet context attribute.// 將IOC容器在應(yīng)用域共享String attrName = getServletContextAttributeName();getServletContext().setAttribute(attrName, wac);}return wac;}

      ?②創(chuàng)建WebApplicationContext

      所在類:org.springframework.web.servlet.FrameworkServlet?

      protected WebApplicationContext createWebApplicationContext(@NullableApplicationContext parent) {Class<?> contextClass = getContextClass();if (!ConfigurableWebApplicationContext.class.isAssignableFrom(contextClass)){throw new ApplicationContextException("Fatal initialization error in servlet with name '" +getServletName() +"': custom WebApplicationContext class [" + contextClass.getName() +"] is not of type ConfigurableWebApplicationContext");}// 通過反射創(chuàng)建 IOC 容器對象ConfigurableWebApplicationContext wac =(ConfigurableWebApplicationContext)BeanUtils.instantiateClass(contextClass);wac.setEnvironment(getEnvironment());// 設(shè)置父容器wac.setParent(parent);String configLocation = getContextConfigLocation();if (configLocation != null) {wac.setConfigLocation(configLocation);}configureAndRefreshWebApplicationContext(wac);return wac;}

      ③DispatcherServlet初始化策略FrameworkServlet創(chuàng)建WebApplicationContext后,刷新容器,調(diào)用onRefresh(wac),此方法在DispatcherServlet中進(jìn)行了重寫,調(diào)用了initStrategies(context)方法,初始化策略,即初始化 DispatcherServlet的各個組件 所在類:org.springframework.web.servlet.DispatcherServlet

      protected void initStrategies(ApplicationContext context) {initMultipartResolver(context);initLocaleResolver(context);initThemeResolver(context);initHandlerMappings(context);initHandlerAdapters(context);initHandlerExceptionResolvers(context);initRequestToViewNameTranslator(context);initViewResolvers(context);initFlashMapManager(context);}SpringMVC的執(zhí)行流程?

      用戶向服務(wù)器發(fā)送請求,請求被SpringMVC 前端控制器 DispatcherServlet捕獲。 2) DispatcherServlet對請求URL進(jìn)行解析,得到請求資源標(biāo)識符(URI),判斷請求URI對應(yīng)的映射:a) 不存在 i. 再判斷是否配置了mvc:default-servlet-handler ii. 如果沒配置,則控制臺報映射查找不到,客戶端展示404錯誤

      iii. 如果有配置,則訪問目標(biāo)資源(一般為靜態(tài)資源,如:JS,CSS,HTML),找不到客戶端也會展示404錯誤?

      b) 存在則執(zhí)行下面的流程 3) 根據(jù)該URI,調(diào)用HandlerMapping獲得該Handler配置的所有相關(guān)的對象(包括Handler對象以及Handler對象對應(yīng)的攔截器),最后以HandlerExecutionChain執(zhí)行鏈對象的形式返回。 4) DispatcherServlet 根據(jù)獲得的Handler,選擇一個合適的HandlerAdapter。 5) 如果成功獲得HandlerAdapter,此時將開始執(zhí)行攔截器的preHandler(...)方法【正向】6) 提取Request中的模型數(shù)據(jù),填充Handler入?yún)?#xff0c;開始執(zhí)行Handler(Controller)方法,處理請求。在填充Handler的入?yún)⑦^程中,根據(jù)你的配置,Spring將幫你做一些額外的工作: a) HttpMessageConveter: 將請求消息(如Json、xml等數(shù)據(jù))轉(zhuǎn)換成一個對象,將對象轉(zhuǎn)換為指定的響應(yīng)信息b) 數(shù)據(jù)轉(zhuǎn)換:對請求消息進(jìn)行數(shù)據(jù)轉(zhuǎn)換。如String轉(zhuǎn)換成Integer、Double等 c) 數(shù)據(jù)格式化:對請求消息進(jìn)行數(shù)據(jù)格式化。 如將字符串轉(zhuǎn)換成格式化數(shù)字或格式化日期等 d) 數(shù)據(jù)驗證: 驗證數(shù)據(jù)的有效性(長度、格式等),驗證結(jié)果存儲到BindingResult或Error中 7) Handler執(zhí)行完成后,向DispatcherServlet 返回一個ModelAndView對象。8) 此時將開始執(zhí)行攔截器的postHandle(...)方法【逆向】。 9) 根據(jù)返回的ModelAndView(此時會判斷是否存在異常:如果存在異常,則執(zhí)行 HandlerExceptionResolver進(jìn)行異常處理)選擇一個適合的ViewResolver進(jìn)行視圖解析,根據(jù)Model 和View,來渲染視圖。 10) 渲染視圖完畢執(zhí)行攔截器的afterCompletion(...)方法【逆向】。 11) 將渲染結(jié)果返回給客戶端。?

      本文鏈接地址:http://jsrtzm.cn/zhishi/295962.html 轉(zhuǎn)載請保留說明!

      上一篇:Vue項目保持用戶登錄狀態(tài)(localStorage + vuex 刷新頁面后狀態(tài)依然保持)(vuex存儲用戶信息)

      下一篇:Vue(前端框架)(vue前端框架搭建)

    1. 小米10s多少w快充(小米10s最大支持多少瓦充電)

      小米10s多少w快充(小米10s最大支持多少瓦充電)

    2. 支付寶我的頁面怎么管理(支付寶我的頁面怎么設(shè)置密碼)

      支付寶我的頁面怎么管理(支付寶我的頁面怎么設(shè)置密碼)

    3. 微信名下幾個賬號怎么查(微信名下幾個賬號怎么回事)

      微信名下幾個賬號怎么查(微信名下幾個賬號怎么回事)

    4. 沒有自拍也沒有視頻聊天但電腦攝像頭的燈總是亮著這是什么原因(沒有自拍也沒有拍攝視頻但是攝像頭一直亮著)

      沒有自拍也沒有視頻聊天但電腦攝像頭的燈總是亮著這是什么原因(沒有自拍也沒有拍攝視頻但是攝像頭一直亮著)

    5. 華為怎么給app改名字(華為怎么改軟件)

      華為怎么給app改名字(華為怎么改軟件)

    6. 微信原圖超過25m怎么發(fā)送微信(微信原圖超過25m怎么修改)

      微信原圖超過25m怎么發(fā)送微信(微信原圖超過25m怎么修改)

    7. 微軟go和pro區(qū)別(微軟go和pro3)

      微軟go和pro區(qū)別(微軟go和pro3)

    8. 華為stk_al00是啥型號(華為的stk-al00)

      華為stk_al00是啥型號(華為的stk-al00)

    9. 移動光貓注冊燈不亮(移動光貓注冊燈一直閃)

      移動光貓注冊燈不亮(移動光貓注冊燈一直閃)

    10. 騰訊云服務(wù)器可以干嘛(騰訊云服務(wù)器可以轉(zhuǎn)移賬號嗎)

      騰訊云服務(wù)器可以干嘛(騰訊云服務(wù)器可以轉(zhuǎn)移賬號嗎)

    11. 微信顯示對方賬號存在風(fēng)險是什么意思(微信顯示對方賬號已注銷是什么意思)

      微信顯示對方賬號存在風(fēng)險是什么意思(微信顯示對方賬號已注銷是什么意思)

    12. 微信如何跳過驗證(微信如何跳過驗證手機(jī)號)

      微信如何跳過驗證(微信如何跳過驗證手機(jī)號)

    13. 路由器電源拔了一下就連不上網(wǎng)了怎么辦(路由器電源拔了一下突然用不了了)

      路由器電源拔了一下就連不上網(wǎng)了怎么辦(路由器電源拔了一下突然用不了了)

    14. arttloox是什么型號

      arttloox是什么型號

    15. 堅果pro3是什么處理器(堅果pro3是什么指紋傳感器)

      堅果pro3是什么處理器(堅果pro3是什么指紋傳感器)

    16. 怎么增加qq預(yù)設(shè)賬號(qq怎么預(yù)設(shè)時間發(fā)送消息)

      怎么增加qq預(yù)設(shè)賬號(qq怎么預(yù)設(shè)時間發(fā)送消息)

    17. aiopump能接風(fēng)扇么(aiopump可以接機(jī)箱風(fēng)扇嗎)

      aiopump能接風(fēng)扇么(aiopump可以接機(jī)箱風(fēng)扇嗎)

    18. 華為手機(jī)掃描文件功能在哪里(華為手機(jī)掃描文件在哪里找到)

      華為手機(jī)掃描文件功能在哪里(華為手機(jī)掃描文件在哪里找到)

    19. 微信收款限制原因(微信收款限制原因交易所在國家)

      微信收款限制原因(微信收款限制原因交易所在國家)

    20. 在win7電腦中,開機(jī)沒有動畫該怎么辦?(在windows7是一種)

      在win7電腦中,開機(jī)沒有動畫該怎么辦?(在windows7是一種)

    21. 如果在筆記本鍵盤上按字母出現(xiàn)數(shù)字是怎么回事?(筆記本怎么按出鍵盤)

      如果在筆記本鍵盤上按字母出現(xiàn)數(shù)字是怎么回事?(筆記本怎么按出鍵盤)

    22. mysql自連接查詢是什么(mysql自連接查詢各個部門經(jīng)理的工資)

      mysql自連接查詢是什么(mysql自連接查詢各個部門經(jīng)理的工資)

    23. 個體戶定期定額征收標(biāo)準(zhǔn)
    24. 財務(wù)人員辦理會計業(yè)務(wù)
    25. 資產(chǎn)負(fù)債表庫存為負(fù)數(shù)怎么調(diào)整
    26. 原材料加工成產(chǎn)品的會計分錄
    27. 罰款可以直接在公安局繳納嗎
    28. 子公司的所得稅是單獨繳納嗎
    29. 資產(chǎn)負(fù)債表總賬科目有哪些
    30. 分稅制的內(nèi)容有哪些?
    31. 房地產(chǎn)結(jié)轉(zhuǎn)收入是什么意思
    32. 軟件研發(fā)購買的測試用的設(shè)備應(yīng)該怎么做賬?
    33. 股東變更沒有公章和營業(yè)執(zhí)照怎么辦
    34. 個人與個人之間轉(zhuǎn)賬有限額嗎
    35. 職工死去還有工資嗎
    36. 建筑業(yè)企業(yè)包括哪些企業(yè)
    37. 公司獎勵員工旅游怎么做賬
    38. 公司向股東借款需要股東會決議嗎
    39. 推廣服務(wù)費收入如何核算成本
    40. 支付寶國際駕照有效期是多久
    41. linux系統(tǒng)用法
    42. 購貨方銷售退回怎么做賬
    43. 服務(wù)成本怎么處理
    44. PHP:iterator_apply()的用法_spl函數(shù)
    45. mac重裝macos
    46. 資產(chǎn)和負(fù)債的計稅基礎(chǔ)金額的確認(rèn)思維導(dǎo)圖
    47. 貼現(xiàn)短期無息應(yīng)付票據(jù)
    48. 公司年終獎怎么繳稅
    49. 外購商品轉(zhuǎn)為自用洧費稅計算
    50. ecshop有哪些bug
    51. php取二維數(shù)組的一組內(nèi)容
    52. 公司轉(zhuǎn)讓賬務(wù)處理方法
    53. mkisofs命令
    54. 計提票面利息
    55. c語言內(nèi)聯(lián)函數(shù) undefined redernce
    56. 公司從銀行提取現(xiàn)金4000元備作零星開支
    57. 產(chǎn)權(quán)轉(zhuǎn)移數(shù)據(jù)印花
    58. 收到境外服務(wù)費會計分錄
    59. 公賬取現(xiàn)用途寫什么
    60. 納稅申報怎么做
    61. 零余額賬戶用款額度是什么意思
    62. 收取物業(yè)費不開發(fā)票
    63. 原材料用于在建工程要進(jìn)項轉(zhuǎn)出嗎
    64. 公司賬戶的錢如何轉(zhuǎn)出
    65. 管理費用的核算方法
    66. 企業(yè)補(bǔ)提以前年度折舊政策依據(jù)怎么寫
    67. 工業(yè)企業(yè)中制造費用包括哪些內(nèi)容
    68. 修改注冊表解決畫面撕裂
    69. 怎么修改注冊表的權(quán)限
    70. 不用光盤不用u盤怎么安裝系統(tǒng)
    71. win7系統(tǒng)刪除文件夾怎么恢復(fù)
    72. windows7創(chuàng)建新桌面
    73. windowsxp開機(jī)加載頁面不動
    74. shwicon.exe - shwicon是什么進(jìn)程 有什么用
    75. 電腦windows8怎么樣
    76. windows mobile
    77. 訂書針的原理
    78. windows8c盤滿了怎么清理
    79. win10沒空間
    80. win8.1應(yīng)用商店無法連接網(wǎng)絡(luò)
    81. win10系統(tǒng)應(yīng)用更新
    82. jquery的實現(xiàn)原理
    83. android中常用的adapter不包括
    84. perl 時間轉(zhuǎn)換
    85. 關(guān)于ie瀏覽器下面說法正確的是
    86. sell腳本
    87. vue devtools功能
    88. 數(shù)據(jù)類型 python
    89. js設(shè)計模型
    90. android的圖片文件保存在工程的哪個文件夾
    91. unity toggle切換狀態(tài)
    92. activity的自定義流程
    93. 手把手教你打造班級主題環(huán)境 培訓(xùn)后心得
    94. python 解析算法
    95. 浙江省增值稅勾選平臺
    96. 天然氣入戶安裝收費標(biāo)準(zhǔn)2023
    97. 內(nèi)蒙古網(wǎng)上稅務(wù)登記流程
    98. 四川農(nóng)村信用社電話
    99. 現(xiàn)在哪個保險公司車險好
    100. 主題黨日活動標(biāo)題副標(biāo)題格式
    101. 鄉(xiāng)鎮(zhèn)經(jīng)管站是如何工作
    102. 出售固定資產(chǎn)稅收怎么算
    103. 免責(zé)聲明:網(wǎng)站部分圖片文字素材來源于網(wǎng)絡(luò),如有侵權(quán),請及時告知,我們會第一時間刪除,謝謝! 郵箱:opceo@qq.com

      鄂ICP備2023003026號

      網(wǎng)站地圖: 企業(yè)信息 工商信息 財稅知識 網(wǎng)絡(luò)常識 編程技術(shù)

      友情鏈接: 武漢網(wǎng)站建設(shè)