內(nèi)置對(duì)象復(fù)習(xí)資料_第1頁
內(nèi)置對(duì)象復(fù)習(xí)資料_第2頁
內(nèi)置對(duì)象復(fù)習(xí)資料_第3頁
內(nèi)置對(duì)象復(fù)習(xí)資料_第4頁
內(nèi)置對(duì)象復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、復(fù)習(xí)資料: JSP頁面元素與內(nèi)置對(duì)象,內(nèi)容提要,介紹JSP頁面的結(jié)構(gòu) JSP的編譯指令、操作指令和代碼 重點(diǎn)介紹JSP常用的六大基本對(duì)象: out對(duì)象、response對(duì)象、request對(duì)象、application對(duì)象、session對(duì)象和cookie對(duì)象,理解服務(wù)器端執(zhí)行,所有HTML文件可以在資源管理器中雙擊執(zhí)行 但是JSP文件必須先放到Web服務(wù)器中,然后通過HTTP的方式訪問。因?yàn)槲募?nèi)所有內(nèi)代碼是被Web服務(wù)器解釋執(zhí)行的,理解服務(wù)器端執(zhí)行,案例名稱:理解服務(wù)器端執(zhí)行 程序名稱:4-01.jsp var dnow = new Date(); dhours = dnow.getHour

2、s(); dminutes = dnow.getMinutes(); dseconds = dnow.getSeconds(); document.write(瀏覽器時(shí)間: + dhours + : + dminutes + : + dseconds);,理解服務(wù)器端執(zhí)行,JSP頁面結(jié)構(gòu),在一個(gè)JSP頁面中,主要分為三種元素:編譯指令、操作指令和JSP代碼。 編譯指令告訴JSP的解釋引擎(比如:Tomcat),需要在編譯時(shí)做什么動(dòng)作,比如引入一個(gè)其它的類,設(shè)置JSP頁面的使用什么語言編碼等。 操作指令則是在JSP頁面被請(qǐng)求時(shí),動(dòng)態(tài)執(zhí)行的,比如可以根據(jù)某個(gè)條件動(dòng)態(tài)跳轉(zhuǎn)到另外一個(gè)頁面。 JSP代碼

3、指的就是我們自己嵌入在JSP頁面中的Java代碼,這又分為兩種:第一種是JSP頁面中一些變量和方法的聲明,在聲明時(shí),使用“”標(biāo)記。另外一種,就是常用到的用“”包含的JSP代碼塊,編譯指令,可以通過一定的指令,讓JSP容器采取必要的動(dòng)作。 例如:可以指定一個(gè)專門的錯(cuò)誤處理頁面,當(dāng)JSP頁面出現(xiàn)錯(cuò)誤時(shí),可以由JSP容器自動(dòng)地調(diào)用錯(cuò)誤處理頁面,page指令,page指令是針對(duì)當(dāng)前頁面的指令。page指令有“”字符串構(gòu)成的標(biāo)記符來指定。在標(biāo)記符中是代碼體,包括指令的類型和值。例如:“”指令告訴JSP容器將java.sql包中的所有類都引入當(dāng)前的JSP頁面。 常用的page指令標(biāo)記有8個(gè): langua

4、ge、extends、import、errorPage、isErrorPage、contentType、isThreadSafe和session,page指令,language設(shè)置JSP頁面中用到的語言,默認(rèn)值為“Java”,也是目前唯一有效的設(shè)定值。使用的語法是:“”。 extends設(shè)定目前JSP頁面要繼承的父類。一般情況下不需要進(jìn)行設(shè)置。在默認(rèn)情況下,JSP頁面的默認(rèn)父類是HttpJspBase。例如:當(dāng)前JSP頁面要繼承mypackage包下的myclass類,相應(yīng)的聲明語句為:“”。 import設(shè)置目前JSP頁面中要用到的Java類,這些Java類可能是Sun JDK中的類,也有可

