日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC原理

發布時間:2023/12/31 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring MVC的功能組件

Spring通過一系列組件實現功能,這些組件包括DispatcherServlet(前端控制器)、HandlerMapping(處理器映射器)Handler(處理器)、HandlAdapter(處理器適配器)、ViewResolver(視圖解析器)等。

  • DispatcherServlet(前端控制器)
    前端控制器負責攔截客戶端請求并分發給其他組件,它是整個流程控制的中心,負責調度其他組件的執行,降低各組件之間的耦合,提升整體效率。前端控制器由框架提供,在程序運行過程中自動實現功能。
  • HandlerMapping(處理器映射器)
    處理器映射器負責根據客戶端請求的URL尋找處理器,Spring MVC中提供了配置文件、注解等映射方式,這些映射方式將由相應的處理器映射器負責處理。處理器映射器由框架提供,在程序運行過程中自動實現功能。
  • Handler(處理器)
    處理器負責對客戶端的請求進行處理,由于處理請求涉及到具體的業務邏輯,因此,開發者需要在處理器中編寫處理業務邏輯的代碼。
  • HandlerAdapter(處理器適配器)
    處理器適配器負責根據特定的規則對處理器進行執行,它可以執行多種類型的處理器,是設計模式中適配器模式的具體應用。處理器適配器由框架提供,在程序運行過程中自動實現功能。
  • ViewResolver(視圖解析器)
    視圖解析器負責視圖解析,它可以將處理結果生成View(視圖)并展示給用戶。視圖解析器由框架提供,在程序運行過程中自動實現功能,但是View需要由開發者根據具體需求編寫。
  • View:視圖
    springmvc 框架提供了很多的 View 視圖類型的支持,包括:jstlView、freemarkerView、pdfView 等。 一般情況下需要通過頁面標簽或頁面模版技術將模型數據通過頁面展示給用戶,需要由程序員根據業務需求開發具體的頁面。
  • 說明:在 springmvc 的各個組件中,處理器映射器、處理器適配器、視圖解析器稱為 springmvc 的三大組件。 需要用戶開發的組件有 handler、 view

    Spring MVC的功能流程

    • Spring MVC的工作流程主要圍繞DispatcherServlet(前端控制器)展開,前端控制器負責攔截客戶端發送的請求并將它分發給對應的處理器處理。因此,前端控制器是Spring MVC整個流程控制的中心。
    • Spring MVC的工作流程,如圖所示。
    • 圖中展示了Spring MVC從接收請求到響應的工作流程。在運行過程中,Spring MVC框架的眾多組件協同工作,各司其職,共同支撐了Spring MVC框架的功能。通常情況下,Spring MVC在處理客戶端請求時要完成以下步驟。
  • 客戶端發出一個HTTP請求,Web應用服務器接收這個請求,如果Web應用的配置文件中指定有DispatcherServlet的映射路徑,那么服務器將該請求交給DispatchserServlet處理。
  • DispatchserServlet接收到請求后,將根據包括URL、方法、報文頭和參數在內的請求信息以及HandlerMapping的配置解析出目標Handler。
  • 在解析出目標Handler后,DispatchserServlet將通過相應的HandlerAdapter來調用Handler并完成業務邏輯的處理。
  • 在成業務邏輯處理后,代表處理結果的ModelAndView會被返回到DispatchserServlet,ModelAndView中包含邏輯視圖名和模型數據信息。
  • DispatcherServlet通過ViewResolver完成邏輯視圖名到真實View對象的解析。
  • 獲得真實的View對象后,DispatcherServlet將模型數據傳給View對象并通過View對象對模型數據進行視圖渲染。
  • DispatcherServlet將最終的View對象響應給客戶端并展示給用戶。
    • 以上7個步驟是Spring MVC在處理客戶端請求時的基本流程,這些步驟中的大部分是Spring MVC自動完成的。由于Handler需要處理具體業務邏輯,View需要向用戶展示頁面,因此,開發者只需編寫與Handler和View相關的內容。

    中心控制器

    • Spring的web框架圍繞DispatcherServlet設計。 DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解的controller聲明方式。

    • Spring MVC框架像許多其他MVC框架一樣, 以請求為驅動 , 圍繞一個中心Servlet分派請求及提供其他功能,DispatcherServlet是一個實際的Servlet (它繼承自HttpServlet 基類)。

    SpringMVC執行原理

    當發起請求時被前置的控制器攔截到請求,根據請求參數生成代理請求,找到請求對應的實際控制器,控制器處理請求,創建數據模型,訪問數據庫,將模型響應給中心控制器,控制器使用模型與視圖渲染視圖結果,將結果返回給中心控制器,再將結果返回給請求者。

    圖為SpringMVC的一個較完整的流程圖,實線表示SpringMVC框架提供的技術,不需要開發者實現,虛線表示需要開發者實現。
    簡要分析執行流程

  • DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心。用戶發出請求,DispatcherServlet接收請求并攔截請求。
    我們假設請求的url為 : http://localhost:8080/SpringMVC/hello
    如上url拆分成三部分:
    http://localhost:8080 服務器域名
    SpringMVC 部署在服務器上的web站點
    hello 表示控制器
    通過分析,如上url表示為:請求位于服務器localhost:8080上的SpringMVC站點的hello控制器。
  • HandlerMapping為處理器映射。DispatcherServlet調用HandlerMapping,HandlerMapping根據請求url查找Handler。
  • HandlerExecution表示具體的Handler,其主要作用是根據url查找控制器,如上url被查找控制器為:hello。
  • HandlerExecution將解析后的信息傳遞給DispatcherServlet,如解析控制器映射等。
  • HandlerAdapter表示處理器適配器,其按照特定的規則去執行Handler。
  • Handler讓具體的Controller執行。
  • Controller 將具體的執行信息返回給HandlerAdapter,如ModelAndView。
  • HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet。
  • DispatcherServlet調用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名。
  • 視圖解析器將解析的邏輯視圖名傳給DispatcherServlet。
  • DispatcherServlet根據視圖解析器解析的視圖結果,調用具體的視圖。
  • 最終視圖呈現給用戶。

  • 1.客戶端請求提交到DispatcherServlet;
    2.由DispatcherServlet控制器尋找一個或多個HandlerMapping,找到處理請求的Controller;
    3.DispatcherServlet將請求提交到Controller;
    4.Controller調用業務邏輯處理后,返回ModelAndView;
    5.DispatcherServlet尋找一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖;
    6.視圖負責將結果顯示到客戶端。


    1、 用戶發送請求至前端控制器DispatcherServlet。

    2、 DispatcherServlet收到請求調用HandlerMapping處理器映射器。

    3、 處理器映射器找到具體的處理器(可以根據xml配置、注解進行查找),生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。

    4、 DispatcherServlet調用HandlerAdapter處理器適配器。

    5、 HandlerAdapter經過適配調用具體的處理器(Controller,也叫后端控制器)。

    6、 Controller執行完成返回ModelAndView。

    7、 HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet。

    8、 DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。

    9、 ViewReslover解析后返回具體View。

    10、DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。

    11、 DispatcherServlet響應用戶。

    參考鏈接

    總結

    以上是生活随笔為你收集整理的SpringMVC原理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。