【J2EE】--讓你不能拒絕的J2EE13核心規範
背景
資料庫連線,郵件服務、事務處理等,這些是企業級開發通用的模組。為了提高開發的效率,各個公司抽象出了自己的通用模組。這些服務性的軟體系列成為中介軟體。不同的公司生產不同的中介軟體,使用者無法將各個公司的中介軟體組裝到一起。於是提出標準的概念。這樣就有了J2EE十三個規範。有了規範,不同的公司都可以按照各自的方式去實現公共介面,實現了中介軟體和專案業務邏輯的解耦和,充分的體系了Java物件導向的思想。
我個人的理解如下,如果郵箱服務類是A公司開發的,資料庫連線類是C公司開發的,J2EE規範充當的角色就是,制定統一的介面(介面名稱,方法,引數,返回值),具體的郵箱服務、資料庫連線類裡面的具體實現由各個公司來書寫。
J2EE巨集觀一覽
Web瀏覽器發出頁面請求,直接訪問到的是web容器表示層,JSP,Servlet。
JSP(Java Server Pages)頁面由HTML程式碼和嵌入其中的Java程式碼組成。伺服器在頁面被客戶端請求後對這些Java程式碼進行處理,然後將生成的HTML頁面返回給客戶端瀏覽器。它的原理跟ASP(Active Server Pages)基本類似,ASP包含HTML、元件和資料庫訪問功能,可以根據客戶端請求形成HTML頁面返回給客戶端瀏覽器。
Servlet是一種小型的Java程式,它擴充套件了web伺服器的功能。它跟JSP都能作為View層使用,但是不同的是JSP是HTML和Java語言的結合,Servlet是純Java程式碼,可以由Java程式碼生成HTML語言。Servlet讓我想到了MVC模式中的Controller,之前在做.NET專案的時候,在Controller中是完全可以拼接前臺頁面的。
鑑於讓頁面表示和業務邏輯解耦的思想,與其讓JSP或Servlet單獨作業,更好的是二者系統合作,JSP主要負責頁面顯示,Servlet負責整合Java業務。
EJB(Enterprise Java Bean)容器在圖中充當業務邏輯層。下圖是對EJB容器的具體介紹。
SessionBean主要用來實現業務邏輯,可以分有狀態和無狀態兩種。
一般通過EntityBean+JDBC(JavaDatabase Connectivity)實現資料庫的訪問。EntityBean是域模型物件,用於實現O/M對映,負責將資料庫中的表對映為記憶體中的實體物件上,根據跟之前.NET專案中用到的EF類似。
訊息驅動Bean是唯一一種必須實現一個業務介面的Bean,主要通過JMS來實現。
JDBC(Java Database Connectivity)為訪問不同的資料庫提供統一的路徑,像ODBC一樣。
JMS(Java Message Service)用於和麵向物件的中介軟體相互通訊的應用程式介面。
JNDI(JavaName and Directory Interface)API被用於執行名字和目錄服務.它提供了一致的模型來存取和操作企業級的資源DNS和LDAP,本地檔案系統,或應用伺服器中的物件.
RMI(RemoteMethod Invoke):遠端方法請求,RMI協議呼叫遠端物件上的方法,它使用了序列化的方式在客戶端和伺服器之間傳遞資料。RMI是一種被EJB使用的更底層的協議。
EJB容器
訊息驅動Bean的實現原理
還有幾個規範,我把他們的概念放到這裡,後續的學習再回頭加深理解。
XML(Extensible Markup Language)是一種可以用來定其它標記語言的語言。用於在不同的商務過程中共享資料。也就是我們做專案過程中用到的配置檔案。
JavaIDL/CORBA:它們可以建立Java物件並使之可在CORBAORB中展開,或者他們還可以建立Java類並和其它ORB一起展開的CORBA物件客戶.後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用程式和舊的系統集合在一起。
跟郵件相關的:
JavaMail:用於存取伺服器的API,提供了一套郵件伺服器的抽象類。支援SMTP,IMAP伺服器。
JAF(JavaBeansActivation Framework):Java利用JAF來處理MIME編碼的郵件附件。
跟事務相關的:
JTA(JavaTransaction API):定義了一種標準API,應用程式由此可以訪問各種事務監控。
JTS(JavaTransaction Service):CORBAOTS事務監控的基本實現。
總結
對於J2EE的總結,僅僅是一個開始。通過總結,讓我發現J2EE東西好多啊,需要後面通過專案把知識消化,然後再去擴充。
相關文章
- 如何做到阿里雲 Redis 開發規範中的拒絕 bigkey阿里Redis
- 拒絕“散漫”與低效 遊戲研發也需要一套設計規範遊戲
- J2EE中你必須瞭解的13種技術規範
- corba核心規範(轉)ORB
- Linux 核心曝出 TCP 拒絕服務漏洞LinuxTCP
- 分散式拒絕服務攻擊(DDoS)原理及防範分散式
- 拒絕遺忘:高效的動態規劃演算法動態規劃演算法
- 程式被拒絕的原因
- stylelint 規範你的 cssCSS
- 規範你的commit msgMIT
- 編寫約玩原始碼不能忽視的細節,拒絕Bug找上門原始碼
- win10 程式不能結束訪問被拒絕怎麼辦Win10
- 拒絕遊戲創業遊戲創業
- Mac電腦使用:你無法拒絕的Mac觸發角Mac
- GBase XDM 支援的核心技術規範
- J2EE專案程式碼編寫規範分享
- 記錄曾經拒絕的話
- 你沒有理由拒絕OnApp香港雲主機APP
- 拒絕使用 rm -rf 命令 ?
- 什麼是壞道?拒絕壞道讓硬碟用的更長久的方法硬碟
- 拒絕熬夜加班,實在智慧RPA讓財務人省心省力
- 拒絕入侵 讓Win7具備"自動還原卡"功能Win7
- 你可能會忽略的 Git 提交規範Git
- localhost拒絕訪問的解決方法localhost
- 遊戲主機:拒絕逝去的“恐龍”遊戲
- 前端開發規範:命名規範、html規範、css規範、js規範前端HTMLCSSJS
- 讓老主機板更新驅動程式不再拒絕新網路卡(轉)
- 遊戲美宣,拒絕亂穿衣遊戲
- PhpMyAdmin訪問被拒絕PHP
- 開發中的你的Git提交規範嗎?Git
- 你能說說你理解的資料庫規範嗎?資料庫
- 拒絕失敗率——如何讓ERP專案一次成功?(3)(轉)
- 拒絕失敗率——如何讓ERP專案一次成功?(2)(轉)
- 拒絕失敗率——如何讓ERP專案一次成功?(1)(轉)
- 我拒絕參加你們的技術面試面試
- win10開機拒絕訪問怎麼辦 win10開機拒絕訪問的方法Win10
- win10印表機為什麼拒絕訪問 win10印表機拒絕訪問的方法Win10
- 宅男宅女的福利:當減肥健身成為遊戲,你還會拒絕嗎?遊戲