5、能是程序員自己定義的類。例如:“”。 有些類在默認(rèn)情況下已經(jīng)被加入到當(dāng)前JSP頁面,而不需要特殊聲明,包括四個(gè)類:java.lang.*;、java.servlet.*;、java.servlet.jsp.*;和java.servlet.http.*;。 errorPage用來設(shè)定當(dāng)JSP頁面出現(xiàn)異常(Exception)時(shí),所要轉(zhuǎn)向的頁面。如果沒有設(shè)定,則JSP容器會(huì)用默認(rèn)的當(dāng)前網(wǎng)頁來顯示出錯(cuò)信息。例如:“” isErrorPage用來設(shè)定當(dāng)前的JSP頁面是否作為傳回錯(cuò)誤頁面的網(wǎng)頁,默認(rèn)值是“false”。如果設(shè)定為“true”,則JSP容器會(huì)在當(dāng)前的頁面中生成一個(gè)exception對(duì)象,使

6、用errorPage指令捕獲異常,案例名稱:JSP中Exception的捕捉 程序名稱:4-02.jsp,JSP中Exception的捕捉,案例名稱:JSP中Exception的捕捉 程序名稱:4-03.jsp 當(dāng)前頁面是:4-03.jsp,JSP中Exception的捕捉,contentType這個(gè)屬性用來設(shè)定傳回網(wǎng)頁的文件格式和編碼方式,一般使用 “text/html;charset=GBK”。 isThreadSafe 定義JSP容器執(zhí)行JSP程序的方式,默認(rèn)值為“true”,代表JSP容器會(huì)以多線程方式運(yùn)行JSP頁面。當(dāng)設(shè)定值為“false”時(shí),JSP容器會(huì)以單線程方式運(yùn)行JSP頁面。

7、 session定義當(dāng)前JSP頁面中是否要用到session,默認(rèn)值為“true,include指令,include指令用來指定怎樣把另一個(gè)文件包含到當(dāng)前的JSP頁面中,這個(gè)文件可以是普通的文本文件,也可以是一個(gè)JSP頁面。例如:“”。 采用include指令,可以實(shí)現(xiàn)JSP頁面的模塊化,使JSP的開發(fā)和維護(hù)變得非常簡單,使用include指令,案例名稱:使用include指令 程序名稱:4-04.jsp,taglib指令,taglib指令允許頁面使用標(biāo)記擴(kuò)展(定制標(biāo)記)。它命名了標(biāo)記庫。在JSP頁面里遇到定制的標(biāo)記時(shí),引擎將找到在標(biāo)記庫中的該標(biāo)記,并且找到要實(shí)施的操作實(shí)際上是執(zhí)行Java代碼

8、。taglib指令的語法為: 其中: uri:一個(gè)URI標(biāo)識(shí)標(biāo)記庫描述器。一個(gè)標(biāo)記庫描述器用來唯一的命名一組定制的標(biāo)記,并且告訴包容器如何處理特殊的標(biāo)記 tagPrefix:定義一個(gè)prefix:tagname形式的字符串前綴,用于定義定制的標(biāo)記。所保留的前綴為jsp、jspx、java、servlet、sun、sunw,操作指令,JSP編譯指令是讓JSP容器自動(dòng)采取的動(dòng)作,但對(duì)于Web開發(fā)人員,有些時(shí)候想要自己控制JSP頁面的運(yùn)行,這時(shí)可以采用JSP中的操作指令。 操作指令包括: jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、js

9、p:setProperty指令和jsp:getProperty指令等,jsp:include指令,jsp:include標(biāo)準(zhǔn)動(dòng)作用于在當(dāng)前的JSP頁面中加入靜態(tài)和動(dòng)態(tài)的資源。 語法格式為: jsp:include指令必須以“/”結(jié)束,功能和include指令相同,jsp:forward指令,jsp:forward操作指令用于把當(dāng)前的JSP頁面轉(zhuǎn)發(fā)到另一個(gè)頁面上。 基本語法為: “”, 使用該功能時(shí),瀏覽器的地址欄中地址不會(huì)發(fā)生任何變化,forward指令實(shí)現(xiàn)頁面間的跳轉(zhuǎn),案例名稱:使用forward指令實(shí)現(xiàn)頁面間的跳轉(zhuǎn) 程序名稱:4-05.jsp,jsp:param指令,使用jsp:param

