首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

ASP 開發者轉型 J2EE 基礎指南 (上):平台選擇、核心組件與 MVC 架構

     編輯:Java 相關知識

針對熟悉 ASP/COM/ISAPI 的開發者,本文建立 J2EE 認知路標:平台優勢、Servlet/JSP 對應關係、應用服務器架構、MVC 分層、Java 語言核心語法與面向對象差異,助你以最小認知負荷啟動 J2EE 開發。

一、 為何選擇 J2EE?

  • 實現選擇權:標準 API (Servlet, JSP, EJB, JMS, JDBC, JCA) → 多廠商實現 (WebSphere, WebLogic, Tomcat, JBoss, GlassFish) → 避免廠商鎖定。
  • 平台選擇權:Windows, Linux, AIX, Solaris, z/OS, macOS → 一次編寫,多平台部署。
  • 遺留集成能力:JCA 統一訪問 CICS, IMS, ERP, CRM;JMS 標準消息;JDBC 統一數據庫;Web Services 集成 .NET/異構系統。
  • 開放標準流程:Java Community Process (JCP) 公開草案、專家組、參考實現、兼容性測試 (TCK) → 透明演進。

二、 核心 Web 組件對照表

Servlet vs JSP 職責劃分 (經典 Model 2 / MVC)

  • Servlet (Controller):接收表單提交、解析參數、調用業務邏輯 (Model)、選擇轉發 JSP、設置請求屬性。
  • JSP (View):接收請求屬性、渲染 HTML、使用 JSTL/EL 表達式、標簽庫,不含業務邏輯代碼。

對應關係:ISAPI → Servlet、ASP → JSP、IIS → Web Server + App Server。

三、 應用服務器架構優勢

  • Web Server 解耦:可保留 IIS 做靜態/舊 ASP,逐步遷移動態頁到應用服務器 (WebSphere Plugin / mod_jk 轉發)。
  • 平台中立:同一 WAR 包部署到 Windows/WebLogic、Linux/Tomcat、AIX/WebSphere,無需重編譯。
  • 廠商中立:標準部署描述符 (web.xml, ejb-jar.xml) 定義組件裝配,遷移只改容器特定配置 (數據源、線程池)。
  • JSP 預編譯/熱加載:容器將 JSP 轉譯為 Servlet 類,駐留內存,文件變更自動重編譯,性能優於解釋執行。

四、 MVC 架構在 J2EE 中的落地

ASP/IIS 概念J2EE 對應說明
ISAPI Filter / CGIJava ServletJava 類,運行於應用服務器容器,處理 HTTP 請求,生成響應或轉發
ASP 頁面 (.asp)JavaServer Pages (JSP)HTML + Java 腳本片段 + 標簽庫,請求時編譯為 Servlet 執行
VBScript / JScriptJava Language強類型、面向對象、異常機制、泛型、併發包
IIS (Web Server + 應用宿主)Web Server (Apache/IIS) + 應用服務器分離架構:Web Server 做靜態/SSL/代理,應用服務器跑 Servlet/JSP/EJB
COM+ / MTS 事務組件Enterprise JavaBeans (EJB)會話/實體/消息 Bean,容器管理事務/安全/併發/持久化

關鍵收益:Model 可被多 View 復用 (如同一數據輸出 HTML/Excel/PDF/JSON);Controller 集中控制導航/安全/日誌;單元測試可針對 Model/Controller 獨立進行。

五、 Java 語言核心速成 (對比 Visual Basic 6)

1. 執行模型

  • VB: 編譯 → 機器碼 EXE (平台綁定)。
  • Java: javac 編譯 → 字節碼 .class (平台無關) → JVM (java.exe) 解釋/JIT 編譯 → 機器碼運行。一次編譯,到處運行。

2. 基本類型對照

層次職責典型技術ASP 對應
Model業務數據、規則、持久化JavaBean, EJB Entity/Session, JDBC, Hibernate, JPACOM+ 組件、ADO/SQL Server、存儲過程
View用戶界面渲染JSP, JSTL, EL, JSF, Velocity, FreemarkerASP 頁面 (HTML + VBScript 混寫)
Controller請求分發、流程控制、視圖選擇Servlet, Struts Action, Spring MVC Controller, JSF FacesServletASP 頁面自處理 (Controller+View 混合)

