J2EE 定義了企業級應用開發的標準化技術集合。本文系統梳理十三大核心技術的定位、核心 API、交互關係與典型應用場景,構建全棧知識骨架。
Driver, Connection, Statement/PreparedStatement/CallableStatement, ResultSet, DataSource (JDBC 2.0+)。Context (目錄節點), InitialContext (入口), Binding (名稱-對象綁定), Reference (對象引用工廠)。java:comp/env/jdbc/MyDB)。lookup, bind/rebind, unbind, list, createSubcontext。Stateless (無狀態、高並發、池化) / Stateful (會話狀態、單客戶) / Singleton (全局單例、啟動初始化)。MessageListener,容器管理事務/並發/確認模式。Required 等)、安全角色、資源引用、CMR 關係。| 特性 | JSP | Servlet |
|---|---|---|
| 本質 | HTML 模板 + Java 片段 → 編譯為 Servlet | 純 Java 類,實現 Servlet 接口,生成響應 |
| 優勢 | 頁面設計師友好,關注展示 | 邏輯複雜、二進制輸出、過濾器/監聽器 |
| 核心方法 | _jspService() (自動生成) | service(), doGet(), doPost(), init(), destroy() |
| 線程模型 | 單實例多線程 (需線程安全) | 單實例多線程 (需線程安全) |
request, response, session, application, out, pageContext, config, page, exception) 本質為 Servlet API 封裝。idlj 生成 Java Stub/Skeleton/Helper/Holder → 實現 Servant → 部署到 ORB (如 Orbix, TAO, JDK 內置 ORBD)。UserTransaction (begin/commit/rollback), TransactionManager (容器/框架用), XAResource (資源管理器適配)。Session, Message (MimeMessage), Transport (SMTP), Store (IMAP/POP3)。DataHandler, DataSource, CommandMap。JavaMail 內部依賴 JAF 處理附件/多部分內容。ConnectionFactory, Connection, Session, MessageProducer/Consumer, Message (Text/Map/Object/Bytes/Stream), Destination (Queue/Topic)。Client (Web/App)
│
├─→ Servlet/JSP (Controller/View) ──→ JNDI Lookup
│ │
│ ├─→ DataSource (JDBC) ──→ Database
│ ├─→ EJB Home (RMI-IIOP) ──→ Session/Entity Bean (Business Logic)
│ │ │
│ │ ├─→ JDBC / JPA (Persistence)
│ │ ├─→ JMS (Async Messaging)
│ │ └─→ JTA (Transaction Boundary)
│ ├─→ JMS ConnectionFactory ──→ Queue/Topic (MDB)
│ └─→ Mail Session (JavaMail) ──→ SMTP Server
│
└─→ RMI-IIOP / CORBA / Web Service (SOAP/REST) ──→ Legacy / Heterogeneous Systems
J2EE 十三大技術構成了企業級應用的標準化骨架:**JDBC/JPA 訪問數據,JNDI 統一查找,EJB/Spring 封裝業務與事務,Servlet/JSP/MVC 處理 Web 請求,JMS 解耦異步流程,JTA 保障分布式一致性,JavaMail/JAF 處理通訊,JCA/IDL 連接異構系統**。現代 Jakarta EE / Spring Boot 繼承並簡化了這些規範,理解其本質關係,是架構師技術選型與故障診斷的核心內功。