Java 平台自誕生以來,經歷了從瀏覽器小程式到企業級伺服器端開發主流的蛻變。隨著 J2EE(Java 2 Platform, Enterprise Edition)規範的成熟及第三方廠商支持的擴展,Java 已穩居企業級分散式應用開發的首選陣營。本文將系統梳理 J2EE 的 13 項核心技術——JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail 與 JAF,並結合 BEA WebLogic 應用伺服器的實際部署場景,闡述各技術的適用時機、交互機制及最佳實踐,為架構師、專案經理及開發人員提供全景式參考。
早期的 Client/Server 兩層架構將資料存取、業務邏輯、介面渲染全部集中於客戶端,雖然部署簡單,卻難以擴展、維護與重用,且在 Web 時代暴露出擴展性瓶頸。Sun 設計 J2EE 正是為了解決這些痛點:它定義了一套標準化組件模型與完整服務體系,自動處理安全、多執行緒、事務等基礎設施細節,讓開發者專注於業務邏輯。
典型的 J2EE 多層架構將系統切分為:
分層帶來的優勢在於:Web 伺服器專注頁面分發,應用伺服器處理業務邏輯,資料庫伺服器專司資料服務,各層可獨立擴展、部署與維護。
J2EE 規範僅定義 API,具體實現交由廠商。Apache Tomcat 專注於 JSP/Servlet 容器,而 BEA WebLogic 則提供對完整 J2EE 規範的企業級實現。WebLogic 內建事務服務、安全域、可靠訊息、JNDI 命名服務、連線池、執行緒池、負載平衡與容錯機制,極大簡化了分散式應用的建構與部署,賦予系統高可用性與可維護性。
JDBC API 以統一介面屏蔽異構資料庫差異,並繼承 Java 跨平台特性。規範定義四類驅動程式:
WebLogic 內建 Oracle、Sybase、SQL Server、Informix 等主流資料庫的 Type 4 驅動,並附帶純 Java 資料庫 Cloudscape 供評測。企業級應用中,WebLogic 的連線池機制可顯著降低建立/釋放連線的開銷,配合容器管理事務(CMT)或 Bean 管理事務(BMT)保障資料一致性。
JNDI 提供一致的命名/目錄服務介面,可存取 DNS、LDAP、本地檔案系統及應用伺服器內部物件。核心概念為 Context,所有名稱均為相對路徑。典型用法:
Context ctx = new InitialContext();
MyEJBHome home = (MyEJBHome) ctx.lookup("MYAPP.MYEJB");
此外,JNDI 支援綁定/解除綁定物件、列舉子上下文、建立/刪除子上下文,是 EJB、JMS、資料源等資源在容器中註冊與查找的關鍵基礎設施。
EJB 規範定義組件與容器的交互契約,容器代管事務、安全、資源池化、容錯等系統級服務。三大基本 Bean 類型:
所有 EJB 共享 Home Interface(建立/移除)、Remote Interface(業務方法)與 Bean Class(實作邏輯)三大結構。WebLogic 5.1 提供 EJB Deployer Tool 簡化發布流程,自動生成 Stub/Skeleton 並打包為 JAR,客戶端透過 JNDI 名稱即可透明存取。
JSP 對應 Microsoft ASP,但具備跨平台優勢。頁面混合 HTML 與 Java 片段(<% ... %>)與表達式(<%= ... %>),伺服器端編譯為 Servlet 後輸出純 HTML。非程式設計師亦可輕鬆製作動態頁面。WebLogic 預設未啟用 JSP,需修改 weblogic.properties 啟用 Web 容器與 Servlet 引擎。
Servlet 以純 Java 生成 HTML,擴展 HttpServlet 並覆寫 doGet()/doPost()/service() 處理 HTTP 請求。相較 CGI 每請求啟動新行程,Servlet 以執行緒模型運行於容器內,極大提升擴展性。開發完成後在 weblogic.properties 註冊即可部署。
RMI 以序列化方式跨 JVM 傳遞物件與參數,是 EJB 遠端呼叫的基礎通訊層。
Java IDL 讓 Java 物件可部署於 CORBA ORB,或作為 CORBA 客戶端存取既有系統,為 Legacy 整合提供標準路徑。
JTA 定義應用層事務邊界 API(UserTransaction),JTS 實作 CORBA OTS 規範,為應用伺服器、資源管理器提供底層事務協調服務,支援跨資料庫、跨 JMS 的全域事務。
JavaMail 統一 SMTP/IMAP/POP3 存取介面,JAF 處理 MIME 編碼附件,自動在位元流與 Java 物件間轉換,應用層無需直接操作 JAF。
JMS 支援點對點與發布/訂閱兩種域模型,提供可靠傳遞、事務性訊息、持久訂閱等企業級特性,是解耦業務流程、整合異構後端的關鍵中介軟體介面。
XML 獨立於 Java 演進,但同樣追求平台中立。Java 與 XML 結合可構建完美的跨平台資料交換方案,廣泛應用於配置檔、Web Services(SOAP)、訊息載體等場景。
隨著 Spring、Hibernate 等輕量級框架興起,J2EE 的臃腫與複雜度(特別是 EJB 2.x)備受詬病。EJB 3.0 引入註解、簡化 API,配合 Spring 容器與 Hibernate ORM,成為現代 Java 企業級開發的主流範式,延續了 J2EE 標準化的精神,卻以更輕量、更彈性的方式賦能開發者。