1. 程式人生 > >SpringMVC框架及基本工作流程詳解

SpringMVC框架及基本工作流程詳解

req isp 需要 用戶 數據呈現 工作流 esp servle 組件映射

傳統原生的JSP+Servlet在開發上過程上雖然簡單明了,JSP頁面傳遞數據到Servlet,Servlet整理數據(邏輯開發)或者從數據庫提取數據接著再轉發到JSP頁面上,但是其似乎只能止步於此,我們都知道我們request和response都依賴於url,當我們想要通過針對圍繞url進行編程的話單純的JSP+Servlet在實現上只有過濾器Filter在抵達相對應的Servlet之前起作用,但是如果我們想要在Servlet轉發或者重定向之後再進行一些工作呢?一個url對應一個Servlet,項目需求的url稍微復雜了一些,其相對應的Servlet的數量將十分龐大,諸多問題,在這裏便不多講了,而這些問題,基本都在SpringMVC中得以解決。

  SpringMVC圍繞著Servlet進行開發Web,代碼的實現上同時也依賴Spring開發,不然也不會叫做SpringMVC,本文著重強調的重點在於SpringMVC的工作流程,並不設計具體代碼開發,所以並不要求掌握Spring的知識

  1.從第一點開始,請求的開始當然來源的用戶訪問的url,之後SpringMVC的工作正式開始,就好比一個人進城,必須要先經過城門才能進去,請求也是一樣,他必須先經過一個叫做Dispatcher Servlet的前端控制器,

  2.之後,你總要有工作地點吧(請求需要工作),可是不認路啊(請求需要在哪裏被分析),所以你需要先去找到地圖,然後在地圖上找到地點,在SpringMVC中,從Dispatcher Servlet開始率先找到Handler Mapper,該組件映射找到工作點的老板(HandlerAdapter)。

  3.到這裏我們僅僅是知道怎麽找到工作點而已,而且路徑是從城門(Dispatcher Servlet前端控制器)開始的,我們按照地圖(HandlerMapper組件裏面的信息)的指引找到了指使我們工作的HandlerAdapter。

  4.老板指使我們工作,此時我們化身為員工(Handler,也就是請求所對應的事件),我們工作的內容就控制層(也就是MVC中的C)下請求url所對應的方法,工作完成之後,我們需要提交工作數據呈現給老板看(返回ModelAndView對象給HandlerAdapter)

  5.之後老板把你的工作數據貼到城門上(將ModelAndView對象返回給DispatcherServlet),再經歷一番修飾後呈現給來往的商人(用戶)

  一個從大局上觀看的基本流程大概就是如此,然而SpringMVC在具體的實現上遠比這復雜許多,基本上在普通項目開發下我們在配置完SpringMVC要求配置環境後,所需要開發的地方就只有視圖層和控制層,控制層裏面的代碼一般是有邏輯層和數據層的實現。

  下面是我用思維導圖制作的流程,比文字看起來直觀一些。

  技術分享圖片

SpringMVC框架及基本工作流程詳解