SpringMVC——MVC

1、瞭解MVC

  mvc這種設計模式,分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller),不光運用於Web領域,並且也能用於非Web領域;能夠特指一種表現層設計模式,不限於Java語言;Java Web應用中應用的最普遍的設計模式即是MVC模式,目前的主流Web框架大多也是基於MVC設計模式所編寫的。html

  一、JavaWeb開發模式前端

    C/S:客戶端 / 服務器web

    B/S: 瀏覽器 / 服務器(主要採用mvc框架模式)spring

    JavaBean:就是一個普通類(實體bean),包含三樣標準:無參構造、私有屬性、公共的getter和setter方法;數據庫

  二、mvc在Java web中具體應用設計模式

    Model:模型能夠表明着一種企業規範,就是業務流程/狀態的處理以及業務規則的規定,業務模型的設計能夠說是MVC的核心。通常Model層包括業務處理層和數據訪問層。數據訪問層主要是對數據庫的一些操做的封裝。業務處理層應用JavaBean構建,JavaBean主要是用做將從View層獲取的數據和數據庫的數據進行橋接。除卻JavaBean之外,若想構建分佈式應用系統,能夠應用EJB組件進行業務邏輯層的構建。
    View:視圖便是展現給用戶實際進行交互的,像HTML、JSP等。
    Controller:控制器,通常控制請求的處理邏輯,負責請求轉發;具體的能夠理解爲對View層提交的請求爲其設置對應的Servlet進行特定功能的處理,通常是編寫在Model中的業務處理層中的,相對於一箇中介者的做用。瀏覽器

  如圖所示:
服務器

    MVC模式在最熟悉的框架中如:Struts二、spring MVC等等,都是基於MVC模式;架構

    其中總結Model模式,常見的以下:mvc

    <1>Jsp+JavaBean
      須要在jsp頁面中檢查請求的參數是否正確,顯示和業務邏輯操做會耦合度高,之後維護起來比較困難;相對於純jsp頁面去作開發比較,程序的可讀性變高了,大部分代碼寫在JavaBean上,可重複率變高了(JavaBean的設計就是用來重用、封裝,大大減小編寫重複代碼的工做);
    <2>JSP+Servlrt+JavaBean
      基於MVC模式的開發進行的,擁有分層思想:高內聚、低耦合;

 

  三、springmvc與spring的關係?

    springmvc屬於spring框架的後續產品,用在基於MVC的表現層開發,相似於struts2框架;spring參考連接 spring知識點  ;

2、springmvc 的認識

  Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,能夠選擇是使用內置的 Spring Web 框架還能夠是 Struts 這樣的 Web 框架。  

  一、springmvc工做流程

  (1)客戶端經過url發送請求

  (2)核心控制器Dispatcher Servlet接收到請求,經過系統或自定義的映射器配置找到對應的handler,並將url映射的控制器controller返回給核心控制器。

  (3)經過核心控制器找到系統或默認的適配器

  (4)由找到的適配器,調用實現對應接口的處理器,並將結果返回給適配器,結果中包含數據模型和視圖對象,再由適配器返回給核心控制器

  (5)核心控制器將獲取的數據和視圖結合的對象傳遞給視圖解析器,獲取解析獲得的結果,並由視圖解析器響應給核心控制器

  (6)核心控制器將結果返回給客戶端

  二、springmvc與struts2的區別(下面以3種區別爲例)

    <1>springmvc的入口是一個servlet,即前端控制器,例如:*.action
      struts2入口是一個filter過慮器,即前端過濾器,例如:/*
    <2>springmvc是基於方法開發,傳遞參數是經過方法形參,能夠設計爲單例
      struts2是基於類開發,傳遞參數是經過類的屬性,只能設計爲多例
    <3>springmvc經過參數解析器是將request對象內容進行解析成方法形參,將響應數據和頁面封裝成ModelAndView對象,最後又將模型數據經過request對象傳輸到頁面
      struts採用值棧存儲請求和響應的數據,經過OGNL存取數據

  三、springmvc的理解與方法(下面以核心代碼爲例子)

相關文章
相關標籤/搜索