掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

JSP腳本元素、指令和(hé)預定義變量

2019/3/3 16:48:37

JSP腳本元素、指令和(hé)預定義變量

JSP 腳本元素 

JSP腳本元素用(yòng)來插入Java代碼,這些Java代碼将出現在由當前JSP頁面生成的(de)Servlet中。腳本元素有(yǒu)三種格式: 

表達式格式<%= expression %>:計(jì)算表達式并輸出其結果。 
Scriptlet格式<% code %>:把代碼插入到(dào)Servlet的(de)service方法。 
聲明(míng)格式<%! code %>:把聲明(míng)加入到(dào)Servlet類(在任何方法之外)。 
下面我們詳細說明(míng)它們的(de)用(yòng)法。 

JSP 表達式 

JSP表達式用(yòng)來把Java數據直接插入到(dào)輸出。其語法如(rú)下: 
<%= Java Expression %>


計(jì)算Java表達式得到(dào)的(de)結果被轉換成字符串,然後插入到(dào)頁面。計(jì)算在運行(xíng)時進行(xíng)(頁面被請求時),因此可(kě)以訪問和(hé)請求有(yǒu)關的(de)全部信息。例如(rú),下面的(de)代碼顯示頁面被請求的(de)日期/時間: 
Current time: <%= new java.util.Date() %>


爲簡化這些表達式,JSP預定義了一組可(kě)以直接使用(yòng)的(de)對象變量。後面我們将詳細介紹這些隐含聲明(míng)的(de)對象,但(dàn)對于JSP表達式來說,最重要的(de)幾個(gè)對象及其類型如(rú)下: 

request:HttpServletRequest; 
response:HttpServletResponse; 
session:和(hé)request關聯的(de)HttpSession 
out:PrintWriter(帶緩沖的(de)版本,JspWriter),用(yòng)來把輸出發送到(dào)客戶端 
下面是一個(gè)例子: 
Your hostname: <%= request.getRemoteHost() %>


最後,如(rú)果使用(yòng)XML的(de)話(huà),JSP表達式也(yě)可(kě)以寫成下面這種形式: 
<jsp:expression>
Java Expression
</jsp:expression>


請記住XML元素和(hé)HTML不一樣。XML是大(dà)小(xiǎo)寫敏感的(de),因此務必使用(yòng)小(xiǎo)寫。有(yǒu)關XML語法的(de)說明(míng),請參見《XML教程 》 

JSP Scriptlet 

如(rú)果你(nǐ)要完成的(de)任務比插入簡單的(de)表達式更加複雜,可(kě)以使用(yòng)JSP Scriptlet。JSP Scriptlet允許你(nǐ)把任意的(de)Java代碼插入Servlet。JSP Scriptlet語法如(rú)下: 
<% Java Code %>


和(hé)JSP表達式一樣,Scriptlet也(yě)可(kě)以訪問所有(yǒu)預定義的(de)變量。例如(rú),如(rú)果你(nǐ)要向結果頁面輸出内容,可(kě)以使用(yòng)out變量: 
<% 
String queryData = request.getQueryString();
out.println("Attached GET data: " + queryData); 
%>


注意Scriptlet中的(de)代碼将被照(zhào)搬到(dào)Servlet内,而Scriptlet前面和(hé)後面的(de)靜态HTML(模闆文(wén)本)将被轉換成println語句。這就意味著(zhe),Scriptlet内的(de)Java語句并非一定要是完整的(de),沒有(yǒu)關閉的(de)塊将影響Scriptlet外的(de)靜态HTML。例如(rú),下面的(de)JSP片斷混合了模闆文(wén)本和(hé)Scriptlet: 
<% if (Math.random() < 0.5) { %>
Have a <B>nice</B> day!
<% } else { %>
Have a <B>lousy</B> day!
<% } %>


上(shàng)述JSP代碼将被轉換成如(rú)下Servlet代碼: 
if (Math.random() < 0.5) { 
out.println("Have a <B>nice</B> day!");
} else { 
out.println("Have a <B>lousy</B> day!");
}


如(rú)果要在Scriptlet内部使用(yòng)字符“%>”,必須寫成“%\>”。另外,請注意<% code %>的(de)XML等價表達是: 
<jsp:scriptlet>
Code
</jsp:scriptlet>


JSP 聲明(míng) 

JSP聲明(míng)用(yòng)來定義插入Servlet類的(de)方法和(hé)成員變量,其語法如(rú)下: 
<%! Java Code %>


由于聲明(míng)不會(huì)有(yǒu)任何輸出,因此它們往往和(hé)JSP表達式或Scriptlet結合在一起使用(yòng)。例如(rú),下面的(de)JSP代碼片斷輸出自從服務器(qì)啓動(或Servlet類被改動并重新裝載以來)當前頁面被請求的(de)次數: 
<%! private int accessCount = 0; %>
自從服務器(qì)啓動以來頁面訪問次數爲:
<%= ++accessCount %>



和(hé)Scriptlet一樣,如(rú)果要使用(yòng)字符串“%>”,必須使用(yòng)“%\>”代替。最後,<%! code %>的(de)XML等價表達方式爲: 
<jsp:declaration>
Code
</jsp:declaration>


JSP 指令 

JSP指令影響Servlet類的(de)整體結構,它的(de)語法一般如(rú)下: 
<%@ directive a


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号 深圳市市场监督管理局企业主体身份公示