ASP和JSP頁面簡單介紹
在 Sun 正式發(fā)布 JSP(JavaServer Pages) 之后,這種新的 Web 應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。JSP為創(chuàng)建高度動態(tài)的 Web 應(yīng)用提供了一個獨特的開發(fā)環(huán)境。按照 Sun 的說法,JSP能夠適應(yīng)市場上包括 Apache WebServer 、 IIS4.0 在內(nèi)的 85% 的服務(wù)器產(chǎn)品。即使您對 ASP “一往情深”,我們認為,關(guān)注JSP的發(fā)展仍舊很有必要。
1.ASP和JSP的簡單比較
JSP 與 Microsoft 的 ASP 技術(shù)非常相似。兩者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。在 ASP和JSP 環(huán)境下, HTML 代碼主要負責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務(wù)器,而 ASP和JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP和JSP 都是面向 Web 服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
ASP 的編程語言是 VBScript 之類的腳本語言,JSP使用的是 Java ,這是兩者最明顯的區(qū)別。此外, ASP 與JSP還有一個更為本質(zhì)的區(qū)別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在 ASP 下, VBScript 代碼被 ASP 引擎解釋執(zhí)行;在JSP下,代碼被編譯成 Servlet 并由 Java 虛擬機執(zhí)行,這種編譯操作僅在對JSP頁面的第一次請求時發(fā)生。
2.運行環(huán)境
Sun 公司的JSP主頁在http://www.javasoft.com/products/jsp/index.html ,從這里還可以下載JSP規(guī)范,這些規(guī)范定義了供應(yīng)商在創(chuàng)建JSP引擎時所必須遵從的一些規(guī)則。
執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便于學(xué)習(xí),這個軟件包提供了大量可供修改的示例。安裝 JSWDK 之后,只需執(zhí)行 startserver 命令即可啟動服務(wù)器。在默認配置下服務(wù)器在端口 8080 監(jiān)聽,使用http://localhost:8080即可打開缺省頁面。
在運行JSP示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是“ work ”子目錄下的內(nèi)容。執(zhí)行示例頁面時,可以在這里看到JSP頁面如何被轉(zhuǎn)換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 JSWDK 軟件包中的示例頁面分為兩類,它們或者是JSP文件,或者是包含一個表單的 HTML 文件,這些表單均由JSP代碼處理。與 ASP 一樣,JSP中的 Java 代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用“查看源文件”菜單是無法看到JSP源代碼的,只能看到結(jié)果 HTML 代碼。所有示例的源代碼均通過一個單獨的“ examples ”頁面提供。
3.JSP頁面示例
下面我們分析一個簡單的JSP頁面。您可以在 JSWDK 的 examples 目錄下創(chuàng)建另外一個目錄存放此文件,文件名字可以任意,但擴展名必須為 .jsp 。從下面的代碼清單中可以看到,JSP頁面除了比普通 HTML 頁面多一些 Java 代碼外,兩者具有基本相同的結(jié)構(gòu)。 Java 代碼是通過 < % 和 %> 符號加入到 HTML 代碼中間的,它的主要功能是生成并顯示一個從 0 到 9 的字符串。在這個字符串的前面和后面都是一些通過 HTML 代碼輸出的文本。
- < HTML>
- < HEAD>< TITLE>JSP 頁面 < /TITLE>< /HEAD>
- < BODY>
- < %@ page language="java" %>
- < %! String str="0"; %>
- < % for (int i=1; i < 10; i++) {
- strstr = str + i;
- } %>
- JSP 輸出之前。
- < P>
- < %= str %>
- < P>
- JSP 輸出之后。
- < /BODY>
- < /HTML>
這個ASP和JSP頁面可以分成幾個部分來分析。
首先是JSP指令。它描述的是頁面的基本信息,如所使用的語言、是否維持會話狀態(tài)、是否使用緩沖等。JSP指令由 < %@ 開始, %>結(jié)束。在本例中,指令“ < %@ page language="java" %> ”只簡單地定義了本例使用的是 Java 語言(當(dāng)前,在JSP規(guī)范中 Java 是唯一被支持的語言)。
接下來的是JSP聲明。JSP聲明可以看成是定義類這一層次的變量和方法的地方。JSP聲明由 < %! 開始, %> 結(jié)束。如本例中的“ < %! String str="0"; %> ”定義了一個字符串變量。在每一項聲明的后面都必須有一個分號,就象在普通 Java 類中聲明成員變量一樣。
位于 < % 和 %> 之間的代碼塊是描述JSP頁面處理邏輯的 Java 代碼,如本例中的 for 循環(huán)所示。
最后,位于 < %= 和 %> 之間的代碼稱為JSP表達式,如本例中的“ < %= str %> ”所示。JSP表達式提供了一種將JSP生成的數(shù)值嵌入 HTML 頁面的簡單方法。
【編輯推薦】