1. 程式人生 > >Spring MVC基礎簡要

Spring MVC基礎簡要

        1.什麼是SPring MVC

檢視層框架。基於JAva的實現了WEB MVC的設計模式的請求驅動(請求——響應模式)型別的輕量級WEB框架。簡化檢視層開發

      2.spring mvc的主要作用

將Web層和控制層解耦,進行更簡潔的Web層的開發; 與Spring框架整合(如IoC容器、AOP等); 能簡單的進行Web層的單元測試; 支援靈活的URL到頁面控制器的對映; 非常容易與其他檢視技術整合,如Velocity、FreeMarker等等,因為模型資料不放在特定的API裡,而是放在一個Model裡(Map資料結構實現,因此很容易被其他框架使用);
非常靈活的資料驗證、格式化和資料繫結機制,能使用任何物件進行資料繫結,不必實現特定框架的API; 提供一套強大的JSP標籤庫,簡化JSP開發; 支援靈活的本地化、主題等解析; 更加簡單的異常處理; 對靜態資源的支援; 支援Restful風格。

3.Spring mvc架構的流程


 舉個通俗易懂的列子

      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要求配置環境後,所需要開發的地方就只有檢視層和控制層,控制層裡面的程式碼一般是有邏輯層和資料層的實現。

 

  4.新建WEB程式,並且匯入相應的JAR包


4.在WEB.xml中配置檔案

  5.在WEB-INFO目錄下,建立springmvc-config.xml檔案(這裡提醒建立的檔名字一定要springmvc-config.xml

  就是這裡的Springmvc名字可以取成其他的名字,但是後面的格式要正確,這個springmvc即前面講的前端控制的名稱)

    檢視解析器(View Rosoler)"prefix" value="/" 代表檢視的前端,響應的.jsp/即後端,後面我們通過控制器處理完業務後,

返回一個地址,如"hello",返回到前端控制器被拼接成"/hello.jsp/",跳到對應的JSP頁面顯示



6.在SRC目錄下建立controller包,並在該包下面建立helloWordContrller類

 

7.修改springmvc-config.xml檔案,配置bean

                                                                                

                                                                                        (2).基於註解的控制器

1.優點:一個控制器可以處理多個(請求),可以將多個相關聯的功能寫在同一個控制器中,減少控制器的數量,不需要再配置檔案中進行單獨的對映配置。

2,,如何讓Spring找到你的controller


                            3.幾大主要註解(@requestMapping)URL="http://blog.csdn.net/fujiakai/article/details/52468689"

   ),該部落格有