Java Web程序開發(fā)與分析課件:JSP編程(二)_第1頁
Java Web程序開發(fā)與分析課件:JSP編程(二)_第2頁
Java Web程序開發(fā)與分析課件:JSP編程(二)_第3頁
Java Web程序開發(fā)與分析課件:JSP編程(二)_第4頁
Java Web程序開發(fā)與分析課件:JSP編程(二)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JavaWeb程序設計

——JSP編程(2)2主要內(nèi)容JSP基本語法JSP腳本元素JSP指令元素JSP動作元素3JSP指令元素

JSP指令元素描述了JSP頁面轉(zhuǎn)換成Servlet類文件的控制信息,如JSP頁面所使用的語言、網(wǎng)頁的編碼方式和指定錯誤處理頁面等。

JSP指令元素獨立于JSP頁面接受的任何請求,且不產(chǎn)生任何頁面輸出信息。其語法格式為:

<%@指令名屬性1=“值1”

屬性2=“值2”…%>

JSP中包括:page、include、taglib指令

4(1)page指令page指令用來定義JSP頁面中的全局屬性,如:頁面語言和編碼方式等,它描述了與頁面相關的一些信息。如:

<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>page指令的位置一般放在JSP頁面的開頭,放在其他位置也是可行的,在一個JSP頁面中可以有多個page指令。5page指令中的常用屬性:(1)laguage=“java”JSP中定義了一個language屬性,其屬性值僅為“Java”,表示腳本的語法必須符合Java語法規(guī)范,所以可以不指定該屬性。(2)import=“{package.class|package.*},…”import屬性用來導入JSP頁面中將要使用的Java類,可以導入多個類,中間用“,”隔開,如:

<%@pageimport=“java.util.Vector,java.util.Calendar”%>

6(3)contentType的參數(shù)值是一個MIME格式的字符串,通常格式為:contentType=“text/plain|text/html…[charset=characterSet]”

該屬性指定返回瀏覽器的內(nèi)容類型,如:text/html(純文本的HTML頁面)、application/msword(Word文件);charset用來指定所使用的字符集。pageEncoding指出頁面的編碼方式,這和contentType中的屬性值charset等價,默認為ISO-8859-1。7(4)buffer和autoFlushbuffer和autoFlush屬性指定服務器對輸出對象out的緩沖區(qū)大小(默認為8kb),及緩沖區(qū)是否自動清空。在JSP輸出HTML頁面的過程中,數(shù)據(jù)在服務器中會先進行緩存,之后再統(tǒng)一發(fā)送至瀏覽器。當buffer設置為none時,將不使用緩沖區(qū),這樣的I/O效率會很差。8(5)errorPage=“relativeURL”

設置處理異常的JSP文件,采用相對路徑。(6)isErrorPage=“true|false”

設置該JSP頁面是否為錯誤處理頁面,默認值為: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代碼,代碼中有異常錯誤。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>出錯</title></head><body><fontcolor=red>

出錯:<br>Message:<%=exception.getMessage()%><br></font></body></html>page指令JSP代碼:獲取異常信息error.jsp文件12運行結(jié)果:注意:在運行時需要將瀏覽器中Internet設置中的”顯示友好Http錯誤信息”取消。13(2)include指令include指令用來包含一個靜態(tài)的文件,在解析當前JSP頁面時,這個文件中的代碼會被復制到當前頁面中。其語法格式為:

<%@includefile=“relativeURL”%>

其中,包含的文件可以是:JSP文件、HTML文件、文本文件或者一段Java代碼。如果包含的是JSP文件,則該JSP文件內(nèi)容將會被主JSP文件一起編譯執(zhí)行。14(2)include指令include指令會在JSP編譯時插入一個文件,而這個包含過程是靜態(tài)的,要求file屬性的值不能是一個變量,如下例是不合法的:

<%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運行結(jié)果:18

除了JSP核心中定義的動作元素標簽,JSP頁面中也可以使用用戶自定義的標簽。taglib指令用來定義一個標簽庫及其自定義的標簽的前綴。其語法格式為:

<%@tagliburi=“tagURL”prefix=“tagPrefix”%>

其中,屬性uri用來唯一地確定標簽庫的路徑,屬性prefix用來指示使用此標簽庫的前綴。定義標簽時,不能使用:jsp,jspx,java,javax,servlet,sun等作為前綴。(3)taglib指令19主要內(nèi)容JSP基本語法JSP腳本元素JSP指令元素JSP動作元素20

