1 JSP腳本元素
JSP腳本元素用來(lái)插入Java代碼,這些Java代碼將出現(xiàn)在由當(dāng)前JSP頁(yè)面生成的Servlet中。腳本元素有三種格式:
表達(dá)式格式<%= expression %>:計(jì)算表達(dá)式并輸出其結(jié)果。
Scriptlet格式<% code %>:把代碼插入到Servlet的service方法。
聲明格式<%! code %>:把聲明加入到Servlet類(lèi)(在任何方法之外)。
下面我們?cè)敿?xì)說(shuō)明它們的用法。
JSP表達(dá)式
JSP表達(dá)式用來(lái)把Java數(shù)據(jù)直接插入到輸出。其語(yǔ)法如下:
<%= Java Expression %>
計(jì)算Java表達(dá)式得到的結(jié)果被轉(zhuǎn)換成字符串,然后插入到頁(yè)面。計(jì)算在運(yùn)行時(shí)進(jìn)行(頁(yè)面被請(qǐng)求時(shí)),因此可以訪問(wèn)和請(qǐng)求有關(guān)的全部信息。例如,下面的代碼顯示頁(yè)面被請(qǐng)求的日期/時(shí)間:
Current time: <%= new java.util.Date() %>
為簡(jiǎn)化這些表達(dá)式,JSP預(yù)定義了一組可以直接使用的對(duì)象變量。后面我們將詳細(xì)介紹這些隱含聲明的對(duì)象,但對(duì)于JSP表達(dá)式來(lái)說(shuō),最重要的幾個(gè)對(duì)象及其類(lèi)型如下:
request:HttpServletRequest;
response:HttpServletResponse;
session:和request關(guān)聯(lián)的HttpSession
out:PrintWriter(帶緩沖的版本,JspWriter),用來(lái)把輸出發(fā)送到客戶端
下面是一個(gè)例子:
Your hostname: <%= request.getRemoteHost() %>
最后,如果使用XML的話,JSP表達(dá)式也可以寫(xiě)成下面這種形式:
請(qǐng)記住XML元素和HTML不一樣。XML是大小寫(xiě)敏感的,因此務(wù)必使用小寫(xiě)。有關(guān)XML語(yǔ)法的說(shuō)明,請(qǐng)參見(jiàn)《XML教程 》
JSP Scriptlet
如果你要完成的任務(wù)比插入簡(jiǎn)單的表達(dá)式更加復(fù)雜,可以使用JSP Scriptlet。JSP Scriptlet允許你把任意的Java代碼插入Servlet。JSP Scriptlet語(yǔ)法如下:
和JSP表達(dá)式一樣,Scriptlet也可以訪問(wèn)所有預(yù)定義的變量。例如,如果你要向結(jié)果頁(yè)面輸出內(nèi)容,可以使用out變量:
注意Scriptlet中的代碼將被照搬到Servlet內(nèi),而Scriptlet前面和后面的靜態(tài)HTML(模板文本)將被轉(zhuǎn)換成println語(yǔ)句。這就意味著,Scriptlet內(nèi)的Java語(yǔ)句并非一定要是完整的,沒(méi)有關(guān)閉的塊將影響Scriptlet外的靜態(tài)HTML。例如,下面的JSP片斷混合了模板文本和Scriptlet:
上述JSP代碼將被轉(zhuǎn)換成如下Servlet代碼:
如果要在Scriptlet內(nèi)部使用字符“%>”,必須寫(xiě)成“%\>”。另外,請(qǐng)注意<% code %>的XML等價(jià)表達(dá)是:
<jsp:scriptlet>
Code
</jsp:scriptlet>
JSP聲明
JSP聲明用來(lái)定義插入Servlet類(lèi)的方法和成員變量,其語(yǔ)法如下:
由于聲明不會(huì)有任何輸出,因此它們往往和JSP表達(dá)式或Scriptlet結(jié)合在一起使用。例如,下面的JSP代碼片斷輸出自從服務(wù)器啟動(dòng)(或Servlet類(lèi)被改動(dòng)并重新裝載以來(lái))當(dāng)前頁(yè)面被請(qǐng)求的次數(shù):
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注