JSP基本語法-課件_第1頁
JSP基本語法-課件_第2頁
JSP基本語法-課件_第3頁
JSP基本語法-課件_第4頁
JSP基本語法-課件_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JSP基本語法JSP基本語法ppt課件2021/3/261JSP基本語法JSP基本語法ppt課件2021/3/261JSP基本語法指令元素(DIRECTIVE)例如:<%@pageimport=“java.io.*”%>腳本元素(SCRIPTING)動作元素(ACTION)例如:<jsp:forward>,<jsp:getProperty>,<jsp:include>JSP語法分為三種不同的類型JSP基本語法ppt課件2021/3/262JSP基本語法指令元素(DIRECTIVE)例如:<%@本章學習目標:掌握JSP的腳本元素:“隱藏注釋”、“聲明”、“表達式”掌握JSP的指令元素:page、include了解JSP的指令:taglib掌握JSP的動作元素:<jsp:include>、<jsp:forward>、<jsp:param>掌握include指令和<jsp:include>的區(qū)別掌握JSP的動作元素:<jsp:useBean>、<jsp:getProperty>和<jsp:setProperty>了解JSP的動作元素:<jsp:plugin>JSP基本語法ppt課件2021/3/263本章學習目標:JSP基本語法ppt課件2021/3/263JSP基本語法在傳統(tǒng)的的網頁HTML(*.htm、*.html)中加入Java程序片斷,就構成了JSP網頁(*.JSP)。Web服務器在遇到訪問JSP網頁的請求時,首先執(zhí)行其中的程序片斷,然后將執(zhí)行結果以HTML格式返回給客戶端。JSP基本語法ppt課件2021/3/264JSP基本語法在傳統(tǒng)的的網頁HTML(*.htm、*.htm以下是一段簡單的JSP程序,其中包含了最基本的Java語法及重要的JSP網頁結構。【例4-1】第一個JSP程序helloJSP.jsp<%@pagecontentType="text/html;charset=GBK"%><html><head><title>我的第一個JSP程序?。?!</title></head><body><%!intnumber=1;%><%--這是聲明一個變量--%><%!publicintcount(){ returnnumber++; } /*這是聲明一個方法*/%><% //JSP程序代碼

out.println("HelloJSP!"); out.println("歡迎使用JSP交互式動態(tài)網頁!!");%><br><%="您是第"+count()+"個客人!"%><br></body></html>JSP基本語法JSP基本語法ppt課件2021/3/265以下是一段簡單的JSP程序,其中包含了最基本的Java語法及在瀏覽器中查看此網頁,并刷新,其結果如圖4-1所示。圖4-1helloJSP.jsp執(zhí)行結果JSP基本語法ppt課件2021/3/266在瀏覽器中查看此網頁,并刷新,其結果如圖4-1所示。JSP基JSP基本語法helloJSP.jsp網頁例子的結構page指令<%@pagecontentType="text/html;charset=GBK"%>這行代碼為page指令,page是JSP指令元素的一種批注<%--這是聲明一個變量--%><%/*這是聲明一個方法*/%><%//JSP程序代碼%><%…%>區(qū)塊里的程序代碼,程序執(zhí)行的過程中,這些標識的程序代碼都將被忽略。批注在程序中可有可無,然而為了程序日后便于維護,為程序加上良好的批注,是一個優(yōu)秀的程序員必須養(yǎng)成的習慣。JSP基本語法ppt課件2021/3/267JSP基本語法helloJSP.jsp網頁例子的結構JSP基數據輸出out對象進行指定字符串的輸出。out是JSP中的默認對象,主要用來輸出數據到客戶端網頁上。println則是out對象提供將字符串等數據輸出網頁的方法,接受一個特定類型的參數,并且將參數的內容輸出到網頁上。且其中每一行完整的程序語句,均必須以分號(;)作為結束。<%out.println("HelloJSP");out.println("歡迎使用JSP交互式動態(tài)網頁!!");%>而下面的這行代碼使用的是表達式,也是腳本元素的一部分,在表達式中調用count方法,計算訪問該頁面的人數,并在頁面上輸出結果。

<%="您是第"+count()+"個客人!"%>JSP基本語法ppt課件2021/3/268數據輸出JSP基本語法ppt課件2021/3/268聲明<%!intnumber=1;%><%--這是聲明一個變量--%><%!publicintcount(){ returnnumber++; }%>這段代碼表示的是聲明,這里聲明了一個公有的變量number,還聲明了一個共有的方法count。這里還需要注意的是,聲明是腳本元素的一部分,在后面的4.2節(jié)中將詳細為讀者介紹腳本元素。JSP基本語法ppt課件2021/3/269聲明JSP基本語法ppt課件2021/3/269JSP原始代碼中包含了JSP元素和Template(模板)data兩類

Templatedata指的是JSP引擎不處理的部分,即標記<%……%>以外的部分,例如代碼中的HTML的內容等,這些數據會直接傳送到客戶端的瀏覽器JSP元素則是指將由JSP引擎直接處理的部分,這一部分必須符合JSP語法,否則會導致編譯錯誤。

JSP基本語法ppt課件2021/3/2610JSP原始代碼中包含了JSP元素和Template(模板)JSP基本語法JSP的腳本,即ScriptingElements,包含以下4部分(1)隱藏注釋(HiddenComment)<%--這是客戶端不可見的注釋--%>(2)聲明(Declaration)<%!這是聲明%>(3)腳本段(ScriptLets)<%這是腳本段%>(4)表達式(Expression)<%=這是表達式%>JSP基本語法ppt課件2021/3/2611JSP基本語法JSP的腳本,即ScriptingEleme在JSP中,主要的程序部分就是腳本元素,其中包括三個部分:聲明(Declaration)、表達式

(Expression)和代碼(Scriptlet)。從功能上講,聲明用于聲明一個或多個變量,表達式將是一

個完整的語言表達式,而代碼部分將是一些程序片斷。

三個腳本元素的基本語法都是以一個“<%”開頭,而以一個“%>”結尾的。

聲明的例子:

<%!thisisadeclaration%>

代碼的例子:

<%thisisascriptlet%>

表達式的例子:

<%=thisisanexpression%>

JSP基本語法ppt課件2021/3/2612在JSP中,主要的程序部分就是腳本元素,其中包括三個部分JSP基本語法JSP語法格式如下:

<%--注釋--%>

不發(fā)送到客戶端。<%--commentforserversideonly--%>注意:隱藏注釋內容可以寫任意字符串,但是在注釋內容中不能使用“--%>”,如果要使用“--%>”,則必須寫成“--%\>”JSP基本語法ppt課件2021/3/2613JSP基本語法JSP基本語法ppt課件2021/3/261JSP語句中的隱藏注釋鑲嵌在JSP程序的源代碼中,使用隱藏注釋的目的并不是提醒用戶,而是為了:使程序設計人員和開發(fā)人員閱讀程序方便,增強程序的可讀性。在增強程序可讀性的同時,又顧及程序系統(tǒng)的安全性。如果用戶通過Web瀏覽器查看該JSP頁面,是看不到隱藏注釋的內容的?!半[藏注釋”寫在JSP程序代碼中,但不發(fā)送到客戶端。JSP基本語法ppt課件2021/3/2614JSP語句中的隱藏注釋鑲嵌在JSP程序的源代碼中,使用隱藏注【例4-2】

隱藏注釋hidden-comment.jsp<%@pagecontentType="text/html;charset=GBK"%><html><head><title>隱藏注釋示例</title></head><body><h1>隱藏注釋測試</h1><%--這行注釋將不顯示在客戶端的瀏覽器上--%></body></html>JSP基本語法ppt課件2021/3/2615【例4-2】隱藏注釋hidden-comment.js將此程序執(zhí)行后,可在瀏覽器上看到如圖4-2所示結果。查看源文件,注釋的語句沒有顯示出來。圖4-2hidden-comment.jsp頁面運行效果JSP基本語法ppt課件2021/3/2616將此程序執(zhí)行后,可在瀏覽器上看到如圖4-2所示結果。查看源文JSP基本語法HTML注釋語法格式如下:<!--注釋[<%=表達式%>]-->這種注釋發(fā)送到客戶端,但不直接顯示,在源代碼中可以查看到。JSP基本語法ppt課件2021/3/2617JSP基本語法HTML注釋語法格式如下:JSP基本語法pp【例4-3】HTML注釋html-notes.jsp<%@pagecontentType="text/html;charset=GBK"%><html><head><title>HTML注釋</title></head><body><!--Thistheuserloginscreen-->未顯示上一行的注釋。</body></html>JSP基本語法ppt課件2021/3/2618【例4-3】HTML注釋html-notes.jspJSJSP基本語法將此程序執(zhí)行后,可在瀏覽器上看到如圖4-3所示結果。查看源文件,注釋的語句會顯示出來。圖4-3html-notes.jsp頁面運行效果JSP基本語法ppt課件2021/3/2619JSP基本語法將此程序執(zhí)行后,可在瀏覽器上看到如圖4-3所示【例4-4】比較兩種注釋方式comparison-notes.jspJSP基本語法ppt課件2021/3/2620【例4-4】比較兩種注釋方式comparison-notesJSP基本語法由于Scriptlets包含Java代碼,所以Java中的注釋規(guī)則在Scriptlets中也適用。常用的Java注釋使用“//”表示單行注釋,使用“/**/”表示多行注釋。例如<%……//color表示顏色,通過它來動態(tài)控制顏色。

Stringcolor1="99ccff";……%>也可以這樣<%……/*color表示顏色,通過它來動態(tài)控制顏色。*/Stringcolor1="99ccff";……%>JSP基本語法ppt課件2021/3/2621JSP基本語法由于Scriptlets包含Java代碼,所以JSP基本語法可以在JSP頁中定義方法或變量,這些方法和變量可被同一頁面的其他代碼訪問。在大多數情況下,應該在JavaBean中定義方法,然而有時候在網頁內定義方法可能更方便一些,尤其是當代碼只用于一頁時。JSP語法格式如下:<%!聲明;[聲明;]...%>在JSP里,聲明是一段Java代碼,它用來定義在產生的類文件中類的屬性和方法。聲明后的變量和方法可以在JSP的任意地方使用,可以聲明方法,也可以聲明變量。注意:聲明并不在JSP頁內產生任何輸出。它們僅僅用于定義,而不生成輸出結果。要生成輸出結果,應該用JSP表達式或腳本段JSP基本語法ppt課件2021/3/2622JSP基本語法可以在JSP頁中定義方法或變量,這些方法和變量在聲明方法或變量時,應該注意以下方面:聲明必須以“;”結尾,在這一點上JSP語法中的Scriptlet語句有同樣的規(guī)則,但是JSP語法中的表達式就不能以“;”結尾。可以直接使用在<%@page%>中被包含進來的已經聲明的變量和方法,不需要對它們重新進行聲明。一個聲明僅在一個頁面中有效,對于一些在每個頁面都用得到的聲明,最好把它們寫成一個單獨的文件,然后用<%@include%>或<jsp:include>語句把該文件及文件中的各個元素包含進來。由于聲明不會有任何輸出,因此它們往往和JSP表達式或Scriptlet結合在一起使用。JSP基本語法ppt課件2021/3/2623在聲明方法或變量時,應該注意以下方面:JSP基本語法pptJSP的變量可以分為局部變量和全局變量,在JSP中聲明變量時,要注意變量的定義域。在程序片斷中聲明的變量,即在<%%>中聲明的變量是JSP的局部變量,它們對外部函數是不可見的。在<%!%>中聲明的變量是全局變量,這種變量在整個JSP頁面內都有效。因為JSP引擎將JSP頁面編譯成Java文件時,將這些變量做為類的成員變量,這些變量的內存空間直到服務器關閉后才釋放。在<%!%>中聲明的方法,該方法在整個JSP頁面內有效,但是在該方法內定義的變量只在該方法內有效。JSP基本語法ppt課件2021/3/2624JSP的變量可以分為局部變量和全局變量,在JSP中聲明變量時【例4-5】比較局部變量和全局變量的不同之處wellcome.jsp【例4-6】方法的聲明dec-method.jspJSP基本語法ppt課件2021/3/2625【例4-5】比較局部變量和全局變量的不同之處wellcomeJSP基本語法JSP語法格式如下:<%Scriptlets%>腳本段內還能定義局部變量。注意:腳本段內不能定義方法,這與聲明不同,這是因為JSP引擎會把腳本段內的代碼放到Servlet內的方法內,而方法是不能被嵌套定義的。如果要使用“%>”,則必須寫成“%\>”JSP基本語法ppt課件2021/3/2626JSP基本語法JSP語法格式如下:JSP基本語法ppt課一個Scriptlet能夠包含多個JSP語句、方法、變量、表達式。有了Scriptlet,用戶可以進行以下操作。聲明將要用到的變量或方法。編寫JSP表達式。使用任何隱含的對象和任何用<jsp:useBean>聲明過的對象。編寫JSP語句(如果使用Java語言,這些語句必須遵從JavaLanguageSpecification,即Java語言規(guī)范)。填寫任何文本和HTML標記,注意JSP元素必須在Scriptlet之外。JSP基本語法ppt課件2021/3/2627一個Scriptlet能夠包含多個JSP語句、方法、變量、表【例4-7】程序scriptlets.jsp混合了靜態(tài)HTML代碼和Scriptlet。注意:如果要在Scriptlet內部使用字符“%>”,必須寫成“%\>”。腳本段內不能定義方法,這與聲明不同,這是因為JSP引擎會把腳本段內的代碼放到Servlet內的方法內,而方法是不能被嵌套定義的。JSP基本語法ppt課件2021/3/2628【例4-7】程序scriptlets.jsp混合了靜態(tài)HTMJSP基本語法用于在頁面上輸出信息,語法格式如下:<%=JavaExpression%>計算Java表達式得到的結果被轉換成字符串,然后插入到頁面。表達式值頁面被請求時進行,例如:<%=newjava.util.Date()%>//輸出系統(tǒng)當前時間<%="Hello"%>//輸出Hello<%=1+3+5%>//輸出9表達式的值在執(zhí)行后會被自動轉化為字符串,然后顯示出來。JSP基本語法ppt課件2021/3/2629JSP基本語法用于在頁面上輸出信息,語法格式如下:JSP基本在JSP頁面中使用表達式時請注意以下兩點:不能用分號“;”作為表達式的結束符,這一點與Scriptlet不同,同樣的表達式用在Scriptlet中時,就需要以分號來作為一句Scriptlet語句的結尾。有時候表達式也能作為其他JSP元素的屬性值,一個表達式能夠變得很復雜,它可能由一個或者多個表達式組成,這些表達式的順序是從左到右。JSP基本語法ppt課件2021/3/2630在JSP頁面中使用表達式時請注意以下兩點:JSP基本語法p注意:JSP的表達式中沒有分號,除非在加引號的字符串部分才使用分號。如Currenttime:<%=newjava.util.Date();%>表達式實際上是被轉換成out.println()方法中的內容。如:<%="helloworld"%>相當于JSP頁面中的:<%out.println("helloworld");%>錯誤JSP基本語法ppt課件2021/3/2631注意:錯誤JSP基本語法ppt課件2021/3/2631JSP基本語法JSP有三個指令元素,page,include和taglib。這些指令元素是針對JSP引擎的,并不會直接產生任何看得見的輸出。它們包含在“<%@%>”里。兩個主要的指令是page與include,taglib指令只有在使用標簽庫編程時才使用。JSP基本語法ppt課件2021/3/2632JSP基本語法JSP有三個指令元素,page,includeJSP基本語法“Page”指令用于定義JSP文件中的全局屬性。

JSP語法格式如下:<%@page[language="java"][extends="package.class"][import="{package.class|package.*},..."][session="true|false"][buffer="none|8kb|sizekb"]

JSP基本語法ppt課件2021/3/2633JSP基本語法“Page”指令用于定義JSP文件中的全局屬性JSP基本語法[autoFlush="true|false"]

[isThreadSafe="true|false"]

[info="text"]

[errorPage="relativeURL"][contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"][isErrorPage="true|false"]%>

JSP基本語法ppt課件2021/3/2634JSP基本語法[autoFlush="true|falLanguage屬性

language屬性用來設定編寫JSP網頁使用的程序語法,目前處理JSP網頁服務器中的JSP引擎都只支持Java,因此這個屬性的默認值為Java。Extends屬性

extends=“package.class”,extends屬性定義了由JSP頁面產生的servlet的父類,一般來說,這個屬性不會用到,但是當需要實現一些特殊功能時,也是比較方便的。Import屬性

import屬性用來指定所要加載的非預設Java包或類。

默認加載的包類有java.lang.*、javax.servlet.*、javax.servlet.jsp.*和javax.servlet.http.*

載入非預設包,如 <%@pageimport="java.util.*,java.io.*"%>

加載了2個包java.util.*和java.io.*,以逗號作分隔。JSP基本語法ppt課件2021/3/2635Language屬性JSP基本語法ppt課件2021/3/Session屬性

session屬性的屬性值可為true或false,用來設定JSP網頁是否使用內建的session對象與功能,默認值為true。Session對象的類型是javax.servlet.http.HttpSession。Buffer屬性設定JSP網頁所使用的緩沖區(qū)大小。緩沖區(qū)是用來暫存一些要傳送給客戶端的數據,默認值為8kb。設定值none,表示不使用緩沖區(qū)的功能,直接將服務器響應的輸出寫到客戶端的瀏覽器上。設定緩沖區(qū)的大小值必須大于8kb: <%@pagebuffer="24kb"%>autoFlush

說確定是否自動刷新輸出緩沖,如果設成true,則當輸出緩沖區(qū)滿的時候,刷新緩沖區(qū)而不是拋出一個異常JSP基本語法ppt課件2021/3/2636Session屬性JSP基本語法ppt課件2021/3/2isThreadSafe屬性

isThreadSafe屬性的屬性值可為true或false缺省值是true,用來設置JSP文件是否能多線程使用。如果被設置為true,那么多個客戶請求發(fā)向JSP引擎時,可以一次被處理。JSP程序員要處理同步時共享的狀態(tài),以保證同步時確實是安全的。如果設置成false,則采用單線程模式控制客戶端訪問該頁。Info屬性設定一個代表當前這個JSP網頁的信息。設定內容可在程序中使用getServletInfo()方法來取得。設定info屬性: <%@pageinfo=“網頁信息說明…”%>JSP基本語法ppt課件2021/3/2637isThreadSafe屬性JSP基本語法ppt課件202contentType=“mineType”

定義MIME類型和JSP網頁的編碼方式ErrorPage設定當前網頁產生例外錯誤時,可取得與顯示這個例外錯誤信息的另一個網頁地址:

<%@pageerrorPage="error.jsp"%>當目前的網頁發(fā)生例外錯誤時,網頁被重定向到error.jsp,error.jsp中可直接使用exception對象來獲取相關的錯誤信息。isErrorPage用來設定網頁是否可顯示其它網頁所產生的例外信息,此屬性的默認值為false。JSP基本語法ppt課件2021/3/2638contentType=“mineType”JSP基本語法“<%@page%>”指令作用于整個JSP頁面,同樣包括靜態(tài)的包含文件。但是“<%@page%>”指令不能作用于動態(tài)的包含文件,比如“<jsp:include>”??梢栽谝粋€頁面中用上多個“<%@page%>”指令,但是其中的屬性只能用一次,不過也有例外,那就是import屬性。因為import屬性和Java中的import語句類似(參照JavaLanguage,import語句引入得是Java語言中的類),所以此屬性就能多用幾次。無論把“<%@page%>”指令放在JSP的文件的哪個地方,它的作用范圍都是整個JSP頁面。不過,為了JSP程序的可讀性,以及好的編程習慣,最好還是把它放在JSP文件的頂部。JSP基本語法ppt課件2021/3/2639“<%@page%>”指令作用于整個JSP頁面,同樣包括【例4-8】中文編碼示范setCharset.jsp?!纠?-9】setInfo.jsp簡單示范了info屬性的設置方式?!纠?-10】說明了出錯頁面pageError.jsp如何從error.jsp取得發(fā)生的錯誤信息。JSP基本語法ppt課件2021/3/2640【例4-8】中文編碼示范setCharset.jsp。JSJSP基本語法include指令:向當前頁中插入一個靜態(tài)文件的內容。JSP語法格式如下:<%@includefile="relativeURL"%>或<%@includefile="相對位置"%>include指令將會在JSP編譯時插入被包含文件的內容,被包含的文件內容常常是代碼段,因此代碼片斷的后綴名最好時以“f”(fragment的第一個字母)結尾,例如,“.htmlf”、”.jspf”等,這么做的好處是避免JSP編譯器對該文件內容進行語法檢查。如果要改變的內容,不需重新編譯JSP文件,它的執(zhí)行效率高。JSP基本語法ppt課件2021/3/2641JSP基本語法include指令:向當前頁中插入一個靜態(tài)文件include指令將會在JSP編譯時插入一個文件,而這個包含過程是靜態(tài)的。所謂靜態(tài)的是指file屬性值不能是一個變量,例如,下面為file屬性賦值方式是不合法的。<%Stringurl=“header.htmlf”;%><%@includefile=“<%=url%>”%>也不可以在file所指定的文件后添加任何參數,下面的這行代碼是不合法的。<%@includefile=“query.jsp?name=browser”%>JSP基本語法ppt課件2021/3/2642include指令將會在JSP編譯時插入一個文件,而這個包含由于使用include指令,可以把一個復雜的JSP頁面分成若干簡單的部分,這樣大大增加了JSP頁面的管理性。當要對頁面進行更改時,只需要更改對應的部分就可以了。被包含文件可以是JSP文件、HTML文件、文本文件、inc文件等。如果包含的文件包含可執(zhí)行代碼,那么這個包含的文件的代碼將會被執(zhí)行。在通常情況下把頁面分成多個區(qū),典型的JSP分區(qū)方法如圖所示。JSP基本語法ppt課件2021/3/2643由于使用include指令,可以把一個復雜的JSP頁面分成若頭部Header.jsp左邊side.jsp菜單頁面主體:body.jsp功能區(qū)尾部:footer.jsp版權聲明等JSP基本語法ppt課件2021/3/2644頭部Header.jsp左邊side.jsp菜單頁面主體:b【例4-11】文件include.jsp中靜態(tài)包含了四個文件JSP基本語法ppt課件2021/3/2645【例4-11】文件include.jsp中靜態(tài)包含了四個文JSP基本語法taglib指令是能夠讓用戶自定義新的標簽。JSP語法<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>用于引入定制標簽庫JSP基本語法ppt課件2021/3/2646JSP基本語法taglib指令是能夠讓用戶自定義新的標簽。JJSP基本語法屬性1.uri="URIToTagLibrary"UniformResourceIdentifier(URI)根據標簽的前綴對自定義的標簽進行唯一的命名,URI可以是以下的內容:一個相對或絕對的路徑

可以是標簽庫描述文件JSP基本語法ppt課件2021/3/2647JSP基本語法屬性JSP基本語法ppt課件2021/3/22.prefix="tagPrefix"表示標簽在JSP中的名稱。比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。注意:(1)必須在使用自定義標簽之前使用<%@tag%>指令。

(2)一個頁面中多次使用taglib指令,但是前綴只能使用一次。

(3)請不要用jsp,jspx,java,javax,servlet,sun,和sunw做為你的前綴,這些已被Sun公司聲明保留。JSP基本語法ppt課件2021/3/26482.prefix="tagPrefix"JSP基本語法p以上指令,聲明此JSP文件使用了自定義標簽庫,同時引用標簽庫,并且指定了它們的標簽前綴。例如,使用JSTL中數據庫標簽庫的例子:<%@tagliburi=""prefix=“sql"%> <sql:queryvar=“books”>select*frombooks </sql:query>JSP基本語法ppt課件2021/3/2649以上指令,聲明此JSP文件使用了自定義標簽庫,同時引JSP基動作語法包括<jsp:forward>,<jsp:include>,<jsp:param>,<jsp:plugin>,

<jsp:getProperty>,<jsp:setProperty>和<jsp:useBean>。JSP基本語法JSP基本語法ppt課件2021/3/2650動作語法包括<jsp:forward>,<jsp:inclu分類項目功能說明JavaBean<jsp:useBean>使用JavaBean<jsp:setProperty>設定JavaBean的屬性值<jsp:getProperty>取得JavaBean的屬性值<jsp:param>設定傳送參數一般元素<jsp:plugin>載入JavaApplet或JavaBean<jsp:forward>網頁重新導向<jsp:include>載入HTML或JSP文件XML(2.0新增)<jsp:attribute>設定卷標屬性<jsp:body>動態(tài)設定XML卷標主體<jsp:element>動態(tài)設定XML卷標JSP基本語法ppt課件2021/3/2651分類項目功能說明JavaBean<jsp:useBean>JSP基本語法包含一個靜態(tài)或動態(tài)文件.

JSP語法格式如下:1.<jsp:includepage="{relativeURL|<%=expression%>}"

flush="true"/><jsp:include>的屬性1.page="{relativeURL|<%=expression%>}"

參數為一相對路徑,或者是代表相對路徑的表達式。

2.flush=“true”

表示緩沖區(qū)可用,緩沖區(qū)不可用時設置為false。

JSP基本語法ppt課件2021/3/2652JSP基本語法包含一個靜態(tài)或動態(tài)文件.<jsp:inclu例:下面的例子表示將hello.jsp包含到當前的頁面中來。<jsp:includepage=“hello.jsp”/>下面的例子表示將login.jsp包含到當前的頁面中來,同時設置參數username=myvalue:<jsp:includepage=“l(fā)ogin.jsp”

flush="true"/><jsp:paramname=“userName"value=“myValue"/></jsp:include>JSP基本語法ppt課件2021/3/2653例:下面的例子表示將hello.jsp包含到當前的頁面中來。<jsp:paramname=“paraName”value=“paraValue”/><jsp:param>子句能讓你傳遞一個或多個參數給動態(tài)頁面。<jsp:include>標簽允許你包含動態(tài)文件和靜態(tài)文件,但是這兩種包含文件的結果是不同的,如果文件僅僅是靜態(tài)文件,那么這種包含僅僅是把包含文件的內容加到JSP文件中去,這個被包含的文件不會被JSP編譯執(zhí)行。相反地,如果被包含文件是動態(tài)文件,那么這個被包含文件會被JSP編譯器執(zhí)行。如果被包含文件是動態(tài)的,那么還可以用<jsp:param>傳遞參數名和參數值。JSP基本語法ppt課件2021/3/2654<jsp:paramname=“paraName”valJSP中include指令與include動作的區(qū)別簡單說來:include指令是指把其它頁面的JAVA代碼(源碼)加進來,跟本頁面的代碼合并在一起,相當于把源碼從那個頁面復制到本頁面中來,然后再編譯。并且由于本頁面編譯時已經包含了別的文件的源碼,所以以后其它頁面更改時,本頁面并不理會,因為已經編譯過了。<jsp:include>動作是指兩個頁面的代碼運行完以后,再把包含的那個頁面運行后的HTML結果頁面加到本頁面運行后的HTML結果頁面中來。所以是運行時包含,并且還可以傳遞參數給被包含的頁面。JSP基本語法ppt課件2021/3/2655JSP中include指令與include動作的區(qū)別簡單說來【例4-12】通過一個具體的例子來闡述<jsp:include>動作元素的用法。文件jsp_include.jsp靜態(tài)包含文件static.html,動態(tài)包含action.jsp。JSP基本語法ppt課件2021/3/2656【例4-12】通過一個具體的例子來闡述<jsp:inclu和<%@include%>指令不同的是,<jsp:include>包含的內容可以是動態(tài)改變的,它在執(zhí)行時才確定,而前者包含的內容是固定不變的,一經編譯,就不能改變表兩種include的異同語法狀態(tài)對象描述<%@includefile=“”%>編譯時包含靜態(tài)JSP引擎將對所包含的文件進行語法分析<jsp:includepage=“”/>運行時包含靜態(tài)和動態(tài)JSP引擎將不對所包含的文件進行語法分析JSP基本語法ppt課件2021/3/2657和<%@include%>指令不同的是,<jsp:incl<jsp:forward>主要用于將客戶端的請求從一個JSP頁面跳轉到另一個JSP頁面。JSP語法格式如下:1.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>2.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}><jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>[<jsp:param…/>]</jsp:forward>(“[<jsp:param…/>]”指可以有多個“<jsp:param/>”標記。)4.4.2<jsp:forward>JSP基本語法ppt課件2021/3/2658<jsp:forward>主要用于將客戶端的請求從一個JSJSP基本語法1、page="{relativeURL|<%=expression%>}"

這里是一個表達式或是一個字符串用于說明你將要定向的文件或URL。這個文件可以是JSP,程序段,或者其它能夠處理request對象的文件(如asp,cgi,php)。

JSP基本語法ppt課件2021/3/2659JSP基本語法1、page="{relativeURL|2.<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>向一個動態(tài)文件發(fā)送一個或多個參數,這個文件必須是動態(tài)文件。如果想傳遞多個參數,可以在一個JSP文件中使用多個“<jsp:param>”;“name”指定參數名,“value”指定參數值。JSP基本語法ppt課件2021/3/26602.<jsp:paramname="parameterNaJSP基本語法“<jsp:forward>”標簽從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象。“<jsp:forward>”標簽以后的代碼,將不能執(zhí)行。執(zhí)行時查看瀏覽器地址欄,跳轉后地址并沒有發(fā)生變化。JSP基本語法ppt課件2021/3/2661JSP基本語法“<jsp:forward>”標簽從一個JSP【例4-13】usingForward.jsp重定向到頁面forwardTo.jsp可以很清楚地了解<jsp:forward>操作元素的使用方法與功能。JSP基本語法ppt課件2021/3/2662【例4-13】usingForward.jsp重定向到頁面<jsp:forward>操作典型的使用就是登錄。如進行權限驗證的頁面。當驗證通過后,就把頁面forword到登錄成功的頁面;當驗證不通過時,就把頁面forword到登錄頁面。【例4-14】login.jsp是用戶登錄界面,checklogin.jsp是登錄驗證界面,如果驗證成功,它把頁面forword到success.jsp頁面,如果不成功,它把頁面forword到login.jsp頁面進行重新驗證。JSP基本語法ppt課件2021/3/2663<jsp:forward>操作典型的使用就是登錄。如進行權限JSP基本語法<jsp:param>傳遞參數給JSP程序。語法:<jsp:paramname=“參數名稱”value="參數值"/><jsp:param>元素使用時必須要設定其name屬性表示傳遞參數的名稱,value屬性用來設定該參數的值。JSP操作元素和HTML不同,設定元素的屬性時必須加上雙引號

""。在JSP程序中以如下的程序代碼來獲取該參數的值。request.getParameter(“參數名稱");<jsp:param>操作元素的使用必須配合<jsp:include>、<jsp:forward>以及<jsp:plugin>等元素。JSP基本語法ppt課件2021/3/2664JSP基本語法<jsp:param>JSP基本語法ppt課JSP基本語法所謂JavaBean,其實是一個Java類,封裝了一些常用的復雜的操作,一般可以使用JavaBean進行數據庫連接、實現業(yè)務邏輯等,可以使得前臺顯示和后臺業(yè)務邏輯更好地分離。使用JavaBean有利于代碼重用,提高程序結構清晰性,這些Java類放在“WEB-INF/classes”目錄內,可以使用<jsp:useBean>進行實例化,并指定一個名字和作用域。

JSP語法格式如下:<jsp:useBeanid=“Bean_name"scope=“scope_value”class=“class_name”beanName=“ser_”type=“class_or_interface_name”>

optionalpropertiestags<jsp:useBean>

JSP基本語法ppt課件2021/3/2665JSP基本語法所謂JavaBean,其實是一個Java類,封屬性用法id命名引用該Bean的變量。如果能夠找到id和scope相同的Bean實例,jsp:useBean動作將使用已有的Bean實例而不是創(chuàng)建新的實例class指定Bean的完整包名scope指定Bean在哪種上下文內可用,可以取page,request,session和application四個值之一?

page(是默認值)表示該Bean只在當前頁面內可用(保存在當前頁面的PageContext內)?

request表示該Bean在當前的客戶請求內有效(保存在ServletRequest對象內)?

session表示該Bean對當前HttpSession內的所有頁面都有效?

application表示該Bean對所有具有相同ServletContext的頁面都有效scope之所以很重要,是因為jsp:useBean只有在不存在具有相同id和scope的對象時才會實例化新的對象;如果已有id和scope都相同的對象則直接使用已有的對象,此時jsp:useBean開始標記和結束標記之間的任何內容都將被忽略type指定引用該對象的變量的類型,它必須是Bean類的名字、超類名字、該類所實現的接口名字之一。請記住變量的名字是由id屬性指定的beanName指定Bean的名字。如果提供了type屬性和beanName屬性,允許省略class屬性JSP基本語法ppt課件2021/3/2666屬性用法id命名引用該Bean的變量。如果能JSP基本語法1.id="bean_Name"在所定義的范圍中確認Bean的變量,使之能在后面的程序中使用此變量名來分辨不同的Bean,這個變量名對大小寫敏感,必須符合所使用的腳本語言的規(guī)定,這個規(guī)定在JavaLanguage規(guī)范已經寫明。如果Bean已經在別的“<jsp:useBean>”標記中創(chuàng)建,則當使用這個已經創(chuàng)建過Bean時,id的值必須與原來的那個id值一致;否則則意味著創(chuàng)建了同一個類的兩個不同的對象。

JSP基本語法ppt課件2021/3/2667JSP基本語法JSP基本語法ppt課件2021/3/2662.scope="page|request|session|application"Bean存在的范圍以及id變量名的有效范圍。缺省值是page,以下是詳細說明:

能在包含“<jsp:useBean>”元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用這個Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應或轉到另一個文件為止。JSP基本語法ppt課件2021/3/26682.scope="page|request|sessrequest-在任何執(zhí)行相同請求的JSP文件中使用這個Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應或轉到另一個文件為止。能夠使用Request對象訪問這個Bean,比如request.getAttribute(bean_Name)。其中bean_Name是Bean實例化的名字。session-從創(chuàng)建Bean開始,就能在任何使用相同session的JSP文件中使用這個Bean。這個Bean存在于整個Session生存周期內,任何在分享此Session的JSP文件都能使用同一Bean。注意在創(chuàng)建這個Bean的JSP文件中“<%@page%>”指令中必須指定“session=”true“”,否則可能會導致致命錯誤發(fā)生??梢允褂胹ession對象訪問Bean。session.getValue(bean_Name);其中bean_Name是Bean實例化的名字。JSP基本語法ppt課件2021/3/2669request-在任何執(zhí)行相同請求的JSP文件中使用這個application-從創(chuàng)建Bean開始,就能在任何使用相同application的JSP文件中使用Bean。這個Bean存在于整個application生存周期內,任何在分享此application的Jsp文件都能使用同一Bean。能夠使用application對象訪問這個Bean,比如application.getAttribute(bean_Name)。其中bean_Name是Bean實例化的名字。

JSP基本語法ppt課件2021/3/2670application-從創(chuàng)建Bean開始,就能在任何使3.class="package.class"使用new關鍵字以及class構造器從一個class中實例化一個bean。這個class不能是抽象的,必須有一個公用的,沒有參數的構造器。這個package的名字區(qū)別大小寫。如果該Bean不在作用域內,則將它實例化。也可以使用type屬性并結合class屬性來指定要將何種類型的Bean實例化。如果使用類屬性,不要同時指定Bean_name屬性。JSP基本語法ppt課件2021/3/26713.class="package.class"JSP基本語<jsp:useBeanid=“customer“class=“com.myco.Customer”/><%/**實例化bean:com.myco.Customer,并把對象存放在頁面上下文(PageContext)中,*該實例對象只能在當前頁面通過customer訪問*/%>…<%=customer.getName()%>JSP基本語法ppt課件2021/3/2672<jsp:useBeanid=“customer“cl4.beanName.class文件的名稱、Bean包名或者包含該Bean的串行化文件(.ser文件)。僅當Bean不存在于指定的作用域時,才使用此屬性。還必須使用類型屬性來指定要將何種類型的Bean實例化。BeanName屬性不能與class屬性一起使用。此值區(qū)分大小寫。JSP基本語法ppt課件2021/3/26734.beanNameJSP基本語法ppt課件2021/35.type如果此屬性與class或者beanName屬性一起使用,它指定要實例化的Bean的類或接口。如果type屬性未能與class或者beanName屬性一起使用,則不將新的Bean實例化,而且type屬性指的是已在作用域內的Bean。此值區(qū)分大小寫。JSP基本語法ppt課件2021/3/26745.typeJSP基本語法ppt課件2021/3/26746.Propertiestags<jsp:setProperty>標記列表,它設置實例化的Bean的初始特性值。<jsp:useBeanid=“connection“class=“com.myco.myapp.Connectionscope=“session”><jsp:setProperty

name=“connection”property=“timeout”value=“33”><jsp:setProperty

name=“connection”property=“maxUsers”value=“100”></jsp:useBean>JSP基本語法ppt課件2021/3/26756.PropertiestagsJSP基本語法ppt課JSP基本語法設置Bean的屬性值.

JSP語法格式如下:<jsp:setProperty

name="beanInstanceName"

{

property="*"

|property="propertyName“[param="parameterName"]|

property="propertyName"value="{string|<%=expression%>}"

}/>JSP基本語法ppt課件2021/3/2676JSP基本語法設置Bean的屬性值.JSP基本語法ppt屬性用法name該屬性是必需的,它表示要設置的屬性是哪個Beanproperty該屬性是必需的,它表示要設置哪個屬性。有一個特殊用法:如果property的值是“*”,表示所有名字和Bean屬性名字匹配的請求參數都將被傳遞給相應屬性的set方法value該屬性是可選的,它用來指定Bean屬性的值。字符串數據會在目標類中通過標準的valueOf方法自動轉換成數字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如true)通過Boolean.valueOf轉換,int和Integer類型的屬性值通過Integer.valueOf轉換。value和param不能同時使用,但可以使用其中任意一個param該屬性是可選的,它指定用哪個請求參數作為Bean屬性的值。如果當前請求沒有參數,則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,可以讓Bean自己提供默認屬性值,只有當請求參數明確指定了新值時才修改默認屬性值JSP基本語法ppt課件2021/3/2677屬性用法name該屬性是必需的,它表示要設置JSP基本語法1.name="beanInstanceName"該屬性對應<jsp:useBean>中的id,因此name要和<jsp:useBean>的id一樣。2.property="*"這是一種設置Bean屬性的快捷方式。儲存用戶在JSP輸入的所有值,用于匹配Bean中的屬性。JSP解釋器將把系統(tǒng)Request對象中的參數一個一個的列舉出來,檢查這個JavaBean的屬性是否和Request對象中的參數有相同的名稱。如果有,就自動將Request對象中參數值傳遞給相應的JavaBean屬性。在Bean中,屬性的名字、類型必須和request對象中的參數名稱相匹配。由于表單中傳過來的數據類型都是String類型的,JSP內在機制會把這些參數轉化成Bean屬性對應類型。JSP基本語法ppt課件2021/3/2678JSP基本語法1.name="beanInstanceNam

property="propertyName"[param="parameterName"]用一個參數值來指定Bean中的一個屬性值,一般情況下是從request對象中獲得的。其中property指定Bean的屬性名,param指定request中的參數名。在Bean屬性的名字和request中參數名字不同時使用這個方法。Param指定request中的參數名。JSP基本語法ppt課件2021/3/26

溫馨提示

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

評論

0/150

提交評論