版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JavaWeb程序設(shè)計(jì)
——JSP編程(2)2主要內(nèi)容JSP基本語法JSP腳本元素JSP指令元素JSP動(dòng)作元素3JSP指令元素
JSP指令元素描述了JSP頁面轉(zhuǎn)換成Servlet類文件的控制信息,如JSP頁面所使用的語言、網(wǎng)頁的編碼方式和指定錯(cuò)誤處理頁面等。
JSP指令元素獨(dú)立于JSP頁面接受的任何請求,且不產(chǎn)生任何頁面輸出信息。其語法格式為:
<%@指令名屬性1=“值1”
屬性2=“值2”…%>
JSP中包括:page、include、taglib指令
4(1)page指令page指令用來定義JSP頁面中的全局屬性,如:頁面語言和編碼方式等,它描述了與頁面相關(guān)的一些信息。如:
<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>page指令的位置一般放在JSP頁面的開頭,放在其他位置也是可行的,在一個(gè)JSP頁面中可以有多個(gè)page指令。5page指令中的常用屬性:(1)laguage=“java”JSP中定義了一個(gè)language屬性,其屬性值僅為“Java”,表示腳本的語法必須符合Java語法規(guī)范,所以可以不指定該屬性。(2)import=“{package.class|package.*},…”import屬性用來導(dǎo)入JSP頁面中將要使用的Java類,可以導(dǎo)入多個(gè)類,中間用“,”隔開,如:
<%@pageimport=“java.util.Vector,java.util.Calendar”%>
6(3)contentType的參數(shù)值是一個(gè)MIME格式的字符串,通常格式為:contentType=“text/plain|text/html…[charset=characterSet]”
該屬性指定返回瀏覽器的內(nèi)容類型,如:text/html(純文本的HTML頁面)、application/msword(Word文件);charset用來指定所使用的字符集。pageEncoding指出頁面的編碼方式,這和contentType中的屬性值charset等價(jià),默認(rèn)為ISO-8859-1。7(4)buffer和autoFlushbuffer和autoFlush屬性指定服務(wù)器對輸出對象out的緩沖區(qū)大?。J(rèn)為8kb),及緩沖區(qū)是否自動(dòng)清空。在JSP輸出HTML頁面的過程中,數(shù)據(jù)在服務(wù)器中會先進(jìn)行緩存,之后再統(tǒng)一發(fā)送至瀏覽器。當(dāng)buffer設(shè)置為none時(shí),將不使用緩沖區(qū),這樣的I/O效率會很差。8(5)errorPage=“relativeURL”
設(shè)置處理異常的JSP文件,采用相對路徑。(6)isErrorPage=“true|false”
設(shè)置該JSP頁面是否為錯(cuò)誤處理頁面,默認(rèn)值為:false。9<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><%@pageimport="java.util.*,java.lang.*"%><%@pageerrorPage="error.jsp"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">Page指令pageError.jsp文件10<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Inserttitlehere</title></head><body>Testforusing'Page'.<%inti=0;%><%=10/i%></body></html>JSP代碼,代碼中有異常錯(cuò)誤。11<%@pagelanguage="java"contentType="text/html;charset=gb2312"
isErrorPage="true"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>出錯(cuò)</title></head><body><fontcolor=red>
出錯(cuò):<br>Message:<%=exception.getMessage()%><br></font></body></html>page指令JSP代碼:獲取異常信息error.jsp文件12運(yùn)行結(jié)果:注意:在運(yùn)行時(shí)需要將瀏覽器中Internet設(shè)置中的”顯示友好Http錯(cuò)誤信息”取消。13(2)include指令include指令用來包含一個(gè)靜態(tài)的文件,在解析當(dāng)前JSP頁面時(shí),這個(gè)文件中的代碼會被復(fù)制到當(dāng)前頁面中。其語法格式為:
<%@includefile=“relativeURL”%>
其中,包含的文件可以是:JSP文件、HTML文件、文本文件或者一段Java代碼。如果包含的是JSP文件,則該JSP文件內(nèi)容將會被主JSP文件一起編譯執(zhí)行。14(2)include指令include指令會在JSP編譯時(shí)插入一個(gè)文件,而這個(gè)包含過程是靜態(tài)的,要求file屬性的值不能是一個(gè)變量,如下例是不合法的:
<%Stringurl=“header.html”;%><%@includefile=“<%=url>”%>
也不能在file中出現(xiàn)參數(shù),如:
<%@includefile=“query.jsp?name=browser”%>15
<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Include指令</title></head><body>插入JSP代碼:<%@includefile="includecode.cod"%></body></html>Include指令Page指令include.jsp文件:16<%@pagecontentType="text/html;charset=gb2312"%><%Strings="這是插入執(zhí)行代碼的內(nèi)容";out.print(s);%>“includecode.cod”文件:(文本方式保存)17運(yùn)行結(jié)果:18
除了JSP核心中定義的動(dòng)作元素標(biāo)簽,JSP頁面中也可以使用用戶自定義的標(biāo)簽。taglib指令用來定義一個(gè)標(biāo)簽庫及其自定義的標(biāo)簽的前綴。其語法格式為:
<%@tagliburi=“tagURL”prefix=“tagPrefix”%>
其中,屬性uri用來唯一地確定標(biāo)簽庫的路徑,屬性prefix用來指示使用此標(biāo)簽庫的前綴。定義標(biāo)簽時(shí),不能使用:jsp,jspx,java,javax,servlet,sun等作為前綴。(3)taglib指令19主要內(nèi)容JSP基本語法JSP腳本元素JSP指令元素JSP動(dòng)作元素20
JSP動(dòng)作元素(ActionElements),是在客戶端請求時(shí)動(dòng)態(tài)執(zhí)行的,以實(shí)現(xiàn)控制Servlet引擎的行為,如:動(dòng)態(tài)插入文件、重用JavaBean組件、重定向到另外的頁面等。
JSP動(dòng)作元素是一種特殊標(biāo)簽,以jsp為前綴,JSP動(dòng)作元素可分為三類:
JavaBean(一種Java類,可重復(fù)使用)XML(JSP2.0新增)一般元素JSP動(dòng)作元素21JSP中預(yù)設(shè)的ActionElement標(biāo)簽:①
JavaBean:<jsp:useBean>,<jsp:setProperty><jsp:getProperty>,<jsp:param>②
一般元素:<jsp:plugin>,<jsp:forward>,<jsp:include>③
XML:<jsp:attribute>,<jsp:body>,<jsp:element>22
動(dòng)作元素分為三種:標(biāo)準(zhǔn)動(dòng)作,JSTL動(dòng)作,以及自定義動(dòng)作。如前所見到的<jsp:include>,<jsp:useBean>等都是標(biāo)準(zhǔn)動(dòng)作標(biāo)簽;<c:out>是JSP標(biāo)準(zhǔn)標(biāo)簽庫JSTL內(nèi)的標(biāo)簽;<t:testtagout>則是自定義的標(biāo)簽。23<jsp:include>動(dòng)作元素可以用來包含其他靜態(tài)和動(dòng)態(tài)頁面。該包含為運(yùn)行時(shí)包含,即指被包含的文件在運(yùn)行時(shí)被編譯和執(zhí)行。其語法格式為:
<jsp:includepage=“relativeURL”
flush=“true|false”/>
其中,relativeURL為包含文件的相對路徑,flush為true,表示實(shí)時(shí)輸出緩沖區(qū)。(1)<jsp:include>動(dòng)作元素24<jsp:includepage=“relativeURL”
flush=“true|false”><jsp:paramname=“attributeName”value=“attributeValue”/>
……</jsp:include>
一個(gè)<jsp:include>動(dòng)作元素可以包含一個(gè)或者多個(gè)<jsp:param>元素,用于在包含文件時(shí)傳遞一些參數(shù)。
25例:(jspinclude.jsp文件中動(dòng)態(tài)包含action.jsp)
<%@pagelanguage="java"contentType="text/html;charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>Inserttitlehere</title>
</head>jspinclude.jsp文件26<body>
<%@includefile="static.html"%>
<!--動(dòng)態(tài)包含文件并傳遞參數(shù)-->
<jsp:includepage="action.jsp"flush="true">
<jsp:paramname="a1"value="<%=request.getParameter("name")%>"/>
<jsp:paramname="a2"value="<%=request.getParameter("password")%>"/>
</jsp:include>
</body>
</html>include指令<jsp:include>動(dòng)作元素27<formmethod=postaction="jspinclude.jsp">
<table>
<tr>
<td>pleaseinputyourname:</td>
<td><inputtype=textname=name></td>
</tr>
<tr>
<td>inputyoupassword:</td>
<td><inputtype=passwordname=password></td>
</tr>
<tr>
<td></td>
<td><inputtype=submitvalue=login></td>
</tr>
</table>
</form>static.htm文件28<body>
<%
out.println("runfromaction.jsp");
%>
<br>
a1=
<%=request.getParameter("a1")%>
<br>
a2=
<%=request.getParameter("a2")%>
<br>
</body>獲取參數(shù)值action.jsp文件29運(yùn)行結(jié)果:30運(yùn)行結(jié)果:31JSP中include指令與include動(dòng)作元素的區(qū)別:(1)include指令(編譯時(shí)包含)
include指令是指把其他頁面的Java源碼加進(jìn)來,和本頁的代碼合并在一起,然后再編譯。(2)<jsp:include>動(dòng)作元素(運(yùn)行時(shí)包含)該動(dòng)作元素是指運(yùn)行時(shí)編譯執(zhí)行被包含的頁面代碼,然后再將被包含頁面的運(yùn)行結(jié)果加入到當(dāng)前頁面中。32<jsp:forward>用于在服務(wù)器端結(jié)束當(dāng)前頁面的執(zhí)行,并從當(dāng)前頁面跳轉(zhuǎn)到其他頁面,轉(zhuǎn)向的頁面可是HTML頁面、JSP頁面。其語法格式為:<jsp:forwardpage=“relativeURL”><jsp:paramname=“attributeName”
value=“attributeValue”/>
……</jsp:forward>(2)<jsp:forward>動(dòng)作元素33<jsp:forward>可以帶參數(shù),也可以不帶參數(shù)。該動(dòng)作元素的典型應(yīng)用是用戶登錄,如:進(jìn)行權(quán)限驗(yàn)證的頁面,如果驗(yàn)證通過,可以把頁面跳轉(zhuǎn)到登錄成功的頁面,如果失敗,則跳轉(zhuǎn)到登錄頁面。34<jsp:param>元素主要用來傳遞參數(shù)給JSP程序,其語法格式為:
<jsp:paramname=“attributeName”value=“vlaue”>
其中,name屬性表示傳遞參數(shù)的名稱,value表示該參數(shù)的值。(3)<jsp:param>動(dòng)作元素35
使用<jsp:param>元素傳遞參數(shù),JSP程序中如何獲取該參數(shù)的值?可以通過request對象的getParameter()方法來獲得:
request.getParameter(“attributeName”)
<jsp:param>元素的使用需要與<jsp:include>、<jsp:forward>等元素配合使用。36(4)<jsp:plugin>動(dòng)作元素<jsp:plugin>的功能在于在JSP網(wǎng)頁中加載JavaApplet或JavaBean程序。其語法格式為:
<jsp:plugintype=“bean|applet”code=“classfilename”codebase=“fileDirectoryName”width=“”height=“”
……>37
<jsp:params>
<jsp:paramname=“”value=“”/>
……
</jsp:parmas>
</jsp:plugin>
其中,若要傳遞參數(shù)給程序,則需要加入</jsp:params>來進(jìn)行設(shè)置。38例:在JSP頁面中加入一個(gè)JavaApplet程序importjava.awt.*;importjava.applet.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString("HelloWorld!",50,50);}}39<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Inserttitlehere</title></head><body><jsp:plugintype="applet"code="HelloApplet.class"height="200"width="250"></jsp:plugin></body></html>40JavaBean是一種可重用組件模型,本質(zhì)是一個(gè)Java類。在Web應(yīng)用,采用JavaBean對業(yè)務(wù)處理邏輯和數(shù)據(jù)訪問進(jìn)行封裝,可以使程序代碼的邏輯清晰,可重用性良好。(5)JavaBean動(dòng)作元素411、<jsp:useBean>用來在JSP頁面中加載JavaBean,其語法格式為:
<jsp:useBeanid=“beanInstanceName”type=“beanType”scope=“page|request|session|application”class=“packageclass”beanName=“name”></useBean>
(5)JavaBean動(dòng)作元素422、<jsp:setProperty>用來設(shè)置已經(jīng)實(shí)例化的Bean對象的屬性值,有兩種用法:
1)可以在<jsp:useBean>元素的后面使用:
<jsp:useBeanid=“name1”….>
…<jsp:setPropertyname=“name1”property=“”value
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度幼兒園在崗教職工勞動(dòng)合同登記規(guī)范3篇
- 2025年度出納擔(dān)保合同風(fēng)險(xiǎn)控制及處理規(guī)范4篇
- 2025年度個(gè)人購房貸款提前還款合同4篇
- 二零二五年度消防安全服務(wù)承包合同3篇
- 二零二五版門衛(wèi)值班人員緊急救援聘用合同4篇
- 2025年度個(gè)人果園旅游開發(fā)與承包管理服務(wù)合同4篇
- 2025年度大白工程生態(tài)修復(fù)施工合同4篇
- 二零二五版美甲店員工激勵(lì)與薪酬體系設(shè)計(jì)合同模板4篇
- 2025年度電商移動(dòng)應(yīng)用開發(fā)與運(yùn)營合同30篇
- 2025年度打井工程安全防護(hù)合同范本4篇
- 射頻在疼痛治療中的應(yīng)用
- 和平精英電競賽事
- 四年級數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會
- 彈簧分離問題經(jīng)典題目
- 部編版高中歷史中外歷史綱要(下)世界史導(dǎo)言課課件
評論
0/150
提交評論