版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. 其他 HTML 語(yǔ)言 其他 HTML 語(yǔ)言 % for ( int i=0; i 你好 你好 你好 *.jsp*.java*.classrequestresponse執(zhí)行jsp parserJSDKservletservlet 分析器 執(zhí)行過(guò)程執(zhí)行過(guò)程查找對(duì)應(yīng)的JSP文件是否存在YN是否是修改或創(chuàng)建后第一次調(diào)用Y調(diào)用Jsp Parser將其編譯成Servlet程序調(diào)用JSDK將對(duì)應(yīng)的Servlet程序編譯成Servlet字節(jié)碼執(zhí)行(若未載入則先載入)已有的對(duì)應(yīng)的Java字節(jié)碼N 你好,今天是 號(hào), 星期 import java.util.*;response.setContentType(
2、text/html; charset=gb2312);out = pageContext.getOut();out.write(“rnrnrn rn你好,今天是rn); Date today=new Date();out.print(today.getDate();out.write(號(hào),星期);out.print(today.getDay();out.write( rn rnrn );JSP文件servlet文件 JSP原始代碼中包含了原始代碼中包含了JSP元素和元素和Template(模板模板) data兩類(lèi)兩類(lèi) Template data指的是指的是JSP引擎不處理的部分引擎不處理的部分
3、,即,即標(biāo)記標(biāo)記以外的部分,例如代碼中的以外的部分,例如代碼中的HTML的內(nèi)容等的內(nèi)容等 ,這些數(shù)據(jù)會(huì)直接傳送到客戶(hù)這些數(shù)據(jù)會(huì)直接傳送到客戶(hù)端的瀏覽器端的瀏覽器 JSPJSP元素則是指將由元素則是指將由JSPJSP引擎直接處理的部分,引擎直接處理的部分,這一部分必須符合這一部分必須符合JSPJSP語(yǔ)法,否則會(huì)導(dǎo)致編譯語(yǔ)法,否則會(huì)導(dǎo)致編譯錯(cuò)誤。錯(cuò)誤。 Hi-JSP實(shí)驗(yàn)實(shí)驗(yàn) Template dataJSP元素 JSP語(yǔ)法分為三種不同的類(lèi)型語(yǔ)法分為三種不同的類(lèi)型 編譯器指令(DIRECTIVE) 例如: 腳本語(yǔ)法(SCRIPTING)動(dòng)作語(yǔ)法(ACTION) 例如: , 腳本語(yǔ)法包括腳本語(yǔ)法包括“
4、HTML注釋”:“隱藏注釋”:“聲明”“表達(dá)式”“腳本段” 編譯器指令包括編譯器指令包括“包含指令包含指令”, “頁(yè)指令頁(yè)指令”和和“taglib指令指令” 它們包含在它們包含在“”卷標(biāo)里。卷標(biāo)里。 兩個(gè)主要的指令是兩個(gè)主要的指令是page與與include。 動(dòng)作語(yǔ)法包括動(dòng)作語(yǔ)法包括, ,和和。 JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: !- comment - 或或 !- 注釋注釋 - 這種注釋發(fā)送到客戶(hù)端,但不直接顯示,在這種注釋發(fā)送到客戶(hù)端,但不直接顯示,在源代碼中可以查看到。源代碼中可以查看到。 HTML注釋注釋 未顯示上一行的注釋。未顯示上一行的注釋。要多加練習(xí)要多加練習(xí) !-This
5、 page was loaded on - 在源文件中包括當(dāng)前時(shí)間。在源文件中包括當(dāng)前時(shí)間。 JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: 不發(fā)送到客戶(hù)端。不發(fā)送到客戶(hù)端。 A Comment Test A Test of Comments JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: 或或 test2.4.jsp 用于在頁(yè)面上輸出信息,語(yǔ)法格式如下:用于在頁(yè)面上輸出信息,語(yǔ)法格式如下: 或或 test a=b=c= JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: 或或 test %condition=1;switch(condition)case 0:out.println(You must select condi
6、tion 0!+); break; case 1: out.println(You must select condition 1!+); break; case 2: out.println(You must select condition 2!+); break; default: out.println(Your select not in 0,1,2,select again!+);% 轉(zhuǎn)義符轉(zhuǎn)義符: 雙引號(hào)雙引號(hào) “ ,單引號(hào)單引號(hào),反斜杠,反斜杠,回車(chē),回車(chē)r,換行換行n,制表符制表符t,退格退格 b includeinclude指令:向當(dāng)前頁(yè)中插入一個(gè)靜態(tài)文件的內(nèi)容。指令:向當(dāng)
7、前頁(yè)中插入一個(gè)靜態(tài)文件的內(nèi)容。 JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: % % 或或 % % html testtest body =white The current date and time are The current date and time are % include file=“peixun2.6.1. % % page import=java.util. % %=(new java.util.Date() ). () % “PagePage”指令用于定義指令用于定義JSPJSP文件中的全局屬性。文件中的全局屬性。JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下:% % 屬性
8、:屬性:1 1language=java language=java 聲明腳本語(yǔ)言的種類(lèi),目前只能用聲明腳本語(yǔ)言的種類(lèi),目前只能用 java java 。2 . i m p o r t = p a c k a g e . c l a s s | 2 . i m p o r t = p a c k a g e . c l a s s | package.package.* * ,. ,. 需要導(dǎo)入的需要導(dǎo)入的JavaJava包的列表,這些包作用于程序包的列表,這些包作用于程序段,表達(dá)式,以及聲明。下面的包在段,表達(dá)式,以及聲明。下面的包在JSPJSP編譯編譯時(shí)已經(jīng)導(dǎo)入了,所以就不需要再指明了:時(shí)
9、已經(jīng)導(dǎo)入了,所以就不需要再指明了: java.lang.java.lang.* * javaxjavax. .servletservlet. .* * javaxjavax. .servletservlet. .jspjsp. .* * javaxjavax. .servletservlet.http.http.* * 3 3errorPageerrorPage=relativeURLrelativeURL 設(shè)置處理異常事件的設(shè)置處理異常事件的JSPJSP文件。文件。 4 4isErrorPageisErrorPage=true | false =true | false 設(shè)置此頁(yè)是否為出錯(cuò)頁(yè)
10、,如果被設(shè)置為設(shè)置此頁(yè)是否為出錯(cuò)頁(yè),如果被設(shè)置為true,true,你就能使用你就能使用exceptionexception對(duì)象對(duì)象 “% ”page %”指令作用于整個(gè)指令作用于整個(gè)JSPJSP頁(yè)面,同樣包括頁(yè)面,同樣包括靜態(tài)的包含文件。但是靜態(tài)的包含文件。但是“% ”page %”指令不能作用指令不能作用于動(dòng)態(tài)的包含文件,比如于動(dòng)態(tài)的包含文件,比如 “ :include”。 可以在一個(gè)頁(yè)面中用上多個(gè)可以在一個(gè)頁(yè)面中用上多個(gè)“% ”page %”指令,但指令,但是其中的屬性只能用一次,不過(guò)也有例外,那就是是其中的屬性只能用一次,不過(guò)也有例外,那就是importimport屬性。因?yàn)閷傩?。因?yàn)?/p>
11、importimport屬性和屬性和JavaJava中的中的importimport語(yǔ)句語(yǔ)句類(lèi)似類(lèi)似( (參照參照J(rèn)ava LanguageJava Language,importimport語(yǔ)句引入得是語(yǔ)句引入得是JavaJava語(yǔ)言中的類(lèi)語(yǔ)言中的類(lèi)) ),所以此屬性就能多用幾次。,所以此屬性就能多用幾次。 無(wú)論把無(wú)論把“% ”page %”指令放在指令放在JSPJSP的文件的哪個(gè)地的文件的哪個(gè)地方,它的作用范圍都是整個(gè)方,它的作用范圍都是整個(gè)JSPJSP頁(yè)面。不過(guò),為了頁(yè)面。不過(guò),為了JSPJSP程序的可讀性,以及好的編程習(xí)慣,最好還是把它放程序的可讀性,以及好的編程習(xí)慣,最好還是把它放在
12、在JSPJSP文件的頂部。文件的頂部。% % % page buffer=24kb =false % % page % test3test3Test for using Page.Test for using Page. JSPJSP語(yǔ)法語(yǔ)法% % 用于引入定制標(biāo)簽庫(kù)用于引入定制標(biāo)簽庫(kù) 屬性屬性 1 1uriuri=URIToTagLibraryURIToTagLibrary Uniform Resource Identifier (URI)Uniform Resource Identifier (URI)根據(jù)標(biāo)簽的根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名,前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名,
13、URIURI可以是可以是以下的內(nèi)容:以下的內(nèi)容:Uniform Resource Locator (URL), 由 RFC 2396 定義, 可以從以下位置查看 (http:/www.hut.fi/u /jkorpela/rfc/2396/full.html)。 Uniform Resource Name (URN), 由 RFC 2396定義 一個(gè)相對(duì)或絕對(duì)的路徑 可以是標(biāo)簽庫(kù)描述文件 2 2prefix=prefix=tagPrefixtagPrefix 表示標(biāo)簽在JSP中的名稱(chēng)。在 自 定 義 標(biāo) 簽 之 前 的 前 綴 , 比 如 , 在中的public,如果這里不寫(xiě)public,那么
14、這就是不合法的。請(qǐng)不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴,這些已被Sun公司聲明保留。% prefix=public % testtest %- -%/ public:loop JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下:1 1 jspjsp:forward page=:forward page=relativeURLrelativeURL | %= | / expression % / 2 2 jspjsp:forward page=:forward page=relativeURLrelativeURL | %= | exp
15、ression % jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | / | / / / :forward (“” /”指可以有多個(gè)指可以有多個(gè)“ ”/”標(biāo)記。)標(biāo)記。) 1 1、page=page=relativeURLrelativeURL | | 這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說(shuō)明這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說(shuō)明你將要定向的文件或你將要定向的文件或URLURL。這個(gè)文件可以是這個(gè)文件可以是JSP,JSP,程序段,或者其它能夠處理
16、程序段,或者其它能夠處理requestrequest對(duì)象對(duì)象的文件的文件( (如如asp,asp,cgicgi, ,phpphp) )。 2 2 jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | %= expression | /% / 向一個(gè)動(dòng)態(tài)文件發(fā)送一個(gè)或多個(gè)參數(shù),這個(gè)向一個(gè)動(dòng)態(tài)文件發(fā)送一個(gè)或多個(gè)參數(shù),這個(gè)文件必須是動(dòng)態(tài)文件。如果想傳遞多個(gè)參數(shù),文件必須是動(dòng)態(tài)文件。如果想傳遞多個(gè)參數(shù),可 以 在 一 個(gè)可 以 在 一 個(gè) J S PJ S
17、 P 文 件 中 使 用 多 個(gè)文 件 中 使 用 多 個(gè)“ ”;“name”“name”指定參數(shù)名,指定參數(shù)名,“value”value”指定參數(shù)值。指定參數(shù)值。 “ ”:forward”標(biāo)簽從一個(gè)標(biāo)簽從一個(gè)JSPJSP文件向另文件向另一個(gè)文件傳遞一個(gè)包含用戶(hù)請(qǐng)求的一個(gè)文件傳遞一個(gè)包含用戶(hù)請(qǐng)求的requestrequest對(duì)對(duì)象。象。“ ”:forward”標(biāo)簽以后的代碼,將標(biāo)簽以后的代碼,將不能執(zhí)行。不能執(zhí)行。)test 包含一個(gè)靜態(tài)或動(dòng)態(tài)文件包含一個(gè)靜態(tài)或動(dòng)態(tài)文件. . JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下:1 1 jspjsp:include page=:include page
18、=relativeURLrelativeURL | | flush=true / flush=true / 2 2 jspjsp:include page=:include page=relativeURLrelativeURL | | flush=true flush=true jspjsp: :paramparam name= name=parameterNameparameterName value= value=parameterValueparameterValue | | / / / :include (“” /”指可以有多個(gè)指可以有多個(gè)“ ”/”標(biāo)記。)標(biāo)記。) 1 1page=
19、page=relativeURLrelativeURL | | 參數(shù)為一相對(duì)路徑,或者是代表相對(duì)路徑的表達(dá)式。參數(shù)為一相對(duì)路徑,或者是代表相對(duì)路徑的表達(dá)式。2 2flush=true flush=true 這里必須使用這里必須使用flush=trueflush=true,不能使用不能使用falsefalse值。而缺省值為值。而缺省值為false false 。3 3 jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | %= expression
20、| /% /“”用來(lái)傳遞一個(gè)或多個(gè)參數(shù)到指用來(lái)傳遞一個(gè)或多個(gè)參數(shù)到指定的動(dòng)態(tài)文件,能在一個(gè)頁(yè)面中使用多個(gè)定的動(dòng)態(tài)文件,能在一個(gè)頁(yè)面中使用多個(gè)“ ”來(lái)傳遞多個(gè)參數(shù),來(lái)傳遞多個(gè)參數(shù), htmlpeixunpeixun.0.jspjsp flush=true King / :include %String username;String username;username=request.username=request.getParametergetParameter(User);(User);out.out.printlnprintln(Username is +username
21、+(Username is +username+););% 使用使用“ ”插入一個(gè)插入一個(gè)appletapplet或或BeanBean,必必要的話(huà)還要下載一個(gè)要的話(huà)還要下載一個(gè)JavaJava插件用于執(zhí)行它。插件用于執(zhí)行它。 JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | / + | / + / text message for user :fallback text message for us
22、er / :fallback / 1 1type=bean | applet type=bean | applet 將被執(zhí)行的插件對(duì)象的類(lèi)型,你必須得指定這個(gè)是將被執(zhí)行的插件對(duì)象的類(lèi)型,你必須得指定這個(gè)是BeanBean還是還是applet,applet,因?yàn)檫@個(gè)屬性沒(méi)有缺省值。因?yàn)檫@個(gè)屬性沒(méi)有缺省值。2 2code=code=classFileNameclassFileName 將會(huì)被將會(huì)被JavaJava插件執(zhí)行的插件執(zhí)行的Java ClassJava Class的名字,必須的名字,必須以以. .classclass結(jié)尾。這個(gè)文件必須存在于結(jié)尾。這個(gè)文件必須存在于codebasecodeb
23、ase屬性屬性指定的目錄中。指定的目錄中。 3 3codebasecodebase=classFileDirectoryNameclassFileDirectoryName 將會(huì)被執(zhí)行的將會(huì)被執(zhí)行的Java ClassJava Class文件的目錄(或者是路文件的目錄(或者是路徑 ) , 如 果 你 沒(méi) 有 提 供 此 屬 性 , 那 么 使 用徑 ) , 如 果 你 沒(méi) 有 提 供 此 屬 性 , 那 么 使 用 的的jspjsp文件的目錄將會(huì)被使用。文件的目錄將會(huì)被使用。 4 4name=name=instanceNameinstanceName 這個(gè)這個(gè)BeanBean或或appleta
24、pplet實(shí)例的名字,它將會(huì)在實(shí)例的名字,它將會(huì)在JspJsp其它的其它的地方調(diào)用。地方調(diào)用。 =./classes name=way value=Hall / / :fallback Unable to load applet Unable to load applet / :fallback / 創(chuàng)建一個(gè)創(chuàng)建一個(gè)BeanBean實(shí)例并指定它的名字和作用實(shí)例并指定它的名字和作用范圍。范圍。 JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: jspjsp: :useBean useBean id=id=beanInstanceNamebeanInstanceName scope=page | re
25、quest | session | application scope=page | request | session | application class=package.class | class=package.class | type=package.class | type=package.class | class=package.class type=package.class class=package.class type=package.class | | beanNamebeanName=package.class | %= expression =package.c
26、lass | % type=package.class type=package.class / | / | other elements other elements 1 1id=id=beanInstanceNamebeanInstanceName 在所定義的范圍中確認(rèn)在所定義的范圍中確認(rèn)BeanBean的變量,使之能在后面的變量,使之能在后面的程序中使用此變量名來(lái)分辨不同的的程序中使用此變量名來(lái)分辨不同的Bean Bean ,這個(gè)變這個(gè)變量名對(duì)大小寫(xiě)敏感,必須符合所使用的腳本語(yǔ)言的量名對(duì)大小寫(xiě)敏感,必須符合所使用的腳本語(yǔ)言的規(guī)定,這個(gè)規(guī)定在規(guī)定,這個(gè)規(guī)定在Java Language Ja
27、va Language 規(guī)范已經(jīng)寫(xiě)明。規(guī)范已經(jīng)寫(xiě)明。如果如果BeanBean已經(jīng)在別的已經(jīng)在別的“ ”標(biāo)記中創(chuàng)建,標(biāo)記中創(chuàng)建,則當(dāng)使用這個(gè)已經(jīng)創(chuàng)建過(guò)則當(dāng)使用這個(gè)已經(jīng)創(chuàng)建過(guò)BeanBean時(shí),時(shí),idid的值必須與原的值必須與原來(lái)的那個(gè)來(lái)的那個(gè)idid值一致;否則則意味著創(chuàng)建了同一個(gè)類(lèi)值一致;否則則意味著創(chuàng)建了同一個(gè)類(lèi)的兩個(gè)不同的對(duì)象。的兩個(gè)不同的對(duì)象。 2 2scope=page | request | session | scope=page | request | session | application application BeanBean存在的范圍以及存在的范圍以及idid變量名
28、的有效范圍。變量名的有效范圍。缺省值是缺省值是pagepage,以下是詳細(xì)說(shuō)明:以下是詳細(xì)說(shuō)明: page - 能在包含“”元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用這個(gè)Bean,直到頁(yè)面執(zhí)行完畢向客戶(hù)端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。 request - request - 在任何執(zhí)行相同請(qǐng)求的在任何執(zhí)行相同請(qǐng)求的JspJsp文件中使用這文件中使用這個(gè)個(gè)BeanBean,直到頁(yè)面執(zhí)行完畢向客戶(hù)端發(fā)回響應(yīng)或轉(zhuǎn)直到頁(yè)面執(zhí)行完畢向客戶(hù)端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。能夠使用到另一個(gè)文件為止。能夠使用RequestRequest對(duì)象訪(fǎng)問(wèn)這個(gè)對(duì)象訪(fǎng)問(wèn)這個(gè)Bean,Bean,比如比如reques
29、t.request.getAttributegetAttribute( (beanInstanceNamebeanInstanceName) )。 session - session - 從創(chuàng)建從創(chuàng)建BeanBean開(kāi)始,就能在任何使用相同開(kāi)始,就能在任何使用相同sessionsession的的jspjsp文件中使用這個(gè)文件中使用這個(gè)BeanBean。這個(gè)這個(gè)BeanBean存在存在于整個(gè)于整個(gè)SessionSession生存周期內(nèi),任何在分享此生存周期內(nèi),任何在分享此SessionSession的的JspJsp文件都能使用同一文件都能使用同一BeanBean。注意在創(chuàng)建這個(gè)注意在創(chuàng)建這個(gè)Be
30、anBean的的JspJsp文件中文件中“% ”page %”指令中必須指定指令中必須指定“session=true”session=true”。 application - application - 從創(chuàng)建從創(chuàng)建BeanBean開(kāi)始,就能在任開(kāi)始,就能在任何使用相同何使用相同applicationapplication的的JspJsp文件中使用文件中使用BeanBean。這個(gè)這個(gè)BeanBean存在于整個(gè)存在于整個(gè)applicationapplication生存生存周期內(nèi),任何在分享此周期內(nèi),任何在分享此applicationapplication的的JspJsp文文件都能使用同一件都能使
31、用同一Bean. Bean. 3 3class=package.class class=package.class 使用new關(guān)鍵字以及class構(gòu)造器從一個(gè)class中實(shí)例化一個(gè)bean。這個(gè)class不能是抽象的,必須有一個(gè)公用的,沒(méi)有參數(shù)的構(gòu)造器。這個(gè)package的名字區(qū)別大小寫(xiě)。 4 4type=package.class type=package.class 如果這個(gè)Bean已經(jīng)在指定的范圍中存在,那么賦予這個(gè)Bean一個(gè)新的數(shù)據(jù)開(kāi)庫(kù)類(lèi)型 。如果使用type屬性的同時(shí)沒(méi)有使用class或beanName,Bean將不會(huì)被實(shí)例化。注意package和class的名稱(chēng)區(qū)分大小寫(xiě)。 5
32、5beanNamebeanName=package.class | %= expression =package.class | type=package.class % type=package.class 使用java.beans.Beans.instantiate方法來(lái)從一個(gè)class或串行化的模板中實(shí)例化一個(gè)Bean,同時(shí)指定Bean的類(lèi)型。 Beans.instantiate方法將檢查此名稱(chēng)是否表示一個(gè)類(lèi)或一個(gè)串行化模板。如果這個(gè)Bean是被串行化的,那么Beans.instantiate方法將通過(guò)使用一個(gè)類(lèi)裝載器讀取串行化格式(類(lèi)似package.class.ser)。 beanN
33、amebeanName可以可以是是packagepackage和和classclass,也可以是也可以是表達(dá)式,它的值會(huì)傳給表達(dá)式,它的值會(huì)傳給Beans.instantiateBeans.instantiate方方法。法。typetype的值可以和的值可以和BeanBean相同,也可以是它相同,也可以是它的基類(lèi),或者是它所實(shí)現(xiàn)的接口。的基類(lèi),或者是它所實(shí)現(xiàn)的接口。 packagepackage和和 class class 名字區(qū)分大小寫(xiě)。名字區(qū)分大小寫(xiě)。 JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: / 屬性:屬性:1 1name=name=beanInstanceNamebeanInsta
34、nceName beanbean的名字,由的名字,由 指定。指定。 2 2property=property=propertyNamepropertyName 所指定的所指定的BeanBean的屬性名。的屬性名。 html/聲明引用的beantesttest Calendar of Calendar of property=username / 設(shè)置設(shè)置BeanBean的屬性值的屬性值. . JSP JSP 語(yǔ)法格式如下:語(yǔ)法格式如下: jspjsp: :setProperty setProperty name=name=beanInstanceNamebeanInstanceName pro
35、perty= property= * * | | p r o p e r t y = p r o p e r t y = p r o p e r t y N a m ep r o p e r t y N a m e paramparam=parameterNameparameterName | | property= property=propertyNamepropertyName value=string | value=string | / / 1 1name=name=beanInstanceNamebeanInstanceName 表示已經(jīng)在“”中創(chuàng)建的Bean實(shí)例的名字。 2 2p
36、roperty=property=* * 儲(chǔ)存用戶(hù)在jsp輸入的所有值,用于匹配Bean中的屬性。 3 3property=property=propertyNamepropertyName paramparam=parameterNameparameterName 用一個(gè)參數(shù)值來(lái)指定Bean中的一個(gè)屬性值,一般情況下是從request對(duì)象中獲得的。其中property指定Bean的屬性名,param指定request中的參數(shù)名。 4 4property=property=propertyNamepropertyName value=string | value=string | 使用指定的值
37、來(lái)設(shè)定Bean屬性。這個(gè)值可以是字符串,也可以是表達(dá)式。如果這個(gè)字符串,那么它就會(huì)被轉(zhuǎn)換成Bean屬性的類(lèi)型(轉(zhuǎn)換方法見(jiàn)表4.1)。如果是一個(gè)表達(dá)式,那么它的類(lèi)型就必須和將要設(shè)定的屬性值的類(lèi)型一致。 如果參數(shù)值為空值,那么對(duì)應(yīng)的屬性值也不會(huì)被設(shè)定。此外,不能在同一個(gè)“”中同時(shí)使用param和value參數(shù) 。package rmg;public class student private long classNo; private String name; private int age; private boolean sexy; public student() /構(gòu)造函數(shù)構(gòu)造函數(shù) cla
38、ssNo=970431; name=ZZZl; age=34; sexy=true; 例:/建立類(lèi)rmg.student public long getClassNo() return classNo; public void setClassNo(long no) this.classNo=no; public String getName() return name; public void setName(String name) =name; public int getAge() return age; public void setAge(int age) thi
39、s.age=age; public boolean getSexy() return sexy; public void setSexy(boolean sexy) this.sexy=sexy; 第一行發(fā)生變化 JSP 有以下九種內(nèi)置對(duì)象,包括:有以下九種內(nèi)置對(duì)象,包括: request,請(qǐng)求對(duì)象請(qǐng)求對(duì)象 response,響應(yīng)對(duì)象響應(yīng)對(duì)象 pageContext,頁(yè)面上下文對(duì)象頁(yè)面上下文對(duì)象 session,會(huì)話(huà)對(duì)象會(huì)話(huà)對(duì)象 application,應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?out,輸出對(duì)象輸出對(duì)象 config,配置對(duì)象配置對(duì)象 page,頁(yè)面對(duì)象頁(yè)面對(duì)象 exception,例外對(duì)象例
40、外對(duì)象 request,請(qǐng)求對(duì)象請(qǐng)求對(duì)象 session,會(huì)話(huà)對(duì)象會(huì)話(huà)對(duì)象 application,應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?有幾種對(duì)象看起來(lái)和有幾種對(duì)象看起來(lái)和ASP的內(nèi)置對(duì)象差不的內(nèi)置對(duì)象差不多,功能也類(lèi)似,這是因?yàn)檫@些內(nèi)置對(duì)多,功能也類(lèi)似,這是因?yàn)檫@些內(nèi)置對(duì)象的構(gòu)建基礎(chǔ)是標(biāo)準(zhǔn)化的象的構(gòu)建基礎(chǔ)是標(biāo)準(zhǔn)化的HTTP協(xié)議。如協(xié)議。如果使用過(guò)果使用過(guò)ASP,又對(duì)又對(duì)Java有一定的了解的有一定的了解的話(huà),那么對(duì)這幾種話(huà),那么對(duì)這幾種JSP內(nèi)置對(duì)象的使用應(yīng)內(nèi)置對(duì)象的使用應(yīng)該能迅速掌握。需要注意的問(wèn)題是對(duì)象該能迅速掌握。需要注意的問(wèn)題是對(duì)象名的寫(xiě)法,包括這些對(duì)象方法的調(diào)用時(shí)名的寫(xiě)法,包括這些對(duì)象方法的
41、調(diào)用時(shí)也要書(shū)寫(xiě)正確,因?yàn)橐惨獣?shū)寫(xiě)正確,因?yàn)镴ava語(yǔ)言本身是大語(yǔ)言本身是大小寫(xiě)敏感的。小寫(xiě)敏感的。 從本質(zhì)上講,從本質(zhì)上講,JSP的這些內(nèi)置對(duì)象其實(shí)都是由的這些內(nèi)置對(duì)象其實(shí)都是由特定的特定的Java類(lèi)所產(chǎn)生的,在服務(wù)器運(yùn)行時(shí)根據(jù)類(lèi)所產(chǎn)生的,在服務(wù)器運(yùn)行時(shí)根據(jù)情況自動(dòng)生成,所以如果你有較好的情況自動(dòng)生成,所以如果你有較好的Java基礎(chǔ),基礎(chǔ),可以參考相應(yīng)的類(lèi)說(shuō)明,表可以參考相應(yīng)的類(lèi)說(shuō)明,表3.1給出了他們的給出了他們的對(duì)應(yīng)關(guān)系。更進(jìn)一步的講解將會(huì)在講解對(duì)應(yīng)關(guān)系。更進(jìn)一步的講解將會(huì)在講解Servlet的一章中展開(kāi),如果你的的一章中展開(kāi),如果你的Java基礎(chǔ)不太好,可基礎(chǔ)不太好,可以先熟悉在這一章里
42、所介紹的各種方法的使以先熟悉在這一章里所介紹的各種方法的使用。用。 “request” 對(duì)象代表的是來(lái)自客戶(hù)端的請(qǐng)求,例如我對(duì)象代表的是來(lái)自客戶(hù)端的請(qǐng)求,例如我們?cè)趥冊(cè)贔ORM表單中填寫(xiě)的信息等,是最常用的對(duì)象。表單中填寫(xiě)的信息等,是最常用的對(duì)象。關(guān) 于 它 的 方 法 使 用 較 多 的 是關(guān) 于 它 的 方 法 使 用 較 多 的 是 getParameter、getParameterNames和和getParameterValues,通過(guò)調(diào)用這通過(guò)調(diào)用這幾個(gè)方法來(lái)獲取請(qǐng)求對(duì)象中所包含的參數(shù)的值幾個(gè)方法來(lái)獲取請(qǐng)求對(duì)象中所包含的參數(shù)的值“response” 對(duì)象代表的是對(duì)客戶(hù)端的響應(yīng),也對(duì)象
43、代表的是對(duì)客戶(hù)端的響應(yīng),也就是說(shuō)可以通過(guò)就是說(shuō)可以通過(guò)“response”對(duì)象來(lái)組織發(fā)送到客戶(hù)對(duì)象來(lái)組織發(fā)送到客戶(hù)端的數(shù)據(jù)。但是由于組織方式比較底層,所以不建端的數(shù)據(jù)。但是由于組織方式比較底層,所以不建議普通讀者使用,需要向客戶(hù)端發(fā)送文字時(shí)直接使議普通讀者使用,需要向客戶(hù)端發(fā)送文字時(shí)直接使用用“out” 對(duì)象即可。對(duì)象即可。 姓名 你好你好, , 今天是今天是 號(hào),星期號(hào),星期 你好,獨(dú)孤求敗, 今天是 9號(hào),星期1 “pageContext” 對(duì)象直譯時(shí)可以稱(chēng)作對(duì)象直譯時(shí)可以稱(chēng)作“頁(yè)面頁(yè)面上下文上下文”對(duì)象,代表的是當(dāng)前頁(yè)面運(yùn)行的一些對(duì)象,代表的是當(dāng)前頁(yè)面運(yùn)行的一些屬性,常用的方法包括屬性,
44、常用的方法包括findAttribute、g et At t r ib u t e、 g et At t r ib u t es S c o p e 和和getAttributeNamesInScope,一般情況下一般情況下“pageContext” 對(duì)象用到得也不是很多,只有對(duì)象用到得也不是很多,只有在項(xiàng)目所面臨的情況比較復(fù)雜的情況下,才會(huì)在項(xiàng)目所面臨的情況比較復(fù)雜的情況下,才會(huì)利用到頁(yè)面屬性來(lái)輔助處理。利用到頁(yè)面屬性來(lái)輔助處理。 “session” 對(duì)象代表服務(wù)器與客戶(hù)端所對(duì)象代表服務(wù)器與客戶(hù)端所建立的會(huì)話(huà),當(dāng)需要在不同的建立的會(huì)話(huà),當(dāng)需要在不同的JSP頁(yè)面中頁(yè)面中保留客戶(hù)信息的情況下使用
45、,比如在線(xiàn)保留客戶(hù)信息的情況下使用,比如在線(xiàn)購(gòu)物、客戶(hù)軌跡跟蹤等。購(gòu)物、客戶(hù)軌跡跟蹤等。“session” 對(duì)對(duì)象建立在象建立在cookie的基礎(chǔ)上,所以使用時(shí)應(yīng)的基礎(chǔ)上,所以使用時(shí)應(yīng)注意判斷一下客戶(hù)端是否打開(kāi)了注意判斷一下客戶(hù)端是否打開(kāi)了cookie。常用的方法包括常用的方法包括getId、 getValue、 getValueNames和和putValue等。等。 概要概要HTTP是無(wú)狀態(tài)(stateless)協(xié)議;Web Server 對(duì)每一個(gè)客戶(hù)端請(qǐng)求都沒(méi)有歷史記憶;Session用來(lái)保存客戶(hù)端狀態(tài)信息;由Web Server 寫(xiě)入;存于客戶(hù)端;客戶(hù)端的每次訪(fǎng)問(wèn)都把上次的session
46、記錄傳遞給Web Server;Web Server讀取客戶(hù)端提交的session來(lái)獲取客戶(hù)端的狀態(tài)信息; 姓名 你的名字已經(jīng)寫(xiě)入session check ) 您還未登錄 已經(jīng)登錄 “application” 對(duì)象負(fù)責(zé)提供應(yīng)用程序在對(duì)象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時(shí)的一些全局信息,常用服務(wù)器中運(yùn)行時(shí)的一些全局信息,常用的方法有的方法有g(shù)etMimeType和和getRealPath等。等。 “out” 對(duì)象代表了向客戶(hù)端發(fā)送數(shù)據(jù)的對(duì)象,對(duì)象代表了向客戶(hù)端發(fā)送數(shù)據(jù)的對(duì)象,與與“response” 對(duì)象不同,通過(guò)對(duì)象不同,通過(guò)“out” 對(duì)象發(fā)送對(duì)象發(fā)送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本一
47、的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本一級(jí)的,可以通過(guò)級(jí)的,可以通過(guò)“out” 對(duì)象直接向客戶(hù)端寫(xiě)一對(duì)象直接向客戶(hù)端寫(xiě)一個(gè)由程序動(dòng)態(tài)生成個(gè)由程序動(dòng)態(tài)生成HTML文件。常用的方法除了文件。常用的方法除了pirnt和和println之外,還包括之外,還包括clear、clearBuffer、flush、getBufferSize和和getRemaining,這是因?yàn)檫@是因?yàn)椤皁ut” 對(duì)象內(nèi)部包含了一個(gè)緩沖區(qū),所以需要對(duì)象內(nèi)部包含了一個(gè)緩沖區(qū),所以需要一些對(duì)緩沖區(qū)進(jìn)行操作的方法。一些對(duì)緩沖區(qū)進(jìn)行操作的方法。 “config” 對(duì)象提供一些配置信息,常用的方法有對(duì)象提供一些配置信息,常用的方法有g(shù)e
48、tInitParameter和和getInitParameterNames,以獲得以獲得Servlet初始化時(shí)的參數(shù)。初始化時(shí)的參數(shù)。 “page” 對(duì)象代表了正在運(yùn)行的由對(duì)象代表了正在運(yùn)行的由JSP文件產(chǎn)生的類(lèi)文件產(chǎn)生的類(lèi)對(duì)象,不建議一般讀者使用。對(duì)象,不建議一般讀者使用。 “exception” 對(duì)象則代表了對(duì)象則代表了JSP文件運(yùn)行時(shí)所產(chǎn)生的文件運(yùn)行時(shí)所產(chǎn)生的例外對(duì)象,此對(duì)象不能在一般例外對(duì)象,此對(duì)象不能在一般JSP文件中直接使用,文件中直接使用,而只能在使用了而只能在使用了“”的的JSP文件中使用文件中使用 1getAttribute 原型:原型:public java.lang.Ob
49、ject getAttribute(java.lang.String name) 說(shuō)明:以對(duì)象的形式返回特定名稱(chēng)的屬性值。說(shuō)明:以對(duì)象的形式返回特定名稱(chēng)的屬性值。這個(gè)方法允許這個(gè)方法允許Servlet引擎給出一個(gè)客戶(hù)請(qǐng)求的引擎給出一個(gè)客戶(hù)請(qǐng)求的特定信息。特定信息。 ( Servlet為服務(wù)器端小程序,所為服務(wù)器端小程序,所有有JSP頁(yè)面都事先翻譯成頁(yè)面都事先翻譯成Servlet后才執(zhí)行)后才執(zhí)行) 如果所給名稱(chēng)的屬性不存在將返回空值。如果所給名稱(chēng)的屬性不存在將返回空值。 屬性名應(yīng)該遵循和包命名方式同樣的約定,屬性名應(yīng)該遵循和包命名方式同樣的約定,不要采用如不要采用如“java.*”、“ jav
50、ax.*”及及 “sun.*”.這這樣的命名。樣的命名。 參數(shù):參數(shù):name 一個(gè)標(biāo)示屬性名的字符串一個(gè)標(biāo)示屬性名的字符串 返回值:一個(gè)包含屬性值的對(duì)象,當(dāng)屬性不返回值:一個(gè)包含屬性值的對(duì)象,當(dāng)屬性不存在是為空。存在是為空。 request 用戶(hù)登錄用戶(hù)登錄 用戶(hù)名:用戶(hù)名: 密碼:密碼: 瀏覽器類(lèi)型瀏覽器類(lèi)型: IE Netscape 資料選項(xiàng):資料選項(xiàng): 標(biāo)題標(biāo)題 詳細(xì)詳細(xì) test%out.println(用戶(hù)名:用戶(hù)名:+request.getParameter(User)+);out.println(密碼:密
51、碼:+request.getParameter(pwd)+);out.println(瀏覽器:瀏覽器:+request.getParameter(radio)+);out.println(標(biāo)題:標(biāo)題:+request.getParameter(check1)+);out.println(詳細(xì):詳細(xì):+request.getParameter(check2)+);out.println(隱含:隱含:+request.getParameter(hidden)+);out.println(getContentLength()=+request.getContentLength()+);out.pri
52、ntln(getContentType()=+request.getContentType()+);out.println(getRequestURI()=+request.getRequestURI()+);out.println(getServerPort()=+request.getServerPort()+);out.println(getServerName()=+request.getServerName()+);out.println(getProtocol()=+request.getProtocol()+);out.println(getRemoteAddr()=+reque
53、st.getRemoteAddr()+);out.println(getHeaderNames()=+request.getHeaderNames()+);out.println(getMethod()=+request.getMethod()+);out.println(getServletPath()=+request.getServletPath()+);out.println(isRequestedSessionIdValid()=+request.isRequestedSessionIdValid()+ );%session請(qǐng)輸入您的姓名:請(qǐng)輸入您的姓名: post.jsp 您的姓名
54、是:您的姓名是: 您最喜歡的娛樂(lè)是:您最喜歡的娛樂(lè)是: post1.jsp您的姓名是:您的姓名是: 您喜歡的娛樂(lè)是:您喜歡的娛樂(lè)是: application% out.println(Java Servlet API Version +application.getMajorVersion()+.+application.getMinorVersion()+);out.println(peixun2.13.jsps MIME type is:+application.getMimeType(peixun2.13.jsp)+);out.println(URL of peixun2.13.jsp
55、is: +application.getResource(“/peixun2.13.jsp)+);out.println(getServerInfo()=+application.getServerInfo()+);out.println(application.getRealPath( );application.log(Add a Record to log_file); %網(wǎng)頁(yè)計(jì)數(shù)器網(wǎng)頁(yè)計(jì)數(shù)器您是第您是第位訪(fǎng)問(wèn)者!位訪(fǎng)問(wèn)者!Error page loginAn error occured in the bean. Error Message is: 全面介紹了全面介紹了JSP的幾種內(nèi)置對(duì)
56、象。熟練使用這的幾種內(nèi)置對(duì)象。熟練使用這些內(nèi)置對(duì)象是開(kāi)發(fā)些內(nèi)置對(duì)象是開(kāi)發(fā)JSP應(yīng)用程序的基本要求,應(yīng)用程序的基本要求,尤其是對(duì)于尤其是對(duì)于request、session和和application對(duì)象對(duì)象更是必須要掌握的。更是必須要掌握的。 會(huì)使用對(duì)象所具有的方法,能熟練使用每一會(huì)使用對(duì)象所具有的方法,能熟練使用每一種對(duì)象的幾種常用方法。種對(duì)象的幾種常用方法。 可以獲得文本框、文本區(qū)域、單選、多選的可以獲得文本框、文本區(qū)域、單選、多選的值值 表單中各元素表單中各元素的的NAME屬性是它的唯一標(biāo)識(shí),屬性是它的唯一標(biāo)識(shí),用它獲取參數(shù)。用它獲取參數(shù)。 參考參考peixun2.11.jsp及及post.jsorequest.getParameter(User); 使用內(nèi)置對(duì)象使用內(nèi)置對(duì)象outout.println(content) 使用使用“=” 參看參看peixun2.11.jsp和和post.jspout.println(用戶(hù)名:用戶(hù)名: +User+); 參看參看peixun2.14.jsp您是第您是第
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度油氣儲(chǔ)運(yùn)設(shè)施買(mǎi)賣(mài)合同(智能化管理技術(shù)集成)4篇
- 2025年消防設(shè)施安全管理合同樣本3篇
- 2025年度二零二五年度民辦學(xué)校教師職稱(chēng)評(píng)定與晉升服務(wù)合同4篇
- 二零二五年度出租車(chē)租賃服務(wù)協(xié)議(含數(shù)據(jù)安全保護(hù))3篇
- 2025年充電樁充電網(wǎng)絡(luò)規(guī)劃與建設(shè)合同3篇
- 二零二五年度男方自愿放棄所有財(cái)產(chǎn)離婚協(xié)議書(shū)2篇
- 二零二五版木工支模與智能家居安裝服務(wù)合同2篇
- 二零二五版夫妻離婚協(xié)議書(shū)下載與隱私保護(hù)措施4篇
- 2025年度槽探施工項(xiàng)目質(zhì)量監(jiān)督合同規(guī)范3篇
- 圖數(shù)據(jù)可視化-深度研究
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛(ài)指南
- 腰椎間盤(pán)的診斷證明書(shū)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論