




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 2 3 4 復(fù)習(xí)JSP的概念 nJava Server Page nServlet簡化設(shè)計,邏輯與界面設(shè)計分開, 開發(fā)更方便; nHTML語法的 java 擴(kuò)展,加入新的標(biāo)簽 (,); n強(qiáng)大的組件(Java Bean)支持功能; 5 JSP文件結(jié)構(gòu)及主要標(biāo)簽 . 其他 HTML 語言 其他 HTML 語言 6 JSP示例(Hello.jsp) % for ( int i=0; i 你好 你好 你好 7 JSP執(zhí)行過程 n *.jsp*.java*.class request response 執(zhí)行 jsp parser JSDK servlet servlet 分析器 8 JSP n執(zhí)行過
2、程 9 JSP示例(Hello_Date.jsp) 你好,今天是 號, 星期 import java.util.*; response.setContentType(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文件
3、 10 JSP示例(瀏覽結(jié)果) 11 JSP語法概述 nJSP原始代碼中包含了JSP元素和 Template(模板) data兩類 nTemplate data指的是JSP引擎不處理的部 分,即標(biāo)記以外的部分,例 如代碼中的HTML的內(nèi)容等 ,這些數(shù)據(jù) 會直接傳送到客戶端的瀏覽器 nJSP元素則是指將由JSP引擎直接處理的 部分,這一部分必須符合JSP語法,否則 會導(dǎo)致編譯錯誤。 12 jsp例子(hi.jsp) n Hi-JSP實(shí)驗(yàn) Template data JSP元素 13 JSP語法 nJSP語法分為三種不同的類型 編譯器指令(DIRECTIVE) 例如: 腳本語法(SCRIPTING
4、) 動作語法(ACTION) 例如: , , 14 腳本語法 n腳本語法包括 n“HTML注釋”: n“隱藏注釋”: n“聲明” n“表達(dá)式” n“腳本段” 15 編譯器指令 n編譯器指令包括“包含指令”, “頁指 令”和“taglib指令” n它們包含在“”卷標(biāo)里。 n兩個主要的指令是page與include。 16 動作語法 n動作語法包括, , , 和。 17 HTML注釋 nJSP 語法格式如下: n!- comment - 或 n!- 注釋 - n這種注釋發(fā)送到客戶端,但不直接顯示, 在源代碼中可以查看到。 18 HTML注釋(peixun2.1.jsp) HTML注釋 未顯示上一行
5、的注釋。 19 HTML注釋 20 HTML注釋(peixun2.2.jsp) 要多加練習(xí) !-This page was loaded on - 在源文件中包括當(dāng)前時間。 21 HTML注釋 22 IE中的源程序有注釋 23 隱藏注釋 nJSP 語法格式如下: n 不發(fā)送到客戶端。 24 隱藏注釋 (peixun2.3.jsp) A Comment Test A Test of Comments 25 隱藏注釋 26 在IE中查看源代碼 27 聲明 nJSP 語法格式如下: n 或 n 28 聲明(test2.4.jsp) test2.4.jsp 29 表達(dá)式 n用于在頁面上輸出信息,語法格
6、式如下: n 或 n 30 表達(dá)式(peixun2.4.jsp) test 31 表達(dá)式 a= b= c= 32 peixun2.4.jsp執(zhí)行結(jié)果 33 腳本段 nJSP 語法格式如下: n 或 n 34 腳本段 (peixun2.5.jsp) test 35 % condition=1; switch(condition) case 0: out.println(You must select condition 0!+); break; case 1: out.println(You must select condition 1!+); 36 break; case 2: out.pr
7、intln(You must select condition 2!+); break; default: out.println(Your select not in 0,1,2,select again!+); % 轉(zhuǎn)義符: 雙引號 “ ,單引號,反斜杠,回車r,換行n,制表 符t,退格b 37 腳本段執(zhí)行結(jié)果 38 包含指令 ninclude指令:向當(dāng)前頁中插入一個靜態(tài)文件 的內(nèi)容。 nJSP 語法格式如下: n 或 n 39 包含指令(peixun2.6.jsp) test The current date and time are 40 “peixun2.6.1.jsp” 41 包含
8、指令 42 Page指令 n“Page”指令用于定義JSP文件中的全局屬性。 JSP 語法格式如下: 44 Page指令 n屬性: 1language=java 聲明腳本語言的種類,目前只能用java 。 2.import=package.class | package.* ,. 需要導(dǎo)入的Java包的列表,這些包作用于程序 段,表達(dá)式,以及聲明。下面的包在JSP編譯時 已經(jīng)導(dǎo)入了,所以就不需要再指明了: java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* 45 3errorPage=relativeURL
9、設(shè)置處理異常事件的JSP文件。 4isErrorPage=true | false 設(shè)置此頁是否為出錯頁,如果被設(shè)置為 true,你就能使用exception對象 46 page指令詳說 n“”指令作用于整個JSP頁面,同樣包括 靜態(tài)的包含文件。但是“”指令不能作用 于動態(tài)的包含文件,比如 “”。 n可以在一個頁面中用上多個“”指令,但 是其中的屬性只能用一次,不過也有例外,那就是 import屬性。因?yàn)閕mport屬性和Java中的import語句 類似(參照J(rèn)ava Language,import語句引入得是Java 語言中的類),所以此屬性就能多用幾次。 n無論把“”指令放在JSP的文件
10、的哪個地 方,它的作用范圍都是整個JSP頁面。不過,為了JSP 程序的可讀性,以及好的編程習(xí)慣,最好還是把它放 在JSP文件的頂部。 47 page指令(peixun2.7.jsp) test3 Test for using Page. 48 page指令例子運(yùn)行結(jié)果 49 taglib指令 nJSP語法 n用于引入定制標(biāo)簽庫 50 taglib指令 n屬性 n1uri=URIToTagLibrary nUniform Resource Identifier (URI)根據(jù)標(biāo)簽的 前綴對自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是 以下的內(nèi)容: nUniform Resource Locator
11、(URL), 由 RFC 2396 定義, 可以從以下位置查看 (http:/www.hut.fi/u /jkorpela/rfc/2396/full.html)。 n Uniform Resource Name (URN), 由 RFC 2396定義 n一個相對或絕對的路徑 n可以是標(biāo)簽庫描述文件 51 n2prefix=tagPrefix n表示標(biāo)簽在JSP中的名稱。 n在 自 定 義 標(biāo) 簽 之 前 的 前 綴 , 比 如 , 在 中的public,如果這里不寫 public,那么這就是不合法的。請不要用 jsp, jspx, java, javax, servlet, sun, 和su
12、nw做為你的前綴,這些已被Sun公司聲 明保留。 52 Tablib指令(peixun2.8.jsp) test 53 nJSP 語法格式如下: 1jsp:forward page=relativeURL | / 2jsp:forward page=relativeURL | jsp:param name=parameterName value=parameterValue | / (“”指可以有多個“” 標(biāo)記。) 54 屬性: n1、page=relativeURL | n這里是一個表達(dá)式或是一個字符串用于 說明你將要定向的文件或URL。這個文件 可以是JSP,程序段,或者其它能夠處理 re
13、quest對象的文件(如asp,cgi,php)。 55 n2jsp:param name=parameterName value=parameterValue | / n向一個動態(tài)文件發(fā)送一個或多個參數(shù), 這個文件必須是動態(tài)文件。如果想傳遞 多個參數(shù),可以在一個JSP文件中使用多 個“”;“name”指定參數(shù) 名,“value”指定參數(shù)值。 56 注意 n“”標(biāo)簽從一個JSP文件 向另一個文件傳遞一個包含用戶請求的 request對象?!啊睒?biāo)簽 以后的代碼,將不能執(zhí)行。 57 例子(peixun2.9.jsp) test 58 forwardTo.jsp 59 運(yùn)行結(jié)果(TOMCAT) 60
14、 n包含一個靜態(tài)或動態(tài)文件. n JSP 語法格式如下: 1jsp:include page=relativeURL | flush=true / 2jsp:include page=relativeURL | flush=true jsp:param name=parameterName value=parameterValue | / (“”指可以有多個“”標(biāo)記。) 61 的屬性 1page=relativeURL | 參數(shù)為一相對路徑,或者是代表相對路徑的表達(dá)式。 2flush=true 這里必須使用flush=true,不能使用false值。而缺 省值為false 。 62 3jsp:
15、param name=parameterName value=parameterValue | / “”用來傳遞一個或多個參數(shù) 到指定的動態(tài)文件,能在一個頁面中使 用多個“”來傳遞多個參數(shù), 63 例子(peixun2.10.jsp) peixun.2.10.jsp 64 peixun2.10.1.jsp % String username; username=request.getParameter(User); out.println(Username is +username+); % 65 運(yùn)行結(jié)果(TOMCAT) 66 n使用“”插入一個applet或Bean, 必要的話還要下載一個
16、Java插件用于執(zhí)行它。 n nJSP 語法格式如下: 68 jsp:param name=parameterName value=parameterValue | / + text message for user 69 屬性 1type=bean | applet 將被執(zhí)行的插件對象的類型,你必須得指定這個 是Bean還是applet,因?yàn)檫@個屬性沒有缺省值。 2code=classFileName 將會被Java插件執(zhí)行的Java Class的名字,必須 以.class結(jié)尾。這個文件必須存在于codebase 屬性指定的目錄中。 70 n3codebase=classFileDirect
17、oryName n將會被執(zhí)行的Java Class文件的目錄(或者是 路徑),如果你沒有提供此屬性,那么使用 的jsp文件的目錄將會被使用。 n n4name=instanceName n這個Bean或applet實(shí)例的名字,它將會在Jsp 其它的地方調(diào)用。 71 例子 Unable to load applet 72 n創(chuàng)建一個Bean實(shí)例并指定它的名字和作用 范圍。 n JSP 語法格式如下: jsp:useBean id=beanInstanceName scope=page | request | session | application class=package.class |
18、73 type=package.class | c l a s s = p a c k a g e . c l a s s type=package.class | beanName=package.class | type=package.class / | other elements 74 屬性以及用法 n1id=beanInstanceName n在所定義的范圍中確認(rèn)Bean的變量,使之能在 后面的程序中使用此變量名來分辨不同的 Bean ,這個變量名對大小寫敏感,必須符合 所使用的腳本語言的規(guī)定,這個規(guī)定在Java Language 規(guī)范已經(jīng)寫明。如果Bean已經(jīng)在別 的“”標(biāo)記中創(chuàng)
19、建,則當(dāng)使用 這個已經(jīng)創(chuàng)建過Bean時,id的值必須與原來的 那個id值一致;否則則意味著創(chuàng)建了同一個類 的兩個不同的對象。 75 n2scope=page | request | session | application nBean存在的范圍以及id變量名的有效范 圍。缺省值是page,以下是詳細(xì)說明: npage - 能在包含“”元素的 JSP文件以及此文件中的所有靜態(tài)包含文件 中使用這個Bean,直到頁面執(zhí)行完畢向客戶 端發(fā)回響應(yīng)或轉(zhuǎn)到另一個文件為止。 76 nrequest - 在任何執(zhí)行相同請求的Jsp文件中 使用這個Bean,直到頁面執(zhí)行完畢向客戶端發(fā) 回響應(yīng)或轉(zhuǎn)到另一個文件為止
20、。能夠使用 R e q u e s t 對 象 訪 問 這 個 B e a n , 比 如 request.getAttribute(beanInstanceName)。 nsession - 從創(chuàng)建Bean開始,就能在任何使用 相同session的jsp文件中使用這個Bean。這個 Bean存在于整個Session生存周期內(nèi),任何在 分享此Session的Jsp文件都能使用同一Bean。 注意在創(chuàng)建這個Bean的Jsp文件中“”指令中必須指定“session=true”。 77 napplication - 從創(chuàng)建Bean開始,就能 在任何使用相同application的Jsp文件 中使用B
21、ean。這個Bean存在于整個 application生存周期內(nèi),任何在分享此 application的Jsp文件都能使用同一 Bean. 78 n3class=package.class n使用new關(guān)鍵字以及class構(gòu)造器從一個class中實(shí) 例化一個bean。這個class不能是抽象的,必須有 一個公用的,沒有參數(shù)的構(gòu)造器。這個package的 名字區(qū)別大小寫。 n 4type=package.class n如果這個Bean已經(jīng)在指定的范圍中存在,那么賦予 這個Bean一個的數(shù)據(jù)開庫類型 。如果使用type屬 性的同時沒有使用class或beanName,Bean將不會 被實(shí)例化。注意
22、package和class的名稱區(qū)分大小寫。 79 n5beanName=package.class | type=package.class n使用java.beans.Beans.instantiate方法來從一個 class或串行化的模板中實(shí)例化一個Bean,同時指 定Bean的類型。 Beans.instantiate方法將檢查此 名稱是否表示一個類或一個串行化模板。如果這個 Bean是被串行化的,那么Beans.instantiate方法 將通過使用一個類裝載器讀取串行化格式(類似 package.class.ser)。 80 nbeanName可以是package和class,也可
23、 以 是 表 達(dá) 式 , 它 的 值 會 傳 給 Beans.instantiate方法。type的值可以 和Bean相同,也可以是它的基類,或者 是它所實(shí)現(xiàn)的接口。 package和 class 名字區(qū)分大小寫。 81 nJSP 語法格式如下: 屬性: 1name=beanInstanceName bean的名字,由指定。 2property=propertyName 所指定的Bean的屬性名。 82 例子 /聲明引用的聲明引用的beanbean / test Calendar of 83 n設(shè)置Bean的屬性值. n JSP 語法格式如下: jsp:setProperty name=bea
24、nInstanceName property= * | p r o p e r t y = p r o p e r t y N a m e param=parameterName | p r o p e r t y = p r o p e r t y N a m e value=string | / 84 屬性 n1name=beanInstanceName n表示已經(jīng)在“”中創(chuàng)建的 Bean實(shí)例的名字。 n2property=* n儲存用戶在jsp輸入的所有值,用于匹配 Bean中的屬性。 85 n 3property=propertyName param=parameterName n用一
25、個參數(shù)值來指定Bean中的一個屬性值, 一般情況下是從request對象中獲得的。其 中property指定Bean的屬性名,param指定 request中的參數(shù)名。 86 n4property=propertyName value=string | n使用指定的值來設(shè)定Bean屬性。這個值可以是字符 串,也可以是表達(dá)式。如果這個字符串,那么它就 會被轉(zhuǎn)換成Bean屬性的類型(轉(zhuǎn)換方法見表4.1)。 如果是一個表達(dá)式,那么它的類型就必須和將要設(shè) 定的屬性值的類型一致。 n如果參數(shù)值為空值,那么對應(yīng)的屬性值也不會被設(shè) 定。此外,不能在同一個“” 中同時使用param和value參數(shù) 。 87
26、package rmg; public class student private long classNo; private String name; private int age; private boolean sexy; public student() /構(gòu)造函數(shù) classNo=970431; name=ZZZl; age=34; sexy=true; 例:/建立類rmg.student 88 public long getClassNo() return classNo; public void setClassNo(long no) this.classNo=no; publ
27、ic String getName() return name; public void setName(String name) =name; 89 public int getAge() return age; public void setAge(int age) this.age=age; public boolean getSexy() return sexy; public void setSexy(boolean sexy) this.sexy=sexy; 90 91 92 第一次運(yùn)行結(jié)果 93 以后運(yùn)行結(jié)果 第一行發(fā)生變化 94 測試session作用域 95
28、 96 運(yùn)行結(jié)果 97 小結(jié)與習(xí)題 n本局面集中介紹了JSP的各種語法,掌握這些語法使讀 者進(jìn)行JSP開發(fā)的基本要求,于一般的網(wǎng)頁開發(fā)不同, JSP對大小寫是敏感的,這一點(diǎn)要注意,尤其是對曾使 用過其他開發(fā)語言的讀者。 n與Bean相關(guān)的幾種語法的使用將在“Bean的使用”一 章中專門進(jìn)行講解,因此可對照學(xué)習(xí)。熟練使用這些 語法是必須的,因此讀者應(yīng)該多加練習(xí),觀察不同用 法所產(chǎn)生的效果上的差異。對于給出的例子最好是自 己敲入文件并觀察執(zhí)行結(jié)果。 n隨后的幾章將各有重點(diǎn)的講述與語法相關(guān)的一些問 題。 98 習(xí)題 n1舉例說明HTML注釋與隱藏注釋有何異同。 n2試寫一個JSP文件,包含所有JSP
29、語法元素 n3Scriptlet中應(yīng)遵循什么樣的語法規(guī)則? n4元素包含靜態(tài)文件與包含動 態(tài)文件處理上有何不同? n5起到什么樣的作用?使用時 有哪些注意事項(xiàng)? n6page指令能起到那些作用?有效范圍有多 大? 99 100 nJSP 有以下九種內(nèi)置對象,包括: n request,請求對象 nresponse,響應(yīng)對象 npageContext,頁面上下文對象 nsession,會話對象 napplication,應(yīng)用程序?qū)ο?nout,輸出對象 nconfig,配置對象 npage,頁面對象 nexception,例外對象 101 重點(diǎn)介紹 nrequest,請求對象 nsession,
30、會話對象 napplication,應(yīng)用程序?qū)ο?102 綜述 n有幾種對象看起來和ASP的內(nèi)置對象差不 多,功能也類似,這是因?yàn)檫@些內(nèi)置對 象的構(gòu)建基礎(chǔ)是標(biāo)準(zhǔn)化的HTTP協(xié)議。如 果使用過ASP,又對Java有一定的了解的 話,那么對這幾種JSP內(nèi)置對象的使用應(yīng) 該能迅速掌握。需要注意的問題是對象 名的寫法,包括這些對象方法的調(diào)用時 也要書寫正確,因?yàn)镴ava語言本身是大 小寫敏感的。 103 n從本質(zhì)上講,JSP的這些內(nèi)置對象其實(shí)都 是由特定的Java類所產(chǎn)生的,在服務(wù)器 運(yùn)行時根據(jù)情況自動生成,所以如果你 有較好的Java基礎(chǔ),可以參考相應(yīng)的類 說明,表3.1給出了他們的對應(yīng)關(guān)系。更 進(jìn)
31、一步的講解將會在講解Servlet的一章 中展開,如果你的Java基礎(chǔ)不太好,可 以先熟悉在這一章里所介紹的各種方法 的使用。 104 105 request和response n“request” 對象代表的是來自客戶端的請求, 例如我們在FORM表單中填寫的信息等,是最 常用的對象。關(guān)于它的方法使用較多的是 getParameter、getParameterNames和 getParameterValues,通過調(diào)用這幾個方法來 獲取請求對象中所包含的參數(shù)的值 n“response” 對象代表的是對客戶端的響應(yīng), 也就是說可以通過“response”對象來組織發(fā)送 到客戶端的數(shù)據(jù)。但是由于
32、組織方式比較底層, 所以不建議普通讀者使用,需要向客戶端發(fā)送 文字時直接使用“out” 對象即可。 106 request對象示例 姓名 107 request對象示例(Hello_req.jsp 你好, , 今天是 號,星期 108 request對象示例(輸出結(jié)果) 你好, 獨(dú)孤求敗, 今天是 9號,星期1 109 pageContext n“pageContext” 對象直譯時可以稱作“頁 面上下文”對象,代表的是當(dāng)前頁面運(yùn)行的一 些屬性,常用的方法包括findAttribute、 getAttribute、getAttributesScope和 getAttributeNamesInS
33、cope,一般情況下 “pageContext” 對象用到得也不是很多,只有 在項(xiàng)目所面臨的情況比較復(fù)雜的情況下,才會 利用到頁面屬性來輔助處理。 n 110 session對象 n“session” 對象代表服務(wù)器與客戶端所 建立的會話,當(dāng)需要在不同的JSP頁面中 保留客戶信息的情況下使用,比如在線 購物、客戶軌跡跟蹤等?!皊ession” 對 象建立在cookie的基礎(chǔ)上,所以使用時應(yīng) 注意判斷一下客戶端是否打開了cookie。 常用的方法包括getId、 getValue、 getValueNames和putValue等。 111 session對象 n概要 nHTTP是無狀態(tài)(stat
34、eless)協(xié)議; nWeb Server 對每一個客戶端請求都沒有歷史記憶; nSession用來保存客戶端狀態(tài)信息; n由Web Server 寫入; n存于客戶端; n客戶端的每次訪問都把上次的session記錄傳遞給 Web Server; nWeb Server讀取客戶端提交的session來獲取客戶 端的狀態(tài)信息; 112 session對象示例(Form表單 Logon_session.html) 姓名 113 session對象示例Logon_session.jsp 你的名字已經(jīng)寫入session check 114 session對象示例(Check_session.jsp)
35、 您還未登錄 已經(jīng)登錄 115 application對象 n“application” 對象負(fù)責(zé)提供應(yīng)用程序在 服務(wù)器中運(yùn)行時的一些全局信息,常用 的方法有g(shù)etMimeType和getRealPath等。 116 out n“out” 對象代表了向客戶端發(fā)送數(shù)據(jù)的對象, 與“response” 對象不同,通過“out” 對象發(fā) 送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本 一級的,可以通過“out” 對象直接向客戶端寫 一個由程序動態(tài)生成HTML文件。常用的方法 除了pirnt和println之外,還包括clear、 clearBuffer、flush、getBufferSize和 getRe
36、maining,這是因?yàn)椤皁ut” 對象內(nèi)部包含 了一個緩沖區(qū),所以需要一些對緩沖區(qū)進(jìn)行操 作的方法。 117 config、 page、 exception n“config” 對象提供一些配置信息,常用的方法 有g(shù)etInitParameter和getInitParameterNames, 以獲得Servlet初始化時的參數(shù)。 n“page” 對象代表了正在運(yùn)行的由JSP文件產(chǎn) 生的類對象,不建議一般讀者使用。 n“exception” 對象則代表了JSP文件運(yùn)行時所 產(chǎn)生的例外對象,此對象不能在一般JSP文件 中直接使用,而只能在使用了“”的JSP文件中使用 118 request請求對
37、象 n1getAttribute n原型:public java.lang.Object getAttribute(java.lang.String name) n說明:以對象的形式返回特定名稱的屬 性值。這個方法允許Servlet引擎給出一 個客戶請求的特定信息。 ( Servlet為服 務(wù)器端小程序,所有JSP頁面都事先翻譯 成Servlet后才執(zhí)行) 119 request請求對象 n 如果所給名稱的屬性不存在將返回空值。 n 屬性名應(yīng)該遵循和包命名方式同樣的約 定,不要采用如“java.*”、“ javax.*”及 “sun.*”.這樣的命名。 n參數(shù):name 一個標(biāo)示屬性名的字符串
38、 n返回值:一個包含屬性值的對象,當(dāng)屬 性不存在是為空。 120 request對象使用示例( peixun2.11.jsp ) request 用戶登錄 用戶名: 密碼: 121 瀏覽器類型: IE Netscape 資料選項(xiàng): 標(biāo)題 詳細(xì) 122 Post.jsp代碼 test % out.println(用戶名:+request.getParameter(User)+); out.println(密碼:+request.getParameter(pwd)+); out.println(瀏覽器:+request.getParameter(radio)+); out.println(標(biāo)題:+
39、request.getParameter(check1)+); out.println(詳細(xì):+request.getParameter(check2)+); out.println(隱含:+request.getParameter(hidden)+); out.println(getContentLength()=+request.getContentLength()+); 123 out.println(getContentType()=+request.getContentType()+); out.println(getRequestURI()=+request.getRequestU
40、RI()+); out.println(getServerPort()=+request.getServerPort()+); out.println(getServerName()=+request.getServerName()+); out.println(getProtocol()=+request.getProtocol()+); out.println(getRemoteAddr()=+request.getRemoteAddr()+); out.println(getHeaderNames()=+request.getHeaderNames()+); out.println(ge
41、tMethod()=+request.getMethod()+); out.println(getServletPath()=+request.getServletPath()+); out.println(isRequestedSessionIdValid()=+request.isRequestedSessionIdVali d()+ ); % 124 運(yùn)行結(jié)果 125 126 session對象示例 session 請輸入您的姓名: 127 post1.jsp post.jsp 您的姓名是: 您最喜歡的娛樂是: 128 post11.jsp post1.jsp 您的姓名是: 您喜歡的娛樂
42、是: 129 運(yùn)行結(jié)果 130 提交后 131 輸入值 132 再次提交(保存名字) 133 application對象運(yùn)行示例 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.j
43、sp is: +application.getResource(“/peixun2.13.jsp)+); out.println(getServerInfo()=+application.getServerInfo()+); out.println(application.getRealPath( ); application.log(Add a Record to log_file); % 134 運(yùn)行結(jié)果 135 application對象實(shí)現(xiàn)網(wǎng)頁計數(shù)器 網(wǎng)頁計數(shù)器 您是第位訪問者! 136 運(yùn)行結(jié)果(第一次訪問) 137 刷新一次 138 exception對象示例 Error page
44、 login An error occured in the bean. Error Message is: 139 內(nèi)置對象小結(jié) n全面介紹了JSP的幾種內(nèi)置對象。熟練使 用這些內(nèi)置對象是開發(fā)JSP應(yīng)用程序的基 本要求,尤其是對于request、session和 application對象更是必須要掌握的。 n會使用對象所具有的方法,能熟練使用 每一種對象的幾種常用方法。 140 141 Web運(yùn)行原理1 n客戶端同Web服務(wù)器之間的協(xié)議為http nHTTP為超文本傳輸協(xié)議 nHTPP協(xié)議為“請求和響應(yīng)”協(xié)議 n客戶端請求包括:請求行、頭、信息體 n客戶端請求的方法 nGET、POST、H
45、EAD nDELETE、TRACE、PUT n提交表單的方法: GET、POST 142 Web運(yùn)行原理2 n服務(wù)器接收到請求后,返回HTTP響應(yīng) n每個響應(yīng):狀態(tài)行、頭、信息體 n常見狀態(tài) n404 所請求的文件不存在 n500 服務(wù)器程序出錯 n200 OK 成功 n信息體用于瀏覽器顯示 143 頁面訪問失敗 144 HTML表單 n表單是具有輸入域、文本域的頁面 n用于客戶端同服務(wù)器端交互 n用戶在客戶端填寫表單,然后“提交” n表單中的信息發(fā)送到服務(wù)器 n服務(wù)器返回處理情況 145 HTML表單標(biāo)記 n表單主標(biāo)記 n n表單中的標(biāo)記 n n n n n是表單開始標(biāo)記,結(jié)束 146 表單
46、的例子(peixun2.15.jsp) 表單 用戶登錄 用戶名: 密碼: 147 運(yùn)行結(jié)果 148 form標(biāo)記 n描述表單的特性,語法 nmethod表單傳輸方法 nGET方法將表單信息在URL后傳輸 nPOST方法將表單信息作為信息體傳輸 naction為表單處理方式,通常為一個URL nenctype為編碼方式 149 標(biāo)記 n表單中輸入信息的區(qū)域 n屬性 ntype 類型 nname 名稱 nid 標(biāo)識 nmaxlength 最大字符數(shù) nsize 輸入域?qū)挾?nvalue 域的初始值 nbutton 按鈕 用javascript響應(yīng) 150 的類型 ntext 文本 npasswow
47、rd 口令方式 ncheckbox 多選框 name相同 nradio 單選按鈕 name相同 nimage 圖片 nhidden 隱藏表單 發(fā)送數(shù)據(jù) nsubmit 提交按鈕 向服務(wù)器提交表單 nreset 復(fù)位按鈕 將表單充置為初始狀態(tài) 151 文本框:TEXTAREA n多行文本域: n參數(shù) nCOLS:寬度 nROWS:高度 nNAME:名稱 CPU PIV 1500 Memory 512M 152 下拉框:SELECT n定義列表框: n參數(shù) nMULTIPLE 可同時選取多行 nNAME 名稱 nSIZE 可見項(xiàng)目數(shù) n每個項(xiàng)目用option標(biāo)記 n屬性SELECTED出現(xiàn)在opt
48、ion表示選中 153 select的例子 北京 天津 上海 重慶 154 表單提交 n提交方式: nsubmit類型按鈕提交表單 n通過普通按鈕的javascript函數(shù) n傳輸方法依據(jù)中的method n推薦使用POST n傳輸編碼依據(jù)中的enctype n處理方式依據(jù)中的action 155 表單清除 nreset按鈕重置表單為初始值 156 綜合例子 表單 用戶注冊 用戶名: 密碼: 你喜歡: 足球 籃球 157 性別: 男 女 你的計算機(jī) CPU PIV 1500 Memory 512M 你計算機(jī)的操作系統(tǒng) 158 你所在地: 北京 天津 上海 重慶 159 運(yùn)行結(jié)果 160 表單的
49、確認(rèn) n客戶端確認(rèn) n減少服務(wù)器負(fù)載 n縮短用戶等待時間 n兼容性難 n服務(wù)器端確認(rèn) n統(tǒng)一確認(rèn) n兼容性強(qiáng) n服務(wù)器負(fù)載重 161 客戶端確認(rèn) n采用javascript進(jìn)行確認(rèn) n常用函數(shù) nisBetween nisDate nisTime nisDigit nisEmail nisEmpty nisInt nisReal 162 客戶端確認(rèn)例子 客戶端確認(rèn) 用戶登錄 用戶名: 密碼: 163 function checkform(frm) var flag=true; if(.value=) alert(姓名不能為空,請輸入值!); .focus();
50、flag=false; return flag; 164 運(yùn)行結(jié)果 165 166 167 n可以獲得文本框、文本區(qū)域、單選、多 選的值 n表單中各元素的NAME屬性是它的唯一標(biāo) 識,用它獲取參數(shù)。 n參考peixun2.11.jsp及post.jso request.getParameter(User); 168 向客戶端輸出 n使用內(nèi)置對象out out.println(content) n使用“=” n參看peixun2.11.jsp和post.jsp out.println(用戶名: +User+); n參看peixun2.14.jsp 您是第位訪問者! 169 表單的服務(wù)器端確認(rèn) n在客戶端不能用JSP進(jìn)行確認(rèn) n分工:數(shù)據(jù)處理在服務(wù)器端 n實(shí)效性:客戶端得到服務(wù)器確認(rèn)后表明 數(shù)據(jù)已經(jīng)到達(dá)服務(wù)器 n客戶端兼容性好 n缺點(diǎn):加大服務(wù)器負(fù)載和用戶
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025西安科技大學(xué)高新學(xué)院輔導(dǎo)員考試試題及答案
- 2025炎黃職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2025石家莊職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2025荊楚理工學(xué)院輔導(dǎo)員考試試題及答案
- 2025福建生物工程職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- T/ZGSCJXH 1-2019陳年白酒收藏評價指標(biāo)體系
- 綠色建筑設(shè)計管理
- 健康體檢教學(xué)課件
- 美的崗位薪酬結(jié)構(gòu)設(shè)計體系
- 湖北神農(nóng)架中和旅游有限公司招聘筆試題庫2025
- 2024年福建省泉州市惠安縣綜治網(wǎng)格員招聘173人歷年高頻考題難、易錯點(diǎn)模擬試題(共500題)附帶答案詳解
- 《聚落與環(huán)境》名師課件
- 《城軌通信信號基礎(chǔ)設(shè)備應(yīng)》課件-FTGS軌道電路
- 浙江省寧波市鎮(zhèn)海區(qū)人教PEP版2022年小學(xué)畢業(yè)考試英語試卷【含答案】
- 中班語言《傘》課件
- 心悸-《中醫(yī)內(nèi)科學(xué)》教案
- 營區(qū)物業(yè)服務(wù)營區(qū)物業(yè)服務(wù)保密措施
- 托槽粘結(jié)醫(yī)學(xué)課件
- 藍(lán)曬創(chuàng)作方案
- 醫(yī)院智慧后勤管理平臺建設(shè)規(guī)劃方案
- 人工智能在傳染病防控中的應(yīng)用
評論
0/150
提交評論