3. 運算符差異重點

  • ++/-- 自增減 (VB 無)。
  • + 字符串連接 (VB 用 &)。
  • / 整除/浮點除由操作數類型決定 (VB 用 \ 整除)。
  • == 基本類型值比較 / 對象引用比較 (VB = 兼具)。對象內容比較用 equals()。
  • !/~/&/|/^ 邏輯非/按位非/與/或/異或 (VB Not/And/Or/Xor 混用位/邏輯)。
  • &&/|| 短路邏輯與/或 (VB And/Or 不短路,AndAlso/OrElse 為短路,VB.NET 才有)。

4. 方法 vs Sub/Function

// Java 方法 (必須在類內)
public void myMethod1(String arg) { ... }          // void ≈ Sub
public int myMethod2(String arg) { return i; }     // 返回值 ≈ Function

5. 數組

  • 對象化:int[] a = new int[100]; → a.length 獲取長度。
  • 索引從 0 起,聲明大小含第 0 元素。
  • 字面量初始化:String[] b = {"Tom","Dick","Harry"};
  • 遍歷:for (int i=0; i<a.length; i++) / for (int v : a) (Java 5+)。

6. 字符串不可變

  • String s = "Hi"; s.toUpperCase() 返回新對象,原 s 不變。
  • 頻繁拼接用 StringBuilder (非線程安全、高性能) 或 StringBuffer (線程安全)。

7. 包機制解決命名衝突

  • package com.mycompany.module; — 文件首行聲明。
  • 目錄結構映射包名:com/mycompany/module/ClassName.class。
  • import com.mycompany.module.*; 或全限定名使用。
  • 打包分發:jar -cvf mylib.jar com → java -cp mylib.jar com.mycompany.module.ClassName。

8. 面向對象三大特性對比

Java範圍/大小VB6 對應備註
booleantrue/falseBoolean無數值轉換
char0~65535 (Unicode)String (Len=1)16位無符號
byte8位有符號Byte
short16位有符號Integer
int32位有符號Long最常用整型
long64位有符號無 (Currency/Double 近似)需後綴 L
float32位浮點Single需後綴 f
double64位浮點Double默認浮點
——VariantJava 無對應
——Date用 java.util.Date/Calendar
——Currency用 java.math.BigDecimal

9. 類結構核心要素

  • 構造器:同名方法、無返回類型、new ClassName() 調用、可重載、不繼承、子類構造器首行 super(...) 調用父構造器。
  • this:引用當前對象,解決參數遮蔽字段 (如 this.balance = balance;)。
  • static:類字段/方法,屬於類不屬於實例,ClassName.staticMethod() 調用。
  • 訪問修飾符:public (全局)、protected (同包+子類)、default/包訪問 (同包)、private (類內)。默認非 public (VB 默認 Public)。
  • 接口:interface 定義契約、無實現、類可 implements 多個接口、接口可 extends 多個父接口。
  • Object 根類:所有類隱式繼承,提供 toString()/equals()/hashCode()/getClass() 等通用行為。

六、 Hello World 到可運行類

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
  1. 保存為 HelloWorld.java (文件名=類名,大小写敏感)。
  2. javac HelloWorld.java → 生成 HelloWorld.class。
  3. java HelloWorld (無 .class 後綴) → 輸出 Hello World。

七、 學習路徑建議

  1. 掌握上述語法核心,編寫練習類 (集合、異常、IO、線程基礎)。
  2. 瀏覽 Java SE 8 API 文檔,熟悉 java.lang, java.util, java.io, java.sql 核心包。
  3. 學習 Servlet/JSP 實戰:配置 Tomcat、編寫 web.xml、實現登錄/CRUD 小應用 (Model 2 模式)。
  4. 進階 Spring Framework (IoC, AOP, MVC, 事務) — 現代 J2EE 開發標配。
  5. 理解 EJB/JMS/JCA/JTA 企業級服務,按需引入。

下篇將深入 Servlet/JSP 實戰、數據庫連接池、部署描述符詳解與遷移案例。敬請期待。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
特性VB6Java
封裝Property Get/Let/Set + Private 變量private field + public getter/setter 方法約定
繼承不支持 (Interface 只有定義)單繼承 extends,繼承非 private 成員,可覆蓋方法
多態接口多態 (Implements)方法重載 (同名不同參數) + 方法覆蓋 (子類重寫) + 接口實現 implements