10、操作指令可以在執(zhí)行jsp:forward操作動(dòng)作時(shí),追加參數(shù),按照“名字/值”的方式進(jìn)行傳遞。 jsp:param操作指令以標(biāo)記“”開始,以“/”結(jié)束。比如:“”??梢詫sp:forward操作指令和jsp:param操作指令結(jié)合到一起來使用。 示例:%TOMCAT_HOME%passingPara.jsp,JSP代碼,JSP代碼包括兩種, 第一種是JSP頁面中一些變量和方法的聲明,在聲明時(shí),使用“”標(biāo)記 另外一種,就是常用到的用“”包含的JSP代碼塊,變量和方法,在“”標(biāo)記符號(hào)之間聲明變量和方法,變量類型可以是Java語言允許的任何數(shù)據(jù)類型。 在JSP頁面被編譯執(zhí)行的時(shí)候,整個(gè)頁面被編譯成

11、一個(gè)類,這些變量是JSP頁面類的成員變量,變量的聲明和使用,案例名稱:變量的聲明和使用 程序名稱:4-06.jsp 個(gè)人訪問本站,變量的聲明和使用,也可以聲明函數(shù),一般會(huì)在函數(shù)前面加上synchronized關(guān)鍵字,功能是當(dāng)前一個(gè)用戶在執(zhí)行該方法的時(shí)候,其他的用戶必須等待,直到該用戶完成操作。使用方法,案例名稱:函數(shù)的聲明和使用 程序名稱:4-07.jsp 您是第個(gè)訪問本站的客戶,代碼塊,可以在“”之間插入Java程序片,一個(gè)JSP頁面可以有許多程序片,這些代碼塊將被JSP服務(wù)器按照順序執(zhí)行。 在一個(gè)代碼塊中聲明的變量是JSP頁面的局部變量,只在當(dāng)前頁面中有效,代碼塊,案例名稱:代碼塊 程序名

12、稱:4-08.jsp 個(gè)人訪問本站,JSP隱含對(duì)象概述,JSP根據(jù)Servlet API而提供了某些隱含對(duì)象??梢允褂脴?biāo)準(zhǔn)的變量來訪問這些對(duì)象,并且不用編寫任何額外的代碼,就可以在JSP中自動(dòng)使用到它。在JSP頁面中可以獲得的主要的7個(gè)隱含對(duì)象變量為: out對(duì)象:功能是把信息回送到客戶端的瀏覽器中。 response對(duì)象:功能是處理服務(wù)器端對(duì)客戶端的一些響應(yīng)。 request對(duì)象:功能是用來得到客戶端的信息。 application對(duì)象:用來保存網(wǎng)站的一些全局變量。 session對(duì)象:用來保存單個(gè)用戶訪問時(shí)的一些信息。 cookie對(duì)象:將服務(wù)器端的一些信息寫到客戶端的瀏覽器中。 page

13、Context對(duì)象:提供了訪問和放置頁面中共享數(shù)據(jù)的方式,out對(duì)象,out對(duì)象是javax.servlet.jsp.JspWriter類的一個(gè)子類的對(duì)象,它的作用是把信息回送到客戶端的瀏覽器中。在out對(duì)象中,最常用的方法就是print()和println()。在使用print()或println()方法時(shí),由于客戶端是瀏覽器,因此向客戶端輸出時(shí),可以使用HTML中的一些標(biāo)記,例如:“out.println(”Hello,JSP“);”。 其他一些常用的方法是:out.write功能和out.print相同,newLine()的功能是輸出一個(gè)換行符,out.flush()的功能是輸出緩沖的內(nèi)

