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