最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中MVC模式與三層架構(gòu)

 更新時間:2023年03月21日 17:02:11   作者:橙?子_  
這篇文章主要讓我們理解MVC模式和三層架構(gòu)的基礎(chǔ)知識,有興趣的同學(xué)可以閱讀,借鑒參考一下

1. 前言

前面我們探討了 JSP 的使用,隨著計算機技術(shù)的不斷更新迭代,JSP 的技術(shù)由于存在很多的缺點,已經(jīng)逐漸退出了歷史的舞臺,所以在學(xué)習(xí)時,我們只需要了解其如何實現(xiàn)的數(shù)據(jù)的增刪改查。不用刨根問底,花費大量的時間,得不償失。

  • 理解 JSP 及其原理
  • 學(xué)會使用 EL 表達式和 JSTL 標簽
  • 理解 MVC 模式和三層架構(gòu)

快速閱讀:一文帶你吃透JSP

學(xué)習(xí) MVC 模式和三層架構(gòu)的知識,可以讓我們在開發(fā)中提高代碼的維護性和擴展性。

2. MVC模式

MVC模式是一種分層開發(fā)的模式,其中:

  • M:Model,業(yè)務(wù)模型,處理業(yè)務(wù)
  • V:View,視圖,用于界面展示
  • C:Controller,控制器,處理請求,調(diào)用模型和視圖

其中,控制器(Servlet)用來接收瀏覽器發(fā)送的請求,控制器調(diào)用模型(JavaBean)來獲取數(shù)據(jù),比如從從數(shù)據(jù)庫查詢數(shù)據(jù),控制器獲取數(shù)據(jù)后在交給視圖(JSP)進行數(shù)據(jù)的展示。

使用 MVC 模式開發(fā)有很多的好處,例如,職責(zé)單一,互不影響,每個角色各司其職。有利于分工協(xié)作和組件重用等。

3. 三層架構(gòu)

三層架構(gòu)的模型將我們的項目分成了三個層面,分別是表現(xiàn)層,業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。其中數(shù)據(jù)訪問層又稱持久層。

  • 數(shù)據(jù)訪問層:對數(shù)據(jù)庫進行增刪改查等基本操作。
  • 業(yè)務(wù)邏輯層:對業(yè)務(wù)邏輯進行封裝,組合數(shù)據(jù)訪問層中的基本功能,形成復(fù)雜的業(yè)務(wù)邏輯功能,例如注冊業(yè)務(wù)功能,我們先調(diào)用數(shù)據(jù)訪問層的 selectByName() 方法判斷該用戶名是否存在,如果不存在再調(diào)用數(shù)據(jù)訪問層的 insert() 方法進行數(shù)據(jù)的添加操作。
  • 表現(xiàn)層:接收請求,封裝數(shù)據(jù),調(diào)用業(yè)務(wù)邏輯層,響應(yīng)數(shù)據(jù)。

在整個流程中,瀏覽器發(fā)送請求,表現(xiàn)層的 Servlet 接收請求并調(diào)用業(yè)務(wù)邏輯層的方法進行業(yè)務(wù)邏輯處理,而業(yè)務(wù)邏輯層方法調(diào)用數(shù)據(jù)訪問層方法進行數(shù)據(jù)的CRUD 操作,依次返回給 Servlet,然后 Servlet 將數(shù)據(jù)交給 JSP 進行展示。

三層架構(gòu)的每一層都有特有的包名名稱,以后我們在學(xué)習(xí)中就要使用更加規(guī)范的命名方式,他們分別是:

  • 表現(xiàn)層:org.chengzi.web 或者 org.chengzi.controller
  • 業(yè)務(wù)邏輯層:org.chengzi.service
  • 數(shù)據(jù)訪問層:org.chengzi.mapper或者org.chengzi.dao

馬上就要學(xué)習(xí)完 JavaWeb 了,后面我們會學(xué)習(xí)更多的框架,Spring,SpringMVC,MyBatis 等等,其實不同的框架是對不同層進行的封裝,如圖:

4. MVC和三層架構(gòu)

我們已經(jīng)說完了 MVC 模式和三層架構(gòu),下面來看看兩者有什么關(guān)系呢?

