背景:從兩層到 n 層
傳統 Client/Server 兩層架構將資料存取、業務邏輯、顯示全置客戶端,升級困難、擴展性差、協議私有。J2EE 定義標準化模組化組件與完整容器服務,將應用拆分為:
- 表現層:瀏覽器渲染 HTML。
- 動態生成層:JSP/Servlet/XML+XSL 在 Web 伺服器生成動態內容。
- 業務邏輯層:Session EJB 封裝業務流程。
- 資料存取層:Entity EJB + JDBC 操作持久化。
- 後端整合層:依系統類型選擇 JCA、JMS、RMI-IIOP 等。
分層使各節點專注單一職責,易於水平擴展、叢集、容錯。
WebLogic Server 的 J2EE 實現
BEA WebLogic 完整實現 J2EE 規範,內建事務、安全、命名服務、連接池、執行緒池、負載平衡、容錯移轉,降低開發門檻。
13 大核心技術概覽
- JDBC:統一資料庫存取。四類驅動:Type 1(JDBC-ODBC)、Type 2(Native)、Type 3(Network)、Type 4(Pure Java)。WebLogic 內建 Oracle/Sybase/SQL Server/Informix/Cloudscape 驅動。企業應用採用連接池(weblogic.properties 配置)減少連線開銷,支援交易控制(setAutoCommit(false))。
- JNDI:命名與目錄服務,統一查找 EJB、DataSource、JMS 等資源。
- EJB:Session(有狀/無狀)、Entity(CMP/BMP)、Message-Driven Bean。
- RMI / RMI-IIOP:分布式物件呼叫,IIOP 實現跨語言互操作。
- JSP / Servlet:Web 表現與控制核心。
- XML:資料交換、配置、XSLT 轉換。
- JMS:非同步訊息傳遞(Point-to-Point / Pub-Sub)。
- Java IDL / JTS / JTA:CORBA 整合、分散式交易管理。
- JavaMail / JAF:郵件發送與資料內容處理。
JDBC 程式碼範例
Class.forName("COM.cloudscape.core.JDBCDriver");
Connection conn = DriverManager.getConnection("jdbc:cloudscape:PhoneBook");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name, phone FROM CONTACT_TABLE ORDER BY name");
while (rs.next()) {
System.out.println(rs.getString(1).trim() + ", " + rs.getString(2).trim());
}
企業級用法:透過 EJB 取得 DataSource,從連接池獲取連線,交易邊界由容器或 Bean 管理。
