南郵JSP程序設計教程(第3章)._第1頁
南郵JSP程序設計教程(第3章)._第2頁
南郵JSP程序設計教程(第3章)._第3頁
南郵JSP程序設計教程(第3章)._第4頁
南郵JSP程序設計教程(第3章)._第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、JSP程序設計教程第3章JSP語法第3章JSP語法 3.1了解JSP的基本構(gòu)成V 3.2 JSP的指令標識7 3.3JSP的腳本標識寸 3.4 3.5動作標識7<! JSP表達式->今天是:<%=today%></body>在上面的代碼中.并沒有包括JSP中、| 的所有元素.但它仍然構(gòu)成了一個幼 態(tài)的JSP程序.訪問包含了該代碼的3.1.1JSP中的指令標識73.1 了解JSP的基本構(gòu)成JSP中的指令標識“<%(g) page language=MjavaM contentType=Mtext/html; charset=gb2312M %>&l

2、t;%(§> page import=cvjava.util.Datevv %><!- HTML標記語言-><html>vheadxtitle>JSP 頁面的基本構(gòu)成 v/titlex/head><body><center><!嵌入的Java代碼<% String today=new DateO.toLocaleS3.1.4 JSP表達式73.1.1 JSP中的指令標識利用jsp指令可以使服務器按照指令的設來 執(zhí)行動作和設置在整個jsp頁面范圍內(nèi)有效的屬性。3.1.2 HTML標記語言 HTML標記在

3、JSP頁面中作為靜態(tài)的內(nèi)容,瀏覽器將會識別這些HTML標記并執(zhí)行。在JSP程序開發(fā)中,HTML標記語言主要負責頁 面的布局、設計和美觀,可以說是網(wǎng)頁的框架。3.1.3嵌入的Java代碼片段嵌入到JSP頁面中的Java代碼,在客戶端瀏覽器中是不可見的。嵌入的Java代碼需要被服務器執(zhí)行,然后由 服務器將執(zhí)行結(jié)果與HTML標記語言一同發(fā)送給 客戶端進行顯示。可以使該頁通過向JSP頁面中嵌入Java代碼, 面生成動態(tài)的內(nèi)容。3.1.4 JSP表達式 jsp表達式主要用于數(shù)據(jù)的輸出。它可以向頁面輸出內(nèi)容以顯示給用戶,還可 以用來動態(tài)地指定HTML標記中屬性的值。3.2 JSP的指令標識指令標識在客戶端

4、是不可見的,它是被服務器解釋并被執(zhí) 行的。通過指令標識可以使服務器按照指令的設置來執(zhí)行動作和 設置在整個JSP頁面范圍內(nèi)有效的屬性。指令通常以y沏'標記開始,以叫,'標記結(jié)束,3種指令的 通用格式如下:<%指令名稱屬性屬性值”屬性2二'屬性值” .%>3.2 JSP的指令標識 3.2.1lirlyde 指令 P 3.2.3 使用taglib指令 73.2.1使用page指令page指令即頁面指令,可以定義在整個JSP頁面范內(nèi)有效的屬性。<% page attributel ='fvalue1f, attribute2=,value2M .%&g

5、t;例如,在頁面中正確設置當前頁面響應的MIME類型為 text/html,如果MIME類型設置不正確,則當服務器將 數(shù)據(jù)傳輸給客戶端進行顯示時,客戶端將無法識別傳 送來的數(shù)據(jù),從而不能正確地顯示內(nèi)容。3.2.1使用page指令Pag時旨令中除import屬性外,其他屬性只能在指令 中出現(xiàn)一次。3.2.1使用page指令3.2.1使用page指令<% pagelanguage=Mjava° contentType=etmlmeType;charset=CHARSEV import二"package.class|pageage."exte nds 二"

6、;pacXage.class” i sesslon=v'true|falseM i buffer=Mnone|8kb|slze kb i autoFlush=Mtrue|falseM i lsThreadSafe=Mtrue|falseM lnfo=* texf errorPage=MrelatlveURLM i isErrorPage=fttrue|falseM isELIgnored=Mtrue|falseM i pageEncoding=MCHARSET* %>C雖然Page指令具有如此多的屬性 但在實際編程過程中.并不是每個 屬性郁必須一一列出,其中很多肩 性可以忽略,此

7、時Page指令將使 用這些屬性的默認值來設置JSP頁 面3.2.1使用page指令-language屬性:設置當前頁面中編寫JSP腳本使用的語言, 默認值為java,例如:<% page language二”java" %> content Type屬性:設置頁面響應的MIME類型,通常被設置為text/html,以及設置JSP字符的編碼,默認的編碼為ISO-8859-1 o 例如:<% page contentType=Mtext/html;charset=gb2312f, %> import屬性:在Page指令中可多次使用該屬性來導入多個 包。例如:<

8、;% page import=1'java.text.*fr %>或者通過逗號間隔.來導入多個包<%© page import=,java.utiL>,tJava.text.*f, %>3.2.1使用page指令 i sThreadSafe屬性:默認值為true,表示當前JSP頁面被 轉(zhuǎn)換為Servlet后,會以多線程的方式來處理來自多個用戶 的請求;如果設為false,則轉(zhuǎn)換后的Servlet會實現(xiàn) SigieThreadModeI接口,該ServI毗將以單線程的方式來處 理用戶請求.即其他請求必須等到前一個請求處理結(jié)束。 inf。屬性:該屬性可設置

9、為任意字符串,如當前頁面的作 者或其他有關(guān)的頁面信息。可通過Servlet. getServ let Info 0方法來獲取設置的字符串。例如:3.2.1使用page指令<% page info=MThis is index.jsp!ft %> <%=this.getServletlnfo()%> 訪問頁面后.將顯示:This is index.jsp! errorPage屬性:該屬性用來指定一個當前頁面出現(xiàn)異常 時所要調(diào)用的頁面。 isErrorPageJg性:將該屬性值設為true,此時在當前頁 面中可以使用exception異常對象。若在其他頁面中通過 orror

10、Page屬性指定了該頁面,則當前者出現(xiàn)異常時,會跳 轉(zhuǎn)到該頁面,并可在該頁面中通過exception對象輸出錯誤-isELIgnored屬性:使JSP容器忽略表達式語言。 其值只能為true或false。設為true,則忽略表達式語言。 pageEncod i ng 屬性: 默認值為ISO-8859-1 o該屬性用來設置JSP頁面字符的編碼。該指令用于在當前的JSP頁面中,在當前使用該指令的位置 嵌入其他的文件,如果被包含的文件中有可執(zhí)行的代碼,則 顯示代碼執(zhí)行后的結(jié)果。該指令的使用格式如下:<% include file=lf文件的絕對路徑或相對路徑” %>file屬性:該屬性指

11、定被包含的文件,該屬性不支持任何 表達式,也不允許通過如下的方式來傳遞參數(shù)。<% include file=Mwelcome.jsp?name=yxq,f %>luda指令用例:3.2.2使用include指令<% page contentType=Mtext/html;charset=gb2312M %> <table><trxtd colspan=tf2M> <% include file=,top.jsp,%> </tdx/tr><tr><td><% include file=Mside

12、.jsp,f%></td> vtd>在這里對內(nèi)容顯示區(qū)進行編碼</td></tr><trxtd colspan=fl2ff><% include flle=”endjsp"%x/tdx/tr></table>323使用taglib指令aglib指令,開發(fā)者就可以在頁面中使用基本標識或自定義的標識來完成特殊的功能。<% taglib uri=”tagURI" prefix=,tagPrefix,* %> prefix屬性:該屬性指定一個在頁121中使用由uri屬性指 "i

13、屬性:該屬性指定了標簽描述符,該描述符是一個對 標簽描述文件(也tld)的映射。定的標簽庫的前綴。開發(fā)者可通過前綴來引用標簽庫中的標 簽。以下為一個簡單的使用JSTL的代碼:<% taglib uri=M prefix=,fcM %> <c:set var=MnameM value='hello"/:> s該段代碼通過<c:set>標簽將hello3.3 JSP的腳本標識 3.3.1 JSP表達式(Expression) 7 3.3.2 聲明標識(Declaration) 333 腳本程序(Scriptlet) Q3.3.1 JSP表達式表

14、達式用于向頁面中輸出信息。特別注意:-“<%”與之間不要有空格。語句末尾沒有分號JSP表達式在頁面被轉(zhuǎn)換為Servlet后,轉(zhuǎn)換為了 out. pr intO 方法。<%=變景或可以返回值的方法或Java表達式%>生成動態(tài)的鏈接地址.例如下面的代碼:<% String path二"wel一<a href=f <%=path%J運行該段代碼將生成下面的html代碼:動態(tài)指定Form表單處理如齪噌閱嗝韻陰煤;睿接帥elcome.jspva>_J<% String name二"logon.jsp" %><for

15、m action=M<%=name%>,x/forp A"運行該段代碼將生成下面的HTML代碼:、<form actlon=Mlogon.jspM></form>y為通過循環(huán)語句生成的元素命名,例如下面的代碼:<% for(int i=1 ;i<3;i+) %>file<%=i%>: <input type=MtextM name=ft<%=fffile,ti54>fl><br><% %>zL運行該段代碼將生成下面的HTML代碼:filel; vinput type二&q

16、uot;text" name=MfIle1 f><br>flle2: vlnput typeftext" narrwmie2"xbi>332 聲明標識(Declaration)衽JSP頁屆<%!內(nèi):<%!聲明閩聲明標識中聲明的變量說明:int num=0;特別目聲明標識中聲明的方法三格。在頁屈synchronized void add()肚整個頁面內(nèi)都有num+;類后類中的屬性和耳戶共享。生命月%>3.3.3 腳本程序(Scriptlet)腳本程序是在JSP頁面中使用"%”與 慎”標記起來的一段 Java代碼。&

17、lt;% Java程序片段%>說明:在腳本程序中定義的變:在當前的整個頁面內(nèi)都有效, 但不會被其他的線程共享,用戶之間互不影響。變量在的所在頁面關(guān)閉后就會被銷毀。-腳本程序的使用比較靈活,它所實現(xiàn)的功能是JSP表達 式無法實現(xiàn)的。3.4 JSP的注釋 3.4.1HTML中的注釋 342帶有JSP表達式的注釋 3.4.3隱藏注釋 344腳本程序(Scriptlet)中的注釋JSP文件是由HTML標記和嵌入的Java程序片段組成的,所以 在HTML中的注釋同樣可以在JSP文件中使用。注釋格式如下:<!-注釋內(nèi)容-a3.4.2帶有JSP表達式的注釋在HTML注釋中可以嵌入JSP表達式,注

18、釋格式如下:<!- commentv%二expression %>->3.4.3隱藏注釋注釋格式如下:V%注釋內(nèi)容-%>使用該方法注釋的內(nèi)容,不僅在客戶端瀏覽時看不到,而 且即使是通過在客戶端查看HTML源代碼,也不會看到,所以安全性較高.344 腳本程序(Scriptlet)中的注釋3.提示文檔注釋該種注釋會被Javadoc文檔工具生成文檔時所讀取.文檔是 對代碼結(jié)構(gòu)和功能的描述。/*提示信息1344 腳本程序(Scriptlet)中的注釋提示信息2在Ec I i pse開發(fā)工具中向創(chuàng)建的JSP文件輸入下面的代碼,然后將鼠標指針移動到指定的代碼上,將會出現(xiàn)提示信息。&

19、lt;%!int i=0;/*作者,YXQ功能,該方法用來實現(xiàn)一個簡單的計數(shù)器 */synchronized void add()I+;%><% add(); %>當前訪問次數(shù):<%=!%>344 腳本程序(Scriptlet)中的注釋將鼠標指針移動到add () : %>代碼上.將出現(xiàn)下圖如圖3.5動作標識在JSP中提供了一系列的使用XML語法寫成的動作標識,這 些標識可用來實現(xiàn)特殊的功能。動作標識是在請求處理階段按照在頁面中出現(xiàn)的順序被執(zhí) 行的,只有它們被執(zhí)行的時候才會去實現(xiàn)自己所具有的功 能。動作標識通用的使用格式如下:v動作標識名稱屬性1值1”屬性2

20、才值2"/> 或V動作標識名稱屬性值什屬性2值2".>v子動作屬性"”值1”屬性2值翠./>v/動作標識名稱3.5動作標識 visrxi nc lude> visD:foi"ward> visrxuseBeanV visp:setPropertyZ visD:getProDerty> vjsp:fallback>/<jsp:include> <jsp:plugin> <jsp: incIude>動作標識用于向當前的頁面中包含其他 (動態(tài)或者靜態(tài)的)文件。<jsp:incl

21、ude pages11 被包含文件的路徑,f flush=Mtrue|falseM/>或者向被包含的動態(tài)頁面中傳遞參數(shù):<jsp:include pages"被包含文件的路徑M flush=Mtrue|falseM> <jsp:param name=ft參數(shù)名掠” valude=M參數(shù)值"/> </jsp:i nclude><jsp:include>屬性及子標識說明:page屬性:該屬性指定了被包含文件的路徑,其值可以 是一個代表了相對路徑的表達式。flush屬性:表示當輸出緩沖區(qū)滿時,是否清空緩沖區(qū)。 默認值為fals

22、e,通常情況下設為true。<jsp:param>:可以向被包含的動態(tài)頁面中傳遞參數(shù)。對包含文件的處理方式:包含靜態(tài)文件:頁面執(zhí)行后,在使用了該標識的位置處 將會輸出這個文件的內(nèi)容。<jsp:include>包含動態(tài)文件:那么JSP編譯器將編譯并執(zhí)行這個文件。 <jsp: include>與include指令之間的差異有4點:1.屬性<jsp: include>動作標識通過page屬性來指定被包含的 頁面,該屬性支持JSP表達式。-include指令通過file屬性來指定被包含的頁面,它將 fib屬性值看作一個實際存在的文件的路徑,所以該屬 性不

23、支持任何表達式。<jsp:include>處理方式jsp: i nc I ude動作標識包含文件時處理過程;當標識被執(zhí)行時,程序會將請求轉(zhuǎn)發(fā)到被包含的頁 面,并將執(zhí)行結(jié)果輸出到瀏覽器中,然后返回包含頁繼續(xù)執(zhí)行 后面的代碼.實質(zhì):服務器執(zhí)行的是兩個文件,所以JSP編譯器會分別對這 兩個文件進行編譯。 include指令包含文件時處理過程:被包含的文件內(nèi)容會原封不動地插入到包含頁中使 用該指令的位置.JSP編譯器再對這個合成的文件進行觀譯。實質(zhì):include指令將兩個文件合成一個文件,然后JSP編譯器 只編譯合成后的一個文件。<jsp:include>3.包含方式<

24、jsp: i nc Iude>動作標識動態(tài)包含只有當jsp: include動作標識被執(zhí)行時,使 用該識包含的目標文件才會被編譯.否則被包含的文件不 會被編譯。適用范圍:通常是來包含那些經(jīng)常需要改動的文件。 incl ude 指令靜態(tài)包含:服務器執(zhí)行的是將兩個文件合成后由JSP編譯 器編譯成的一個Class文件。適用范圍:通常是用來包含內(nèi)容固定不變的文件.4.對被包含文件的約定<j6p; i no I udo>動作標識不用遵守包含與被包含文件HTML頭部信息保持一致的約 定。 incl ude 指令必須遵守包含與被包含文件HTML頭部信息保持一致的約 定。<jsp:in

25、clude><jsp:include><jsp:forward><jsp:forward動作標識用來將請求轉(zhuǎn)發(fā)到另外一個JSP. HTML或相關(guān)的資源文件中 當該標識被執(zhí)行后,當前的頁面將不再被執(zhí)行,而是去執(zhí)行該標識指 定的目標頁面<jsp:forward page=f,文件路徑|表示路徑的表達式”/>如果轉(zhuǎn)發(fā)的目標是一個動態(tài)文件,還可以向該文件中傳遞參數(shù),使用 格式如下:<jsp:include page=M被包含文件的路徑f, flush=fltrue|falseM> <jsp:param name=M參數(shù)右稱” valud

26、e=M參數(shù)值"/a </jsp:i nclude<jsp:useBean>page屬性:該屬性指定了目標文件的路徑。注意:請求被轉(zhuǎn)向到的目標文件必須是內(nèi)部的資源,即當前 應用中的資源。若請求外部資源,則會報錯,如下:<jsp:forward page=ffhttp:/localhost:8080/B/logon.jspM/>8080/B/1 ogon. jsp) i s錯誤提示:The requested resource not avai table<jsp:param>子標識:用來向動態(tài)的目標文件中傳遞參數(shù)。<jsp:forward

27、>重點提示<jsp:forward標識實現(xiàn)的是請求的轉(zhuǎn)發(fā)操作,而不是請 求萱定向。請求轉(zhuǎn)發(fā)與重定向的區(qū)別:進行請求轉(zhuǎn)發(fā)時,存儲在request對象中的信息會被保請求重定向是重新生成一個requests求,然后將該if 求重定向到指定的URL,所以事先存儲在request對象中 的信息都不存在了。 jsp: useBean動作標識可以在JSP頁面中創(chuàng)建一個Bean實 例。 Jsp:useBean標識被執(zhí)行時,在scope屬性指定的范圍來查找指定的Bean實例-如果該實例已經(jīng)存在,則引用這個Beam-如果該實例不存在,則賣新創(chuàng)建,并將其存儲在scope屬性指 定的范圍內(nèi).通過 j sp

28、: useBean標識創(chuàng)建的Bean實例可以在腳本程序 (Scriptlet)中應用<jsp:useBean>兩種標識的使用方法:<jsp:useBean id="變量名" scope=vvpage|request|session|applicati on" class=vvpackage.classNamevv| type="數(shù)據(jù)類型“ | class="package.className" type=M數(shù)據(jù)夾型"| beanName二"package.className" type=”數(shù)據(jù)類型"/><jsp:setProperty name="變量名"propertyH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論