如圖,上半部分是 MVC 模式,后半部分是三層架構(gòu),其中,MVC 模式中的控制器和視圖就是三層架構(gòu)中的表現(xiàn)層,而 MVC 模式中的模型就是三層架構(gòu)中的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。

5. 總結(jié)

5.1 IDEA 小技巧

解決 Ctrl+Alt+V 快捷鍵 自動補全代碼失敗的問題,如圖:

原因:未添加 main() 方法

解決:在類中添加main() 方法,如果是在Servlet中,則添加toGet() 等方法。

如果將 MVC 理解為一個大的概念,那么三層結(jié)構(gòu)就是對 MVC 模式實現(xiàn)架構(gòu)的思想,根據(jù)標準,我們將不同層的代碼放在不同的包下,每一層里面職責(zé)單一,將來如果表現(xiàn)層的技術(shù)更新迭代,而業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層的代碼則不用發(fā)生變化,大大提高的代碼的可維護性。

以上就是MVC 模式與三層架構(gòu)的深入了解的詳細內(nèi)容,更多關(guān)于剖析MVC架構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringMVC中的SimpleUrlHandlerMapping用法詳解

    SpringMVC中的SimpleUrlHandlerMapping用法詳解

    這篇文章主要介紹了SpringMVC中的SimpleUrlHandlerMapping用法詳解,SimpleUrlHandlerMapping是Spring MVC中適用性最強的Handler Mapping類,允許明確指定URL模式和Handler的映射關(guān)系,有兩種方式聲明SimpleUrlHandlerMapping,需要的朋友可以參考下
    2023-10-10
  • Java線程安全和鎖Synchronized知識點詳解

    Java線程安全和鎖Synchronized知識點詳解

    在本篇文章里小編給大家分享的是關(guān)于Java線程安全和鎖Synchronized相關(guān)知識點,有需要的朋友們可以參考下。
    2019-08-08
  • SpringBoot整合Activiti工作流框架的使用

    SpringBoot整合Activiti工作流框架的使用

    本文主要介紹了SpringBoot整合Activiti工作流框架的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn)

    SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn)

    沖突動態(tài)監(jiān)測算法是一種網(wǎng)絡(luò)通信中的沖突檢測方法,適用于無線網(wǎng)絡(luò)或其他共享傳輸介質(zhì)的環(huán)境,本文主要介紹了SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn),感興趣的可以了解一下
    2023-09-09
  • 利用Java自寫一個生成ID的工具類

    利用Java自寫一個生成ID的工具類

    平時項目中只要涉及表,那么一定能接觸到眾多各式各樣的ID編號。本文將通過Java語言實現(xiàn)手寫一個ID生成工具類,需要的小伙伴可以參考一下
    2022-11-11
  • Mybatis主配置文件的properties標簽詳解

    Mybatis主配置文件的properties標簽詳解

    這篇文章主要介紹了Mybatis主配置文件的properties標簽,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 淺析JDK和Tomcat的安裝與配置方法

    淺析JDK和Tomcat的安裝與配置方法

    這篇文章主要介紹了JDK和Tomcat的安裝與配置方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-12-12
  • java使用Graphics2D繪圖/畫圖方式

    java使用Graphics2D繪圖/畫圖方式

    這篇文章主要介紹了java使用Graphics2D繪圖/畫圖方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • JVM系列之:JIT中的Virtual Call接口操作

    JVM系列之:JIT中的Virtual Call接口操作

    這篇文章主要介紹了JVM系列之:JIT中的Virtual Call接口操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java面試題沖刺第六天--網(wǎng)絡(luò)編程1

    Java面試題沖刺第六天--網(wǎng)絡(luò)編程1

    這篇文章主要為大家分享了最有價值的三道網(wǎng)絡(luò)編程面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論

郴州市| 砚山县| 西宁市| 宁远县| 田林县| 宣城市| 左权县| 隆林| 故城县| 商南县| 石狮市| 高唐县| 宁武县| 平武县| 邯郸县| 阳江市| 察隅县| 永安市| 日照市| 保德县| 尉犁县| 清水河县| 京山县| 海口市| 兰坪| 乌拉特中旗| 蒲城县| 富川| 岚皋县| 桑植县| 上高县| 晋江市| 固原市| 平利县| 达拉特旗| 离岛区| 盐源县| 土默特左旗| 靖宇县| 辉县市| 元江|