(1.)數據訪問接口:DAO層 (2.)處理業務邏輯層:Service層 (3.)數據實體:POJO (4.)負責前段請求接受並處理:Service (5.)負責前端頁面展現:JSP前端
這種構架模式就是MVC設計模式,它是軟件工程的一種軟件架構模式。它強制性的是軟件系統的輸入,處理和輸出的分開,把軟件系統分三個基本部分:模型(Model),視圖(View)控制器(Controller) 解析: 視圖(View):負責格式化數據並把它們呈現給客戶 控制器(Controller):負責接收並轉發請求,作出響應返回給客戶 模型(Model):模型對象擁有最多的處理任務,是應用程序的主體部分,負責處理和實現數據web
JSP MODEL1:當業務流程較爲簡單的時候,能夠把控制器的功能交給視圖來實現,這種模式統稱爲 JSP MODEL1 JSP MODEL2:至關於JSP MODEL1 當業務流程複雜的時候,即須要把業務流程交給控制器來實現,JSP專一視圖的展示便可 。 MVC處理過程 (1.)首先視圖是提供系統與用戶交互界面,併發送用戶給控制器。 (2.)控制器接收用戶請求,並決定改調用哪一個模型來處理 (3.)模型根據用戶請求進行相應的業務邏輯處理,並返回處理結果 (4.)控制器根據返回處理結果,調用相應的視圖格式化模型返回的數據,並經過視圖呈現給客戶。spring
MVC優缺點: 優勢: (1.)多視圖共享一個模型,大大提升代碼的可用性 (2.)MVC三個模塊相互獨立,鬆耦合構架 (3.)控制器提升應用程序和靈活性和可配性 (4.)有利益軟件工程化管理 缺點: (1.)原理複雜 (2.)增長了系統結構和實現的複雜性 (3).視圖對模型數據的低效訪問編程
1:Spring MVC 環境搭建 (1.)引入jar文件json
(2.)在web.xml中配置Servlet設計模式
(3.)建立SpringMVC配置文件(springmvc-servlet.xml)(處理請求的控制器)服務器
(4).建立Controller數據結構
(5.)建立view架構
(6.)部署運行 (7.)更改HandlerMapping(處理器映射)併發
<property name=」suffix」value=」.jsp」/> </bean> </beans>
(1.)首先用戶發送請求到前端控制器(dispatcherServlet)前端控制器根據請求信息,來決定選擇哪一個控制頁面(Controller)進行處理,並把請求委託給他,即service控制器的控制邏輯部分D (2.)頁面控制器接收到請求後,進行業務處理,處理完成返回一個Modelandview(模型數據名和邏輯視圖名) (3.)前端控制器收回控制器,而後根據邏輯視圖名,選擇相應的正在視圖名,並把模型數據傳入以便將視圖渲染展現 (4.)前端控制器再次收回控制器,將相應結果返回給客戶,至此整個流程結束
(1.)客戶端發出HTTP請求,web應用服務器接收此請求,若匹配DispatcherService的請求映射路徑(在web.xml中指定)則web容器將根據請求交給DispatherService處理(dkz) (2.)DispatherService接收到該請求後將根據請求的信息(包括URL,請求參數,http方法等及HandlerMapping配置(在<serviceName>-servlet.xml中配置),找處處理請求的方法K (3.)當DispatherService根據HandlerMapping找到相應當前請求的Handler以後,經過HandlerAdater對handler進行封裝,在以統一的適配器接口調用Handler.HandlerAdapter,能夠理解爲具體使用Handler來幹活的人。三個方法
Supports(Object handler)方法,判斷是否可使用某個Handler Handle方法:具體使用Handler幹活 getLastModified方法,獲取資源的Last-Modified
(4.)在請求信息達到真正調用Handler處理方法以前的這段時間內,SpringMvc還完成了不少工做,他會將請求信息以必定的方式轉換並綁定到請求方法的入參中,對於入參的對象會進行數據轉換,格式化及數據校檢等,這些都作完後,最後才真正的調用Handler處理方法進行相應的數據邏輯處理。 (5.)處理器完成業務處理以後將返回一個ModelAndView對象給DispatcherServlet,ModelAndView對象包含了邏輯視圖名和模型數據信息。 (6.)ModelAndView對象中包含的是「邏輯視圖名」,而非真正的視圖對象,DispatherService會經過ViewResolver將邏輯視圖名解析爲真正的視圖對象,View固然負責數據展現的視圖能夠爲jsp,xml,pdf,json等多種數據格式, (7.)當獲得最後的視圖對象後View後,DispatherService會使用ModelAndView對象中的模型數據對View進行視圖渲染。 (8.)最終客戶端得到響應消息,根據配置,能夠是普通的HTML頁面,也能夠是一個xml,或者是json格式數據等。Z
1.參數傳遞:最簡單的方法就是將Controller方法中參數直接入參 @RequestMapping映射: (1.)經過請求URL進行映射D (2.)經過請求參數,請求方法進行映射 2.參數傳遞(Controller to View) (1.)ModelAndView經常使用方法 處理器處理的方法返回值若爲ModelAndView,則即包括視圖信息,又包括模型數據信息,有了該對象以後,Spring mvc 就能夠對視圖模型就行數據渲染。 *.添加模型數據
*.設置視圖
2.Model 除了可使用ModelAndView對象來返回模型數據外,咱們還可使用Spring mvc 提供的Model對象來完成模型數據的傳遞。K 3.Map 經過前面對於Model和ModelAndView對象的學習,咱們還能使用Spring MVC 的Model其實就是一個map的數據結構,能夠用map做爲入參處理
4.@ModelAttribute 若但願將入參的數據對象放入數據模型中去,就須要在相應入參前使用此註解,再此咱們只作簡單瞭解。 5.@SessionAttributes 此註解能夠模型中屬性存入httpSession中,以便在多個請求之間共享該屬性,只作簡單瞭解。Z
2.Spring mvc經過視圖解析器來完成視圖解析的工做,把控制器的處理方法返回的邏輯視圖名,解析成一個真正的視圖對象