JSP頁面基本組成
在 HTML 頁面文件中加入 Java 程序段和 JSP 標簽,即可構(gòu)成一個 JSP 頁文件,JSP 頁面由 5 種元素組合而成。
1.普通的 HTML 標記符。
2.JSP 標簽,如指令標簽、動作標簽。
3.變量和方法的聲明。
4.Java 程序段。
5.Java 表達式。
當服務器上的 JSP 頁面被第一次請求執(zhí)行時,服務器上的 JSP 引擎首先將 JSP 頁面文件轉(zhuǎn)譯成 Java 文件,再將 Java 文件編譯,生成字節(jié)碼文件,然后通過執(zhí)行字節(jié)碼文件響應客戶的請求,這個字節(jié)碼文件的任務如下。
• 把 JSP 頁面中普通的 HTML 標記符號交給客戶的瀏覽器執(zhí)行并顯示。
• JSP 標簽、數(shù)據(jù)和方法聲明、Java 程序段由服務器負責執(zhí)行,將需要顯示的結(jié)果發(fā)送給客戶的瀏覽器。
• Java 表達式由服務器負責計算,并將結(jié)果轉(zhuǎn)化為字符串,然后交給客戶的瀏覽器負責顯示。
Java Server Pages(JSP)能夠分離頁面的靜態(tài) HTML 和動態(tài)部分。HTML 可以用任何通常使用的 Web 制作工具編寫,編寫方式也和原來的一樣;動態(tài)部分的代碼放入特殊標記之內(nèi),大部分以“<%”開始,以“%>”結(jié)束。
例如,下面是一個 JSP 頁面的片斷,如果用http://host/test.jsp?title=Core+Web+Programming 這個 URL 打開該頁面,則結(jié)果顯示 “Thanks for ordering Core Web Programming”。 test.jsp 源程序如下:
Thanks for ordering
<i><%= request.getParameter("title") %></i>
JSP 頁面文件通常以 .jsp 為擴展名,而且可以安裝到任何能夠存放普通 Web 頁面的地方。雖然從代碼編寫來看,JSP 頁面更像普通 Web 頁面而不像 Servlet,但實際上,JSP 最終會被轉(zhuǎn)換成正規(guī)的 Servlet,靜態(tài) HTML 直接輸出到和 Servlet service 方法關(guān)聯(lián)的輸出流。
JSP 到 Servlet 的轉(zhuǎn)換過程一般在出現(xiàn)第一次頁面請求時進行。因此,如果希望第一個用戶不會由于 JSP 頁面轉(zhuǎn)換成 Servlet 而等待太長的時間,并且希望確保 Servlet 已經(jīng)正確地編譯并裝載,你可以在安裝 JSP 頁面之后自己請求這個頁面,這樣 JSP 頁面就轉(zhuǎn)換成 Servlet 了。
另外也請注意,許多 Web 服務器允許定義別名,所以一個看起來指向 HTML 文件的 URL 實際上可能指向 Servlet 或 JSP 頁面。
除了普通 HTML 代碼之外,嵌入 JSP 頁面的其他成分主要有三種:腳本元素(Scripting Element)、指令(Directive)和動作(Action)。
腳本元素用來嵌入 Java 代碼,這些 Java 代碼將成為轉(zhuǎn)換得到的 Servlet 的一部分;JSP 指令用來從整體上控制 Servlet 的結(jié)構(gòu);動作用來引入現(xiàn)有的組件或者控制 JSP 引擎的行為。為了簡化腳本元素,JSP 定義了一組可以直接使用的變量(預定義變量)。