JSP動作元素(ActionElements),是在客戶端請求時動態(tài)執(zhí)行的,以實現(xiàn)控制Servlet引擎的行為,如:動態(tài)插入文件、重用JavaBean組件、重定向到另外的頁面等。

JSP動作元素是一種特殊標簽,以jsp為前綴,JSP動作元素可分為三類:

JavaBean(一種Java類,可重復使用)XML(JSP2.0新增)一般元素JSP動作元素21JSP中預設的ActionElement標簽:①

JavaBean:<jsp:useBean>,<jsp:setProperty><jsp:getProperty>,<jsp:param>②

一般元素:<jsp:plugin>,<jsp:forward>,<jsp:include>③

XML:<jsp:attribute>,<jsp:body>,<jsp:element>22

動作元素分為三種:標準動作,JSTL動作,以及自定義動作。如前所見到的<jsp:include>,<jsp:useBean>等都是標準動作標簽;<c:out>是JSP標準標簽庫JSTL內(nèi)的標簽;<t:testtagout>則是自定義的標簽。23<jsp:include>動作元素可以用來包含其他靜態(tài)和動態(tài)頁面。該包含為運行時包含,即指被包含的文件在運行時被編譯和執(zhí)行。其語法格式為:

<jsp:includepage=“relativeURL”

flush=“true|false”/>

其中,relativeURL為包含文件的相對路徑,flush為true,表示實時輸出緩沖區(qū)。(1)<jsp:include>動作元素24<jsp:includepage=“relativeURL”

flush=“true|false”><jsp:paramname=“attributeName”value=“attributeValue”/>

……</jsp:include>

一個<jsp:include>動作元素可以包含一個或者多個<jsp:param>元素,用于在包含文件時傳遞一些參數(shù)。

25例:(jspinclude.jsp文件中動態(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"%>

<!--動態(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>動作元素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運行結(jié)果:30運行結(jié)果:31JSP中include指令與include動作元素的區(qū)別:(1)include指令(編譯時包含)

include指令是指把其他頁面的Java源碼加進來,和本頁的代碼合并在一起,然后再編譯。(2)<jsp:include>動作元素(運行時包含)該動作元素是指運行時編譯執(zhí)行被包含的頁面代碼,然后再將被包含頁面的運行結(jié)果加入到當前頁面中。32<jsp:forward>用于在服務器端結(jié)束當前頁面的執(zhí)行,并從當前頁面跳轉(zhuǎn)到其他頁面,轉(zhuǎn)向的頁面可是HTML頁面、JSP頁面。其語法格式為:<jsp:forwardpage=“relativeURL”><jsp:paramname=“attributeName”

value=“attributeValue”/>

……</jsp:forward>(2)<jsp:forward>動作元素33<jsp:forward>可以帶參數(shù),也可以不帶參數(shù)。該動作元素的典型應用是用戶登錄,如:進行權(quán)限驗證的頁面,如果驗證通過,可以把頁面跳轉(zhuǎn)到登錄成功的頁面,如果失敗,則跳轉(zhuǎn)到登錄頁面。34<jsp:param>元素主要用來傳遞參數(shù)給JSP程序,其語法格式為:

<jsp:paramname=“attributeName”value=“vlaue”>

其中,name屬性表示傳遞參數(shù)的名稱,value表示該參數(shù)的值。(3)<jsp:param>動作元素35

使用<jsp:param>元素傳遞參數(shù),JSP程序中如何獲取該參數(shù)的值?可以通過request對象的getParameter()方法來獲得:

request.getParameter(“attributeName”)

<jsp:param>元素的使用需要與<jsp:include>、<jsp:forward>等元素配合使用。36(4)<jsp:plugin>動作元素<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>來進行設置。38例:在JSP頁面中加入一個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ì)是一個Java類。在Web應用,采用JavaBean對業(yè)務處理邏輯和數(shù)據(jù)訪問進行封裝,可以使程序代碼的邏輯清晰,可重用性良好。(5)JavaBean動作元素411、<jsp:useBean>用來在JSP頁面中加載JavaBean,其語法格式為:

<jsp:useBeanid=“beanInstanceName”type=“beanType”scope=“page|request|session|application”class=“packageclass”beanName=“name”></useBean>

(5)JavaBean動作元素422、<jsp:setProperty>用來設置已經(jīng)實例化的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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論