【代碼審計(jì)】Java EE 基礎(chǔ)知識(shí)

Java 平臺(tái)分為三個(gè)主要版本:

  1. Java SE(Java 平臺(tái)標(biāo)準(zhǔn)版)
  2. Java EE(Java 平臺(tái)企業(yè)版)
  3. Java ME(Java 平臺(tái)微型版)

Java EE 是 Java 應(yīng)用最廣泛的版本。

0x01 Java EE 的核心技術(shù)

Java EE 有十三種核心技術(shù),它們分別是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail 和 JAF,這里重點(diǎn)介紹以下幾種:

  1. Java 數(shù)據(jù)庫連接(Java Database Connectivity,JDBC)是 Java 語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。
  2. Java 命名和目錄接口(Java Naming and Directory Interface,JNDI),是 Java 的一個(gè)目錄服務(wù)應(yīng)用程序界面(API),它提供一個(gè)目錄系統(tǒng),并將服務(wù)名稱與對(duì)象關(guān)聯(lián)起來,從而使得開發(fā)人員在開發(fā)過程中可以使用名稱來訪問對(duì)象。簡(jiǎn)單的說就是比如以前連接數(shù)據(jù)庫需要把參數(shù)寫在 Java 類里,但現(xiàn)在可以直接寫在配置文件里了,這個(gè)配置文件可以是 XML,也可以是 properties,或者 yml 文件,只要能解析都行。
  3. 企業(yè)級(jí) JavaBean(Enterprise JavaBean, EJB)是一個(gè)用來構(gòu)筑企業(yè)級(jí)應(yīng)用的、在服務(wù)器端可被管理組件。不過這個(gè)東西在 Spring 問世后基本涼涼了,知道是什么就行。
  4. 遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)是 Java 的一組擁有開發(fā)分布式應(yīng)用程序的 API,它大大增強(qiáng)了 Java 開發(fā)分布式應(yīng)用的能力。
  5. Servlet(Server Applet),是用 Java 編寫的服務(wù)端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài) Web 內(nèi)容。狹義的 Servlet 是指 Java 語言實(shí)現(xiàn)的一個(gè)接口,廣義的 Servlet 是指任何實(shí)現(xiàn)了這個(gè) Servlet 接口的類,一般情況下,人們將 Servlet 理解為后者。
  6. JSP(全稱 JavaServer Pages)是由 Sun 公司主導(dǎo)創(chuàng)建的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP 部署于網(wǎng)絡(luò)服務(wù)器上,可以響應(yīng)客戶端發(fā)送的請(qǐng)求,并根據(jù)請(qǐng)求內(nèi)容動(dòng)態(tài)地生成 HTML、XML 或其他格式文檔的 Web 網(wǎng)頁,然后返回給請(qǐng)求者。
  7. 可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)是被設(shè)計(jì)用于傳輸和存儲(chǔ)數(shù)據(jù)的語言。
  8. Java 服務(wù)消息(Java Message Service,JMS)是一個(gè) Java 平臺(tái)中關(guān)于面向消息中間件(MOM)的 API,用于在兩個(gè)應(yīng)用程序之間或分布式系統(tǒng)中發(fā)送消息,進(jìn)行異步通信。

0x02 Java EE 分層模型

Java EE 應(yīng)用的分層模型主要分為以下 5 層。

image
  1. Domain Object(領(lǐng)域?qū)ο螅樱步心P停∕odole)層,此層由一系列的 POJO(Plain Old Java Object,普通的、傳統(tǒng)的 java 對(duì)象)組成,這些對(duì)象是該系統(tǒng)的 Domain Object,往往包含了各自所需實(shí)現(xiàn)的業(yè)務(wù)邏輯方法。
  2. DAO(Data Access Object,數(shù)據(jù)訪問對(duì)象)層,此層由一系列的 DAO 組件組成,這些 DAO 實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫的創(chuàng)建、查詢、更新和刪除(CRUD)等原子操作。
  3. Service(業(yè)務(wù)邏輯層)層,此層由一系列的業(yè)務(wù)邏輯對(duì)象組成,這些業(yè)務(wù)邏輯對(duì)象實(shí)現(xiàn)了系統(tǒng)所需要的業(yè)務(wù)邏輯方法。這些業(yè)務(wù)邏輯方法可能僅僅用于暴露Domain Object 對(duì)象所實(shí)現(xiàn)的業(yè)務(wù)邏輯方法,也可能是依賴 DAO 組件實(shí)現(xiàn)的業(yè)務(wù)邏輯方法。
  4. Controller(控制器)層,此層由一系列控制器組成,這些控制器用于攔截用戶請(qǐng)求,并調(diào)用業(yè)務(wù)邏輯組件的業(yè)務(wù)邏輯方法,并根據(jù)處理結(jié)果轉(zhuǎn)發(fā)到不同的 View 組件。
  5. View(表現(xiàn))層,此層由一系列的 JSP 頁面、Velocity 頁面、PDF 文檔視圖組件組成,負(fù)責(zé)收集用戶請(qǐng)求,并顯示處理后的結(jié)果。

參考鏈接:

https://zhuanlan.zhihu.com/p/43884237

https://www.codenong.com/cs105259462/

https://blog.csdn.net/mzc_love/article/details/107244053

原文鏈接:

https://www.teamssix.com/211115-123451.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容