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