JavaWeb(六)之MVC與三層架構設計

前言html

  這段時間要學習hadoop,可是也但願把本身的web知識複習起來。因此花本身休息的時間把這些web的知識好好的鞏固一下!沒有什麼能夠阻擋我前進的腳步。前端

  首先咱們先了解一下:  java

    C/S:客戶端 / 服務器 (胖客戶端)
    B/S:瀏覽器 / 服務器 (瘦客戶端)
    JavaBean:就是一個普通類(實體bean),包含三樣標準:一個無參構造、私有屬性、公共的getter和setter方法。web

1、javaWeb開發模式之Model1

  其實在前面中javaweb知識中咱們主要講了兩大類:一是servlet,二是jsp。
  Servlet就是爲了解決靜態頁面的問題,可以實現動態的頁面,使維護,開發更加的方便,可是也有缺點,在Servlet嵌入HTML代碼實在是太麻煩了,每次都要out.println();輸出。
  因此就有了Jsp,JSP中的內容就是html,爲的就是方便寫html,寫頁面,本質上JSP也是一個servlet,因此在它中也會不可避免的要寫一些java代碼,也就是腳本,爲了避免讓其那麼混亂,就增長了標籤,EL表達式來儘可能代替腳本
  可是在寫一些項目時,仍是會很麻煩,緣由是業務邏輯代碼,與數據庫交互的代碼,HTML代碼這些類別,風格,做用徹底不一樣的都混雜在了一塊兒,形成的結果是代碼的維護性,可讀性以及擴張性都很是差,好比要改一個需求,
  那麼必需要把所有代碼都看完,理解到,否則你可能會由於修改了一處代碼,致使別的地方多處錯誤,這種設計模式也叫作 模式一(Model 1)。spring

    

2、javaWeb開發模式之Model2(MVC)

2.一、概述

  爲了改進上面所說的缺點,也就是將業務邏輯代碼放一塊兒,顯示頁面的HTML代碼放一塊兒,與數據庫交互的代碼放一塊兒,這樣開發思路更加清晰,維護起來也更加方便,這種就叫作MVC模式。數據庫

  M:Model 模型,表明着業務邏輯代碼與數據庫代碼,V:View 對數據的展現代碼,好比JSP頁面,就是專門用來展現數據,美化頁面的 。設計模式

  C:Controller 控制,Servlet來充當這一角色,鏈接着View和Model,從View中得到指令,在從model中經過業務邏輯代碼獲取須要的數據,而後在經過Servlet去交給View層去顯示。也就是MVC三層結構的意義!瀏覽器

  用圖分析就是:服務器

        

  咱們打開瀏覽器,輸入網址,就是到服務器中請求頁面(JSP也多是別的),而後顯示到瀏覽器上,而後經過點擊JSP頁面上的內容,提交請求,到服務器中,也就到了Control(Servlet)這一塊前端工程師

  Servlet經過分析請求,知道用戶須要什麼,須要數據,那麼就經過Model,從數據庫拿到數據,在將數據顯示在JSP中,在將JSP發送回瀏覽器,顯示在用戶看,

  因此咱們常常說,JSP就是View層,給用戶看的,Servlet做爲控制流程,而編寫操做數據庫代碼,業務邏輯代碼就屬於Model。這就是MVC的應用。

2.二、分析 

  JSP + Servlet + JavaBean
  MVC:開發模式
  M: Model模型 JavaBean|四種做用域
  V:view視圖 JSP
  C:Controller控制器 Servlet

   

3、經典三層架構

  表示層(web層)、業務邏輯層(service層)、數據訪問層(dao層),用一張圖來描述這其中的關係:

    

  由於如今只學習Servlet,Jsp,因此在表示層中就放的是Servlet和Jsp了,若是學了3大框架,Struts、Hibernate、Spring、會發現Struts是處理表示層的一個框架,而Hibernate是在dao層的一個框架,spring就是service層了。

    

  分層思想:強內聚、弱耦合

  實際項目中的包命名結構,其也是按照三層架構思想來進行編寫代碼:

    

  分析:(xxx:表明公司名稱、yyy:表明項目名稱)

      com.xxx.yyy.dao      dao層接口
      com.xxx.yyy.dao.impl    dao層實現
      com.xxx.yyy.service    service層接口
      com.xxx.yyy.service.impl  service層實現      
      com.xxx.yyy.web      web層
      com.xxx.yyy.util      工具包
      com.xxx.yyy.domain    javabean

4、總結

經典三層架構和MVC的關係:

  他們是兩個毫無相關的東西,經典三層架構是一種分層思想,將開發模式分爲了這三,每一個人根據本身的專長,開發不一樣的模塊,好比,前端工程師,那麼就專研表示層便可,想辦法如何讓頁面變的更好看,

  如何吸引別人,而有些專門作數據庫工做的人,就能夠只關注操做數據庫的活,如何讓查詢更加快速有效,而沒必要關注數據該如何顯示這種問題。這就是分層帶來的巨大好處。

  而MVC是一種設計模式,目的是讓HTML代碼和業務邏輯代碼分開,讓代碼看起來更加清晰,便於開發。  

   若是說他們有關係的話:只能說他們有共同的點,分層,解耦。

相關文章
相關標籤/搜索