J2EE基礎之JSP
1、JSP簡介
JSP是JavaServer的縮寫,是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。在HTML檔案中加入Java程式程式碼就構成了JSP網頁。Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的Java程式程式碼,然後將執行結果以HTML形式返回給客戶端。實際上,從另一方面來說,JSP的實質是Servlet,其在釋出編譯執行時會被轉換成標準的Servlet,該轉換過程一般在出現第一次頁面請求時就會發生。
JSP設計的目的在於簡化表示層的展示。JSP中沒有增加任何本質上不能用Servlet實現的功能。但是,在JSP中編寫靜態HTML,更加方便,不必再用println語句來輸出每一行HTML程式碼。更重要的是,藉助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開。
除了普通的HTML程式碼之外,嵌入JSP頁面的其他成分主要包括以下三種:指令碼元素、指令、動作。其中,指令碼元素是用來嵌入Java程式碼,這一 部分Java程式碼將直接轉換為Servlet的一部分;JSP指令用來從整體上控制Servlet的結構;JSP動作用於引入現有的元件以控制Web容器的行為。另外,為了簡化指令碼元素,JSP定義了一組可以直接使用的內部物件變數。
2、JSP指令
JSP指令是從JSP向Web容器傳送的訊息,它用來設定頁面的全域性屬性,如輸出內容型別等。指令的作用範圍僅限於包含指令本身的JSP頁面。
JSP指令的格式為:
<%@指令名 屬性=”屬性值”%>
指令名有page、include和tablib三種。具體如下:
(1)page指令
page指令用來定義整個JSP頁面的全域性屬性。合法的page屬性有language、import、session、contentType、isThreadSafe、buffer、autoflush、extends、info、errroPage、isErrorPage等。
(2)include指令
JSP頁面可通過include指令將其他檔案插入到當前頁面中。這個檔案可以是JSP檔案、HTML檔案或文字檔案。include指令的格式為:
<%@include file = “relativeURL”%>
include指令的主要作用是在一個Web應用中,當多個JSP頁面包含相同的內容時,可以把相同的部分放在一個檔案中,然後在其他檔案中用include指令包含這個檔案即可。這樣做的好處,當要修改這一部分檔案程式碼是,只需修改一個檔案即可。
(3)taglib指令
當需要在JSP檔案中使用自定義的標籤時,可以通過使用taglib指令來指定。格式為:<%@taglib uri=”URItoTagLibrary”prefix=”tagPrefix”%>
其中,URI為統一資源標記符,prefix是標籤庫的識別符,可以根據此prefix對自定義的標籤進行唯一的命名。
3、JSP動作
JSP動作是一組動態執行的指令,用於控制Web容器的行為。利用JSP動作可以動態地向頁面中插入檔案、重寫JavaBean元件、導向另一個頁面等。常見的JSP動作有以下四種:
(1)include動作
include動作把指定檔案插入正在生成的頁面,其格式如下:
<jsp:include page=”relativeURL” flush=”true|false”>
include動作和include指令在執行過程中有很大的不同。include動作在執行時不對包含的檔案進行處理,如果對包含的檔案進行了修改,那麼執行時可以看到所包含檔案修改後的結果。而靜態的include指令包含的檔案如果發生變化,必須重新編譯,否則只能看到所包含檔案修改前的內容。因此,除非被包含檔案經常改動,否則使用include指令獎獲得更好的效能。
(2)forward動作
forward動作用於把當前的JSP頁面導向另一個頁面,客戶端看到的地址是當前網頁的地址,而實際內容卻是另一個頁面的。其格式如下:
<jsp:forward page=”relativeURL”>
(3)param動作
param動作用於傳遞引數資訊,必須配合include動作或forward動作一起使用。格式如下:
<jsp:param name=引數名稱,value=值/>
(4)useBean動作
UseBean動作能夠讓JSP網頁使用JavaBean,從而能夠充分應用Java的重要性。通過使用useBean動作,可在JSP網頁中例項化一個或多個JavaBean元件,這些被例項化的JavaBean物件可以在JSP中被呼叫。其格式為:
<jsp:useBean id=”name” class=”classname” scope=”page|request|session|application”>
4、JSP內建物件
JSP提供了可在指令碼中使用的內建物件,這些物件使使用者更容易收集通過瀏覽器請求傳送的資訊、響應瀏覽器及儲存使用者資訊。JSP共提供九中內建物件:request、response、out、session、application、config、pagecontext、page和exception。常用的有以下六種:
(1)request物件
request物件是JSP中最常用的物件,代表來自客戶端的請求,它封裝了使用者提交的資訊,例如在FORM表單中填寫的資訊等,通過呼叫request物件相應的方法可以獲取關於客戶請求的資訊。
(2)response物件
response物件用於將伺服器資料傳送到客戶端以響應客戶端的請求。可以通過response物件來組織傳送到客戶端的資訊,如Cookie、HTTP標頭檔案等。但是由於組長方式比較底層,所以一般不建議使用,需要向客戶端傳送文字時直接使用out物件即可。
(3)session物件
session物件指的是客戶端與伺服器的一次會話,從客戶端連到伺服器的一個Web應用程式開始,直到客戶端與伺服器斷開為止。
(4)application物件
如果客戶瀏覽不同的Web頁面,將產生不同的application物件。同一個Web應用中的所有JSP頁面都將存取同一個application物件,即使瀏覽這些JSP網頁的客戶不是同一個也是如此。application物件一旦建立,除非伺服器關閉,否則將一直保持下去。
(5)out物件
out物件能將特定的資料內容搭配JSP程式程式碼動態輸出到客戶端的瀏覽器。
(6)exception物件
exception物件用來處理JSP檔案在執行時所有發生的錯誤和異常。
。