版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、. 其他 HTML 語言 其他 HTML 語言 % for ( int i=0; i 你好 你好 你好 *.jsp*.java*.classrequestresponse執(zhí)行jsp parserJSDKservletservlet 分析器 執(zhí)行過程執(zhí)行過程查找對應(yīng)的JSP文件是否存在YN是否是修改或創(chuàng)建后第一次調(diào)用Y調(diào)用Jsp Parser將其編譯成Servlet程序調(diào)用JSDK將對應(yīng)的Servlet程序編譯成Servlet字節(jié)碼執(zhí)行(若未載入則先載入)已有的對應(yīng)的Java字節(jié)碼N 你好,今天是 號, 星期 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(號,星期);out.print(today.getDay();out.write( rn rnrn );JSP文件servlet文件 JSP原始代碼中包含了原始代碼中包含了JSP元素和元素和Template(模板模板) data兩類兩類 Template data指的是指的是JSP引擎不處理的部分引擎不處理的部分
3、,即,即標記標記以外的部分,例如代碼中的以外的部分,例如代碼中的HTML的內(nèi)容等的內(nèi)容等 ,這些數(shù)據(jù)會直接傳送到客戶這些數(shù)據(jù)會直接傳送到客戶端的瀏覽器端的瀏覽器 JSPJSP元素則是指將由元素則是指將由JSPJSP引擎直接處理的部分,引擎直接處理的部分,這一部分必須符合這一部分必須符合JSPJSP語法,否則會導(dǎo)致編譯語法,否則會導(dǎo)致編譯錯誤。錯誤。 Hi-JSP實驗實驗 Template dataJSP元素 JSP語法分為三種不同的類型語法分為三種不同的類型 編譯器指令(DIRECTIVE) 例如: 腳本語法(SCRIPTING)動作語法(ACTION) 例如: , 腳本語法包括腳本語法包括“
4、HTML注釋”:“隱藏注釋”:“聲明”“表達式”“腳本段” 編譯器指令包括編譯器指令包括“包含指令包含指令”, “頁指令頁指令”和和“taglib指令指令” 它們包含在它們包含在“”卷標里。卷標里。 兩個主要的指令是兩個主要的指令是page與與include。 動作語法包括動作語法包括, ,和和。 JSP 語法格式如下:語法格式如下: !- comment - 或或 !- 注釋注釋 - 這種注釋發(fā)送到客戶端,但不直接顯示,在這種注釋發(fā)送到客戶端,但不直接顯示,在源代碼中可以查看到。源代碼中可以查看到。 HTML注釋注釋 未顯示上一行的注釋。未顯示上一行的注釋。要多加練習要多加練習 !-This
5、 page was loaded on - 在源文件中包括當前時間。在源文件中包括當前時間。 JSP 語法格式如下:語法格式如下: 不發(fā)送到客戶端。不發(fā)送到客戶端。 A Comment Test A Test of Comments JSP 語法格式如下:語法格式如下: 或或 test2.4.jsp 用于在頁面上輸出信息,語法格式如下:用于在頁面上輸出信息,語法格式如下: 或或 test a=b=c= JSP 語法格式如下:語法格式如下: 或或 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)義符: 雙引號雙引號 “ ,單引號單引號,反斜杠,反斜杠,回車,回車r,換行換行n,制表符制表符t,退格退格 b includeinclude指令:向當前頁中插入一個靜態(tài)文件的內(nèi)容。指令:向當
7、前頁中插入一個靜態(tài)文件的內(nèi)容。 JSP JSP 語法格式如下:語法格式如下: % % 或或 % % 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 語法格式如下:語法格式如下:% % 屬性
8、:屬性:1 1language=java language=java 聲明腳本語言的種類,目前只能用聲明腳本語言的種類,目前只能用 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包的列表,這些包作用于程序包的列表,這些包作用于程序段,表達式,以及聲明。下面的包在段,表達式,以及聲明。下面的包在JSPJSP編譯編譯時已經(jīng)導(dǎo)入了,所以就不需要再指明了:時
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è)置此頁是否為出錯頁
10、,如果被設(shè)置為設(shè)置此頁是否為出錯頁,如果被設(shè)置為true,true,你就能使用你就能使用exceptionexception對象對象 “% ”page %”指令作用于整個指令作用于整個JSPJSP頁面,同樣包括頁面,同樣包括靜態(tài)的包含文件。但是靜態(tài)的包含文件。但是“% ”page %”指令不能作用指令不能作用于動態(tài)的包含文件,比如于動態(tài)的包含文件,比如 “ :include”。 可以在一個頁面中用上多個可以在一個頁面中用上多個“% ”page %”指令,但指令,但是其中的屬性只能用一次,不過也有例外,那就是是其中的屬性只能用一次,不過也有例外,那就是importimport屬性。因為屬性。因為
11、importimport屬性和屬性和JavaJava中的中的importimport語句語句類似類似( (參照參照Java LanguageJava Language,importimport語句引入得是語句引入得是JavaJava語言中的類語言中的類) ),所以此屬性就能多用幾次。,所以此屬性就能多用幾次。 無論把無論把“% ”page %”指令放在指令放在JSPJSP的文件的哪個地的文件的哪個地方,它的作用范圍都是整個方,它的作用范圍都是整個JSPJSP頁面。不過,為了頁面。不過,為了JSPJSP程序的可讀性,以及好的編程習慣,最好還是把它放程序的可讀性,以及好的編程習慣,最好還是把它放在
12、在JSPJSP文件的頂部。文件的頂部。% % % page buffer=24kb =false % % page % test3test3Test for using Page.Test for using Page. JSPJSP語法語法% % 用于引入定制標簽庫用于引入定制標簽庫 屬性屬性 1 1uriuri=URIToTagLibraryURIToTagLibrary Uniform Resource Identifier (URI)Uniform Resource Identifier (URI)根據(jù)標簽的根據(jù)標簽的前綴對自定義的標簽進行唯一的命名,前綴對自定義的標簽進行唯一的命名,
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定義 一個相對或絕對的路徑 可以是標簽庫描述文件 2 2prefix=prefix=tagPrefixtagPrefix 表示標簽在JSP中的名稱。在 自 定 義 標 簽 之 前 的 前 綴 , 比 如 , 在中的public,如果這里不寫public,那么
14、這就是不合法的。請不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴,這些已被Sun公司聲明保留。% prefix=public % testtest %- -%/ public:loop JSP JSP 語法格式如下:語法格式如下: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 (“” /”指可以有多個指可以有多個“ ”/”標記。)標記。) 1 1、page=page=relativeURLrelativeURL | | 這里是一個表達式或是一個字符串用于說明這里是一個表達式或是一個字符串用于說明你將要定向的文件或你將要定向的文件或URLURL。這個文件可以是這個文件可以是JSP,JSP,程序段,或者其它能夠處理
16、程序段,或者其它能夠處理requestrequest對象對象的文件的文件( (如如asp,asp,cgicgi, ,phpphp) )。 2 2 jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | %= expression | /% / 向一個動態(tài)文件發(fā)送一個或多個參數(shù),這個向一個動態(tài)文件發(fā)送一個或多個參數(shù),這個文件必須是動態(tài)文件。如果想傳遞多個參數(shù),文件必須是動態(tài)文件。如果想傳遞多個參數(shù),可 以 在 一 個可 以 在 一 個 J S PJ S
17、 P 文 件 中 使 用 多 個文 件 中 使 用 多 個“ ”;“name”“name”指定參數(shù)名,指定參數(shù)名,“value”value”指定參數(shù)值。指定參數(shù)值。 “ ”:forward”標簽從一個標簽從一個JSPJSP文件向另文件向另一個文件傳遞一個包含用戶請求的一個文件傳遞一個包含用戶請求的requestrequest對對象。象?!?”:forward”標簽以后的代碼,將標簽以后的代碼,將不能執(zhí)行。不能執(zhí)行。)test 包含一個靜態(tài)或動態(tài)文件包含一個靜態(tài)或動態(tài)文件. . JSP JSP 語法格式如下:語法格式如下: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 (“” /”指可以有多個指可以有多個“ ”/”標記。)標記。) 1 1page=
19、page=relativeURLrelativeURL | | 參數(shù)為一相對路徑,或者是代表相對路徑的表達式。參數(shù)為一相對路徑,或者是代表相對路徑的表達式。2 2flush=true flush=true 這里必須使用這里必須使用flush=trueflush=true,不能使用不能使用falsefalse值。而缺省值為值。而缺省值為false false 。3 3 jspjsp: :paramparam name= name=parameterNameparameterName value=value=parameterValueparameterValue | %= expression
20、| /% /“”用來傳遞一個或多個參數(shù)到指用來傳遞一個或多個參數(shù)到指定的動態(tài)文件,能在一個頁面中使用多個定的動態(tài)文件,能在一個頁面中使用多個“ ”來傳遞多個參數(shù),來傳遞多個參數(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+););% 使用使用“ ”插入一個插入一個appletapplet或或BeanBean,必必要的話還要下載一個要的話還要下載一個JavaJava插件用于執(zhí)行它。插件用于執(zhí)行它。 JSP JSP 語法格式如下:語法格式如下: 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í)行的插件對象的類型,你必須得指定這個是將被執(zhí)行的插件對象的類型,你必須得指定這個是BeanBean還是還是applet,applet,因為這個屬性沒有缺省值。因為這個屬性沒有缺省值。2 2code=code=classFileNameclassFileName 將會被將會被JavaJava插件執(zhí)行的插件執(zhí)行的Java ClassJava Class的名字,必須的名字,必須以以. .classclass結(jié)尾。這個文件必須存在于結(jié)尾。這個文件必須存在于codebasecodeb
23、ase屬性屬性指定的目錄中。指定的目錄中。 3 3codebasecodebase=classFileDirectoryNameclassFileDirectoryName 將會被執(zhí)行的將會被執(zhí)行的Java ClassJava Class文件的目錄(或者是路文件的目錄(或者是路徑 ) , 如 果 你 沒 有 提 供 此 屬 性 , 那 么 使 用徑 ) , 如 果 你 沒 有 提 供 此 屬 性 , 那 么 使 用 的的jspjsp文件的目錄將會被使用。文件的目錄將會被使用。 4 4name=name=instanceNameinstanceName 這個這個BeanBean或或appleta
24、pplet實例的名字,它將會在實例的名字,它將會在JspJsp其它的其它的地方調(diào)用。地方調(diào)用。 =./classes name=way value=Hall / / :fallback Unable to load applet Unable to load applet / :fallback / 創(chuàng)建一個創(chuàng)建一個BeanBean實例并指定它的名字和作用實例并指定它的名字和作用范圍。范圍。 JSP JSP 語法格式如下:語法格式如下: 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 在所定義的范圍中確認在所定義的范圍中確認BeanBean的變量,使之能在后面的變量,使之能在后面的程序中使用此變量名來分辨不同的的程序中使用此變量名來分辨不同的Bean Bean ,這個變這個變量名對大小寫敏感,必須符合所使用的腳本語言的量名對大小寫敏感,必須符合所使用的腳本語言的規(guī)定,這個規(guī)定在規(guī)定,這個規(guī)定在Java Language Ja
27、va Language 規(guī)范已經(jīng)寫明。規(guī)范已經(jīng)寫明。如果如果BeanBean已經(jīng)在別的已經(jīng)在別的“ ”標記中創(chuàng)建,標記中創(chuàng)建,則當使用這個已經(jīng)創(chuàng)建過則當使用這個已經(jīng)創(chuàng)建過BeanBean時,時,idid的值必須與原的值必須與原來的那個來的那個idid值一致;否則則意味著創(chuàng)建了同一個類值一致;否則則意味著創(chuàng)建了同一個類的兩個不同的對象。的兩個不同的對象。 2 2scope=page | request | session | scope=page | request | session | application application BeanBean存在的范圍以及存在的范圍以及idid變量名
28、的有效范圍。變量名的有效范圍。缺省值是缺省值是pagepage,以下是詳細說明:以下是詳細說明: page - 能在包含“”元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用這個Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個文件為止。 request - request - 在任何執(zhí)行相同請求的在任何執(zhí)行相同請求的JspJsp文件中使用這文件中使用這個個BeanBean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個文件為止。能夠使用到另一個文件為止。能夠使用RequestRequest對象訪問這個對象訪問這個Bean,Bean,比如比如reques
29、t.request.getAttributegetAttribute( (beanInstanceNamebeanInstanceName) )。 session - session - 從創(chuàng)建從創(chuàng)建BeanBean開始,就能在任何使用相同開始,就能在任何使用相同sessionsession的的jspjsp文件中使用這個文件中使用這個BeanBean。這個這個BeanBean存在存在于整個于整個SessionSession生存周期內(nèi),任何在分享此生存周期內(nèi),任何在分享此SessionSession的的JspJsp文件都能使用同一文件都能使用同一BeanBean。注意在創(chuàng)建這個注意在創(chuàng)建這個Be
30、anBean的的JspJsp文件中文件中“% ”page %”指令中必須指定指令中必須指定“session=true”session=true”。 application - application - 從創(chuàng)建從創(chuàng)建BeanBean開始,就能在任開始,就能在任何使用相同何使用相同applicationapplication的的JspJsp文件中使用文件中使用BeanBean。這個這個BeanBean存在于整個存在于整個applicationapplication生存生存周期內(nèi),任何在分享此周期內(nèi),任何在分享此applicationapplication的的JspJsp文文件都能使用同一件都能使
31、用同一Bean. Bean. 3 3class=package.class class=package.class 使用new關(guān)鍵字以及class構(gòu)造器從一個class中實例化一個bean。這個class不能是抽象的,必須有一個公用的,沒有參數(shù)的構(gòu)造器。這個package的名字區(qū)別大小寫。 4 4type=package.class type=package.class 如果這個Bean已經(jīng)在指定的范圍中存在,那么賦予這個Bean一個新的數(shù)據(jù)開庫類型 。如果使用type屬性的同時沒有使用class或beanName,Bean將不會被實例化。注意package和class的名稱區(qū)分大小寫。 5
32、5beanNamebeanName=package.class | %= expression =package.class | type=package.class % type=package.class 使用java.beans.Beans.instantiate方法來從一個class或串行化的模板中實例化一個Bean,同時指定Bean的類型。 Beans.instantiate方法將檢查此名稱是否表示一個類或一個串行化模板。如果這個Bean是被串行化的,那么Beans.instantiate方法將通過使用一個類裝載器讀取串行化格式(類似package.class.ser)。 beanN
33、amebeanName可以可以是是packagepackage和和classclass,也可以是也可以是表達式,它的值會傳給表達式,它的值會傳給Beans.instantiateBeans.instantiate方方法。法。typetype的值可以和的值可以和BeanBean相同,也可以是它相同,也可以是它的基類,或者是它所實現(xiàn)的接口。的基類,或者是它所實現(xiàn)的接口。 packagepackage和和 class class 名字區(qū)分大小寫。名字區(qū)分大小寫。 JSP JSP 語法格式如下:語法格式如下: / 屬性:屬性: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 語法格式如下:語法格式如下: 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實例的名字。 2 2p
36、roperty=property=* * 儲存用戶在jsp輸入的所有值,用于匹配Bean中的屬性。 3 3property=property=propertyNamepropertyName paramparam=parameterNameparameterName 用一個參數(shù)值來指定Bean中的一個屬性值,一般情況下是從request對象中獲得的。其中property指定Bean的屬性名,param指定request中的參數(shù)名。 4 4property=property=propertyNamepropertyName value=string | value=string | 使用指定的值
37、來設(shè)定Bean屬性。這個值可以是字符串,也可以是表達式。如果這個字符串,那么它就會被轉(zhuǎn)換成Bean屬性的類型(轉(zhuǎn)換方法見表4.1)。如果是一個表達式,那么它的類型就必須和將要設(shè)定的屬性值的類型一致。 如果參數(shù)值為空值,那么對應(yīng)的屬性值也不會被設(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; 例:/建立類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)置對象,包括:有以下九種內(nèi)置對象,包括: request,請求對象請求對象 response,響應(yīng)對象響應(yīng)對象 pageContext,頁面上下文對象頁面上下文對象 session,會話對象會話對象 application,應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?out,輸出對象輸出對象 config,配置對象配置對象 page,頁面對象頁面對象 exception,例外對象例
40、外對象 request,請求對象請求對象 session,會話對象會話對象 application,應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?有幾種對象看起來和有幾種對象看起來和ASP的內(nèi)置對象差不的內(nèi)置對象差不多,功能也類似,這是因為這些內(nèi)置對多,功能也類似,這是因為這些內(nèi)置對象的構(gòu)建基礎(chǔ)是標準化的象的構(gòu)建基礎(chǔ)是標準化的HTTP協(xié)議。如協(xié)議。如果使用過果使用過ASP,又對又對Java有一定的了解的有一定的了解的話,那么對這幾種話,那么對這幾種JSP內(nèi)置對象的使用應(yīng)內(nèi)置對象的使用應(yīng)該能迅速掌握。需要注意的問題是對象該能迅速掌握。需要注意的問題是對象名的寫法,包括這些對象方法的調(diào)用時名的寫法,包括這些對象方法的
41、調(diào)用時也要書寫正確,因為也要書寫正確,因為Java語言本身是大語言本身是大小寫敏感的。小寫敏感的。 從本質(zhì)上講,從本質(zhì)上講,JSP的這些內(nèi)置對象其實都是由的這些內(nèi)置對象其實都是由特定的特定的Java類所產(chǎn)生的,在服務(wù)器運行時根據(jù)類所產(chǎn)生的,在服務(wù)器運行時根據(jù)情況自動生成,所以如果你有較好的情況自動生成,所以如果你有較好的Java基礎(chǔ),基礎(chǔ),可以參考相應(yīng)的類說明,表可以參考相應(yīng)的類說明,表3.1給出了他們的給出了他們的對應(yīng)關(guān)系。更進一步的講解將會在講解對應(yīng)關(guān)系。更進一步的講解將會在講解Servlet的一章中展開,如果你的的一章中展開,如果你的Java基礎(chǔ)不太好,可基礎(chǔ)不太好,可以先熟悉在這一章里
42、所介紹的各種方法的使以先熟悉在這一章里所介紹的各種方法的使用。用。 “request” 對象代表的是來自客戶端的請求,例如我對象代表的是來自客戶端的請求,例如我們在們在FORM表單中填寫的信息等,是最常用的對象。表單中填寫的信息等,是最常用的對象。關(guān) 于 它 的 方 法 使 用 較 多 的 是關(guān) 于 它 的 方 法 使 用 較 多 的 是 getParameter、getParameterNames和和getParameterValues,通過調(diào)用這通過調(diào)用這幾個方法來獲取請求對象中所包含的參數(shù)的值幾個方法來獲取請求對象中所包含的參數(shù)的值“response” 對象代表的是對客戶端的響應(yīng),也對象
43、代表的是對客戶端的響應(yīng),也就是說可以通過就是說可以通過“response”對象來組織發(fā)送到客戶對象來組織發(fā)送到客戶端的數(shù)據(jù)。但是由于組織方式比較底層,所以不建端的數(shù)據(jù)。但是由于組織方式比較底層,所以不建議普通讀者使用,需要向客戶端發(fā)送文字時直接使議普通讀者使用,需要向客戶端發(fā)送文字時直接使用用“out” 對象即可。對象即可。 姓名 你好你好, , 今天是今天是 號,星期號,星期 你好,獨孤求敗, 今天是 9號,星期1 “pageContext” 對象直譯時可以稱作對象直譯時可以稱作“頁面頁面上下文上下文”對象,代表的是當前頁面運行的一些對象,代表的是當前頁面運行的一些屬性,常用的方法包括屬性,
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” 對象用到得也不是很多,只有對象用到得也不是很多,只有在項目所面臨的情況比較復(fù)雜的情況下,才會在項目所面臨的情況比較復(fù)雜的情況下,才會利用到頁面屬性來輔助處理。利用到頁面屬性來輔助處理。 “session” 對象代表服務(wù)器與客戶端所對象代表服務(wù)器與客戶端所建立的會話,當需要在不同的建立的會話,當需要在不同的JSP頁面中頁面中保留客戶信息的情況下使用
45、,比如在線保留客戶信息的情況下使用,比如在線購物、客戶軌跡跟蹤等。購物、客戶軌跡跟蹤等?!皊ession” 對對象建立在象建立在cookie的基礎(chǔ)上,所以使用時應(yīng)的基礎(chǔ)上,所以使用時應(yīng)注意判斷一下客戶端是否打開了注意判斷一下客戶端是否打開了cookie。常用的方法包括常用的方法包括getId、 getValue、 getValueNames和和putValue等。等。 概要概要HTTP是無狀態(tài)(stateless)協(xié)議;Web Server 對每一個客戶端請求都沒有歷史記憶;Session用來保存客戶端狀態(tài)信息;由Web Server 寫入;存于客戶端;客戶端的每次訪問都把上次的session
46、記錄傳遞給Web Server;Web Server讀取客戶端提交的session來獲取客戶端的狀態(tài)信息; 姓名 你的名字已經(jīng)寫入session check ) 您還未登錄 已經(jīng)登錄 “application” 對象負責提供應(yīng)用程序在對象負責提供應(yīng)用程序在服務(wù)器中運行時的一些全局信息,常用服務(wù)器中運行時的一些全局信息,常用的方法有的方法有g(shù)etMimeType和和getRealPath等。等。 “out” 對象代表了向客戶端發(fā)送數(shù)據(jù)的對象,對象代表了向客戶端發(fā)送數(shù)據(jù)的對象,與與“response” 對象不同,通過對象不同,通過“out” 對象發(fā)送對象發(fā)送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本一
47、的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本一級的,可以通過級的,可以通過“out” 對象直接向客戶端寫一對象直接向客戶端寫一個由程序動態(tài)生成個由程序動態(tài)生成HTML文件。常用的方法除了文件。常用的方法除了pirnt和和println之外,還包括之外,還包括clear、clearBuffer、flush、getBufferSize和和getRemaining,這是因為這是因為“out” 對象內(nèi)部包含了一個緩沖區(qū),所以需要對象內(nèi)部包含了一個緩沖區(qū),所以需要一些對緩沖區(qū)進行操作的方法。一些對緩沖區(qū)進行操作的方法。 “config” 對象提供一些配置信息,常用的方法有對象提供一些配置信息,常用的方法有g(shù)e
48、tInitParameter和和getInitParameterNames,以獲得以獲得Servlet初始化時的參數(shù)。初始化時的參數(shù)。 “page” 對象代表了正在運行的由對象代表了正在運行的由JSP文件產(chǎn)生的類文件產(chǎn)生的類對象,不建議一般讀者使用。對象,不建議一般讀者使用。 “exception” 對象則代表了對象則代表了JSP文件運行時所產(chǎn)生的文件運行時所產(chǎn)生的例外對象,此對象不能在一般例外對象,此對象不能在一般JSP文件中直接使用,文件中直接使用,而只能在使用了而只能在使用了“”的的JSP文件中使用文件中使用 1getAttribute 原型:原型:public java.lang.Ob
49、ject getAttribute(java.lang.String name) 說明:以對象的形式返回特定名稱的屬性值。說明:以對象的形式返回特定名稱的屬性值。這個方法允許這個方法允許Servlet引擎給出一個客戶請求的引擎給出一個客戶請求的特定信息。特定信息。 ( Servlet為服務(wù)器端小程序,所為服務(wù)器端小程序,所有有JSP頁面都事先翻譯成頁面都事先翻譯成Servlet后才執(zhí)行)后才執(zhí)行) 如果所給名稱的屬性不存在將返回空值。如果所給名稱的屬性不存在將返回空值。 屬性名應(yīng)該遵循和包命名方式同樣的約定,屬性名應(yīng)該遵循和包命名方式同樣的約定,不要采用如不要采用如“java.*”、“ jav
50、ax.*”及及 “sun.*”.這這樣的命名。樣的命名。 參數(shù):參數(shù):name 一個標示屬性名的字符串一個標示屬性名的字符串 返回值:一個包含屬性值的對象,當屬性不返回值:一個包含屬性值的對象,當屬性不存在是為空。存在是為空。 request 用戶登錄用戶登錄 用戶名:用戶名: 密碼:密碼: 瀏覽器類型瀏覽器類型: IE Netscape 資料選項:資料選項: 標題標題 詳細詳細 test%out.println(用戶名:用戶名:+request.getParameter(User)+);out.println(密碼:密
51、碼:+request.getParameter(pwd)+);out.println(瀏覽器:瀏覽器:+request.getParameter(radio)+);out.println(標題:標題:+request.getParameter(check1)+);out.println(詳細:詳細:+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請輸入您的姓名:請輸入您的姓名: post.jsp 您的姓名
54、是:您的姓名是: 您最喜歡的娛樂是:您最喜歡的娛樂是: post1.jsp您的姓名是:您的姓名是: 您喜歡的娛樂是:您喜歡的娛樂是: 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)頁計數(shù)器網(wǎng)頁計數(shù)器您是第您是第位訪問者!位訪問者!Error page loginAn error occured in the bean. Error Message is: 全面介紹了全面介紹了JSP的幾種內(nèi)置對
56、象。熟練使用這的幾種內(nèi)置對象。熟練使用這些內(nèi)置對象是開發(fā)些內(nèi)置對象是開發(fā)JSP應(yīng)用程序的基本要求,應(yīng)用程序的基本要求,尤其是對于尤其是對于request、session和和application對象對象更是必須要掌握的。更是必須要掌握的。 會使用對象所具有的方法,能熟練使用每一會使用對象所具有的方法,能熟練使用每一種對象的幾種常用方法。種對象的幾種常用方法。 可以獲得文本框、文本區(qū)域、單選、多選的可以獲得文本框、文本區(qū)域、單選、多選的值值 表單中各元素表單中各元素的的NAME屬性是它的唯一標識,屬性是它的唯一標識,用它獲取參數(shù)。用它獲取參數(shù)。 參考參考peixun2.11.jsp及及post.jsorequest.getParameter(User); 使用內(nèi)置對象使用內(nèi)置對象outout.println(content) 使用使用“=” 參看參看peixun2.11.jsp和和post.jspout.println(用戶名:用戶名: +User+); 參看參看peixun2.14.jsp您是第您是第
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人住宅裝修竣工驗收合同7篇
- 二零二五年財務(wù)咨詢服務(wù)合同標的費用與服務(wù)內(nèi)容
- 2025年個人合伙退伙協(xié)議書示范文本解讀4篇
- 弱電智能化設(shè)計合同(2篇)
- 工程結(jié)算合同(2篇)
- 2024年中級經(jīng)濟師考試題庫附參考答案(奪分金卷)
- 2024年助理會計師《初級會計實務(wù)》高頻真題庫匯編及答案
- 電子控制方向課程設(shè)計
- 二零二五年度汽車零部件模具設(shè)計合作協(xié)議3篇
- 2025年二零二五民辦學校教師科研創(chuàng)新聘用協(xié)議4篇
- 2024-2025學年山東省濰坊市高一上冊1月期末考試數(shù)學檢測試題(附解析)
- 數(shù)學-湖南省新高考教學教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學年2025屆高三上學期第一次預(yù)熱演練試題和答案
- 2020-2024年安徽省初中學業(yè)水平考試中考物理試卷(5年真題+答案解析)
- 部編版5年級語文下冊第五單元學歷案
- 高考介詞練習(附答案)
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機構(gòu)監(jiān)督
- 記錄片21世紀禁愛指南
- 腰椎間盤的診斷證明書
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)七 裂變傳播
- 單級倒立擺系統(tǒng)建模與控制器設(shè)計
評論
0/150
提交評論