向書本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識,
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造
2019/3/3 16:48:37
JSP 腳本元素
JSP腳本元素用來插入Java代碼,這些Java代碼將出現(xiàn)在由當(dāng)前JSP頁面生成的Servlet中。腳本元素有三種格式:
表達(dá)式格式<%= expression %>:計算表達(dá)式并輸出其結(jié)果。
Scriptlet格式<% code %>:把代碼插入到Servlet的service方法。
聲明格式<%! code %>:把聲明加入到Servlet類(在任何方法之外)。
下面我們詳細(xì)說明它們的用法。
JSP 表達(dá)式
JSP表達(dá)式用來把Java數(shù)據(jù)直接插入到輸出。其語法如下:
<%= Java Expression %>
計算Java表達(dá)式得到的結(jié)果被轉(zhuǎn)換成字符串,然后插入到頁面。計算在運行時進(jìn)行(頁面被請求時),因此可以訪問和請求有關(guān)的全部信息。例如,下面的代碼顯示頁面被請求的日期/時間:
Current time: <%= new java.util.Date() %>
為簡化這些表達(dá)式,JSP預(yù)定義了一組可以直接使用的對象變量。后面我們將詳細(xì)介紹這些隱含聲明的對象,但對于JSP表達(dá)式來說,最重要的幾個對象及其類型如下:
request:HttpServletRequest;
response:HttpServletResponse;
session:和request關(guān)聯(lián)的HttpSession
out:PrintWriter(帶緩沖的版本,JspWriter),用來把輸出發(fā)送到客戶端
下面是一個例子:
Your hostname: <%= request.getRemoteHost() %>
最后,如果使用XML的話,JSP表達(dá)式也可以寫成下面這種形式:
<jsp:expression>
Java Expression
</jsp:expression>
請記住XML元素和HTML不一樣。XML是大小寫敏感的,因此務(wù)必使用小寫。有關(guān)XML語法的說明,請參見《XML教程 》
JSP Scriptlet
如果你要完成的任務(wù)比插入簡單的表達(dá)式更加復(fù)雜,可以使用JSP Scriptlet。JSP Scriptlet允許你把任意的Java代碼插入Servlet。JSP Scriptlet語法如下:
<% Java Code %>
和JSP表達(dá)式一樣,Scriptlet也可以訪問所有預(yù)定義的變量。例如,如果你要向結(jié)果頁面輸出內(nèi)容,可以使用out變量:
<%
String queryData = request.getQueryString();
out.println("Attached GET data: " + queryData);
%>
注意Scriptlet中的代碼將被照搬到Servlet內(nèi),而Scriptlet前面和后面的靜態(tài)HTML(模板文本)將被轉(zhuǎn)換成println語句。這就意味著,Scriptlet內(nèi)的Java語句并非一定要是完整的,沒有關(guān)閉的塊將影響Scriptlet外的靜態(tài)HTML。例如,下面的JSP片斷混合了模板文本和Scriptlet:
<% if (Math.random() < 0.5) { %>
Have a <B>nice</B> day!
<% } else { %>
Have a <B>lousy</B> day!
<% } %>
上述JSP代碼將被轉(zhuǎn)換成如下Servlet代碼:
if (Math.random() < 0.5) {
out.println("Have a <B>nice</B> day!");
} else {
out.println("Have a <B>lousy</B> day!");
}
如果要在Scriptlet內(nèi)部使用字符“%>”,必須寫成“%\>”。另外,請注意<% code %>的XML等價表達(dá)是:
<jsp:scriptlet>
Code
</jsp:scriptlet>
JSP 聲明
JSP聲明用來定義插入Servlet類的方法和成員變量,其語法如下:
<%! Java Code %>
由于聲明不會有任何輸出,因此它們往往和JSP表達(dá)式或Scriptlet結(jié)合在一起使用。例如,下面的JSP代碼片斷輸出自從服務(wù)器啟動(或Servlet類被改動并重新裝載以來)當(dāng)前頁面被請求的次數(shù):
<%! private int accessCount = 0; %>
自從服務(wù)器啟動以來頁面訪問次數(shù)為:
<%= ++accessCount %>
和Scriptlet一樣,如果要使用字符串“%>”,必須使用“%\>”代替。最后,<%! code %>的XML等價表達(dá)方式為:
<jsp:declaration>
Code
</jsp:declaration>
JSP 指令
JSP指令影響Servlet類的整體結(jié)構(gòu),它的語法一般如下:
<%@ directive a
深圳市南山區(qū)南山街道南海大道西桂廟路北陽光華藝大廈1棟4F、4G-04
咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967