14、容。out.close()的功能是關(guān)閉輸出流。out對(duì)象的生命周期是當(dāng)前頁面。因此對(duì)于每一個(gè)JSP頁面,都有一個(gè)out對(duì)象,使用out對(duì)象,案例名稱:使用out對(duì)象 程序名稱:4-09.jsp,reponse對(duì)象,response對(duì)象是一個(gè)javax.servlet.http.HttpServletResponse類的子類的對(duì)象,網(wǎng)頁轉(zhuǎn)向,對(duì)于response對(duì)象,最常用到的是sendRedirect()方法,可以使用這個(gè)方法將當(dāng)前客戶端的請(qǐng)求轉(zhuǎn)到其它頁面去。相應(yīng)的代碼格式為:“response.sendRedirect(URL地址);” 和指令的最大區(qū)別就是:只能使用在本網(wǎng)站內(nèi)跳轉(zhuǎn),但我可以

15、使用response.sendRedirect跳轉(zhuǎn)到任何一個(gè)地址的頁面,案例名稱:網(wǎng)頁轉(zhuǎn)向 程序名稱:4-10.jsp,動(dòng)態(tài)contentType響應(yīng),當(dāng)請(qǐng)求一個(gè)JSP頁面的時(shí)候,如果該頁面用page指令設(shè)置頁面的contentType屬性的值是text/html,那么服務(wù)器將把靜態(tài)頁面部分發(fā)送給客戶端。 也可以設(shè)置為其他一些相應(yīng)類型,如:text/plain(文本文件)、application/x-msexcel(Excel文件)和application/msword(Word文件)等,顯示為Word文檔,案例名稱:顯示為Word文檔 程序名稱:4-11.jsp response對(duì)象 set

16、ContentType方法 將當(dāng)前頁面保存為word文檔嗎,HTTP文件頭響應(yīng),可以利用JSP動(dòng)態(tài)改變客戶端的響應(yīng),使用的語法是“response.setHeader()”,比如讓客戶端自動(dòng)每隔5秒刷新一次,案例名稱:動(dòng)態(tài)改變響應(yīng)頭 程序名稱:4-12.jsp 現(xiàn)在的時(shí)間是:,設(shè)置緩沖區(qū),在實(shí)際的JSP應(yīng)用開發(fā)中,為了確保顯示的正確性,需要將禁用頁面緩沖,否則會(huì)顯示其他用戶的一些的信息。為了解決這個(gè)問題,需要在每個(gè)JSP的頁面中添加語句,案例名稱:設(shè)置緩沖區(qū) 程序名稱:4-13.jsp,request對(duì)象,request對(duì)象是javax.servlet.HttpServletRequest子類

17、的對(duì)象,當(dāng)客戶端請(qǐng)求一個(gè)JSP頁面時(shí),JSP容器會(huì)將客戶端的請(qǐng)求信息包裝在這個(gè)request對(duì)象中 請(qǐng)求信息的內(nèi)容包括請(qǐng)求的頭信息(Header)、系統(tǒng)信息(比如:編碼方式)、請(qǐng)求的方式(比如:GET或POST)、請(qǐng)求的參數(shù)名稱和參數(shù)值等信息,得到Form表單的信息,通常我們用得最多的就是客戶端請(qǐng)求的參數(shù)名稱和參數(shù)值信息。得到某參數(shù)值的語法為:“request.getParameter(”param1“)”。 也可以通過request對(duì)象的getParameterNames()方法得到客戶端傳遞過來的所有參數(shù)名字,如: “Enumeration params = request.getPara

18、meterNames();,得到Form表單的信息,案例名稱:HTML表單 程序名稱:4-14.html 姓名: 密碼:,讀取表單數(shù)據(jù),案例名稱:讀取表單數(shù)據(jù) 程序名稱:4-15.jsp 姓名: 密碼,第二種讀取值的方法是利用集合,案例名稱:使用request對(duì)象獲取用戶提交數(shù)據(jù)的所有參數(shù)名字和值 程序名稱:4-17.jsp ); out.println(Values: + request.getParameter(current_param) + ); ,得到客戶的信息,利用request對(duì)象可以獲得客戶提交的信息,比如:JSP文件目錄、客戶端的地址、以及服務(wù)器的端口等,案例名稱:獲得客戶的

19、信息 程序名稱:4-18.jsp,漢字問題兩種解決方法,當(dāng)利用request.getParameter得到Form種元素的時(shí)候,默認(rèn)的情況字符編碼為ISO-8859-1,這種編碼不能正確的顯示漢字。 目前有兩種解決方法,一種是在執(zhí)行操作之前,設(shè)置request的編碼格式,語法是:“request.setCharacterEncoding(GBK);”另一種方法是轉(zhuǎn)換字符編碼,調(diào)查表信息的讀取,案例名稱:調(diào)查表輸入頁面 程序名稱:input.htm,調(diào)查表信息的讀取,案例名稱:調(diào)查表處理頁面 程序名稱:handle.jsp,application對(duì)象,站點(diǎn)所有的用戶公用一個(gè)application

20、對(duì)象,當(dāng)站點(diǎn)服務(wù)器開啟的時(shí)候,application就被創(chuàng)建,直到網(wǎng)站關(guān)閉。利用application這一特性,可以方便地創(chuàng)建聊天室和網(wǎng)站計(jì)數(shù)器等常用站點(diǎn)應(yīng)用程序,application的自定義屬性,public void setAttribute(String key, Object obj),將對(duì)象obj添加到application對(duì)象中,并為添加的對(duì)象添加一個(gè)索引關(guān)鍵字key。 public Object getAttribute(String key),獲取application對(duì)象中含有關(guān)鍵字key的對(duì)象。由于任何對(duì)象都可以添加到application中,因此用此方法取回對(duì)象的時(shí)候,

21、需要強(qiáng)制轉(zhuǎn)化為原來的類型,自定義屬性,案例名稱:自定義屬性 程序名稱:4-19.jsp,自定義屬性,案例名稱:自定義屬性 程序名稱:4-20.jsp,實(shí)現(xiàn)聊天室,聊天室允許多用戶實(shí)時(shí)進(jìn)行信息交流,所有用戶可以看到彼此的信息,這與application對(duì)象的特點(diǎn)正好符合,所以可以方便地利用application實(shí)現(xiàn)聊天室,案例名稱:簡易聊天室 程序名稱:4-21.jsp,網(wǎng)頁計(jì)數(shù)器,網(wǎng)頁計(jì)數(shù)器是application 對(duì)象的又一個(gè)用途,因?yàn)閍pplication是所有的用戶所共有的,所以可以存儲(chǔ)計(jì)數(shù)器的值,當(dāng)有新用戶訪問網(wǎng)頁時(shí)自動(dòng)增加計(jì)數(shù)器的值,案例名稱:網(wǎng)頁計(jì)數(shù)器版本一 程序名稱:CountV

22、1.jsp,案例名稱:網(wǎng)頁計(jì)數(shù)器版本二 程序名稱:CountV2.asp,session對(duì)象,session對(duì)象是java.servlet.http.HttpSession類的子類的對(duì)象,它表示當(dāng)前的用戶會(huì)話信息。在session中保存在對(duì)象在當(dāng)前用戶連接的所有頁面中都是可以被訪問到的。 可以使用Session 對(duì)象存儲(chǔ)用戶登錄網(wǎng)站時(shí)候的信息。當(dāng)用戶在頁面之間跳轉(zhuǎn)時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)被清除,對(duì)session的理解,案例名稱:使用ID屬性 程序名稱:4-22.jsp 你的session ID:,自定義屬性,對(duì)于session對(duì)象中,經(jīng)常用到的方法是setAttribute()、getAttribute()和removeAttribute()。分別可以對(duì)session中的對(duì)象進(jìn)行存取和刪除操作。 session對(duì)象的主要用途也是保存信息,當(dāng)用戶第一次到達(dá)網(wǎng)站時(shí),系統(tǒng)為其分配一個(gè)session。session和application一樣也使用自己的自定義屬性,使用session的自定義屬性,案例名稱:使用session的自定義屬性 程序名稱:4-23.jsp 下一頁,使用session的自定義屬性,案例名稱:使用session的自定義屬性 程序名稱:4-24.jsp 下一頁,簡易session版購

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論