JSP的內(nèi)置對象_第1頁
JSP的內(nèi)置對象_第2頁
JSP的內(nèi)置對象_第3頁
JSP的內(nèi)置對象_第4頁
JSP的內(nèi)置對象_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 JSP的內(nèi)置對象學(xué)習(xí)目標(biāo)熟悉主要內(nèi)置對象的概念熟悉主要內(nèi)置對象的概念理解主要內(nèi)置對象的作用域和生命期理解主要內(nèi)置對象的作用域和生命期理解主要內(nèi)置對象的作用和關(guān)系理解主要內(nèi)置對象的作用和關(guān)系熟悉主要內(nèi)置對象的使用方法熟悉主要內(nèi)置對象的使用方法什么是JSP內(nèi)置對象JSP 內(nèi)置對象是內(nèi)置對象是 Web 容器創(chuàng)建的一組對象容器創(chuàng)建的一組對象JSP 內(nèi)置對象是可以直接在內(nèi)置對象是可以直接在JSP頁面使用的對頁面使用的對象象 ,無需使用,無需使用“new”獲取實例獲取實例 常用內(nèi)置對象常用內(nèi)置對象 request responseoutapplicationsession示例示例 沒有出現(xiàn)沒有出現(xiàn)new

2、關(guān)鍵關(guān)鍵字,但卻可以使用字,但卻可以使用request對象對象pageJSP內(nèi)置對象OUTout對象用于向客戶端輸出數(shù)據(jù)對象用于向客戶端輸出數(shù)據(jù)out對象常用方法:對象常用方法: print():在頁面中打印出字符串信息 Println():在頁面中打印出字符串信息,并在末尾回車JSP內(nèi)置對象REQUEST request對象主要用于處理客戶端請求JSP 頁面頁面request 對象對象客戶端客戶端 請求請求請求信息請求信息JSP內(nèi)置對象REQUEST方法名稱說明String getParameter(String name)根據(jù)頁面表單組件名稱獲取頁面提交數(shù)據(jù) String getParam

3、eterValues (String name)獲取一個頁面表單組件對應(yīng)多個值時的用戶的請求數(shù)據(jù) void setCharacterEncoding (String charset) 指定每個請求的編碼 在調(diào)用request.getParameter()之前進(jìn)行設(shè)定,可以解決中文亂碼問題 request.getRequestDispatcher(String path)返回一個javax.servlet.RequestDispatcher對象,該對象的forward方法用于轉(zhuǎn)發(fā)請求 request對象常用方法JSP內(nèi)置對象REQUEST編程實現(xiàn)注冊功能編程實現(xiàn)注冊功能 注冊信息包括:用戶名、密

4、碼、興趣 頁面提交后,顯示輸入的數(shù)據(jù)問題分析:問題分析: 在一個頁面創(chuàng)建表單,提供信息輸入窗口,在一個頁面創(chuàng)建表單,提供信息輸入窗口,在另一頁面,使用在另一頁面,使用request對象獲取表單信息。對象獲取表單信息。程序結(jié)構(gòu):程序結(jié)構(gòu):reginput.jsp頁面創(chuàng)建表單頁面創(chuàng)建表單(信息輸入窗口信息輸入窗口),用戶提交信息后,頁面定向到用戶提交信息后,頁面定向到reginfo.jsp頁面。頁面。頁面交互關(guān)系如圖所示。頁面交互關(guān)系如圖所示。 頁面交互關(guān)系程序算法:程序算法: reginput.jsp: 創(chuàng)建一表單,包含一個文本控件一個密碼控件,一創(chuàng)建一表單,包含一個文本控件一個密碼控件,一個復(fù)

5、選框,一個提交按鈕和一個重置按鈕個復(fù)選框,一個提交按鈕和一個重置按鈕 reginfo.jsp 1.獲取文本框,密碼框和復(fù)選按鈕和提交控件的值獲取文本框,密碼框和復(fù)選按鈕和提交控件的值 2.輸出文本框,密碼框和復(fù)選按鈕和提交控件的值輸出文本框,密碼框和復(fù)選按鈕和提交控件的值reginput.jsp頁面頁面reginfo.jsp頁面頁面提交提交JSP內(nèi)置對象 用戶名:用戶名: 密碼:密碼: 興趣:興趣: 讀書讀書 打籃球打籃球玩游戲玩游戲看電影看電影 String channels = request.getParameterValues(channel);if (channels != null

6、) for (int i = 0; i channels.length; i+) out.println(channelsi);request.setCharacterEncoding(GBK);request.getParameter(“name”);request.getParameter(pwd);實驗顯示一個網(wǎng)上改卷的功能顯示一個網(wǎng)上改卷的功能要求:一個頁面輸出單選試題,由另一頁面獲取用戶選擇,統(tǒng)計要求:一個頁面輸出單選試題,由另一頁面獲取用戶選擇,統(tǒng)計考生得分??忌梅?。第一個頁面包含兩組單選按鈕。第一個頁面包含兩組單選按鈕。第二個頁面第二個頁面 獲取用戶提交的答案 與正確答案比較,

7、統(tǒng)計得分 輸出考試結(jié)果效果如圖所示:效果如圖所示:JSP內(nèi)置對象RESPONSE response對象用于響應(yīng)客戶請求并向客戶端輸出信息對象用于響應(yīng)客戶請求并向客戶端輸出信息 response 對象常用方法對象常用方法 void sendRedirect (String location):將請求重新定位到一個不同的URLJSP 頁面頁面response 對象對象客戶端客戶端響應(yīng)響應(yīng)從服務(wù)器中從服務(wù)器中檢索的信息檢索的信息存儲信息,以在響應(yīng)客存儲信息,以在響應(yīng)客戶端請求時發(fā)送此信息戶端請求時發(fā)送此信息內(nèi)置對象RESPONSE的常用方法方法名稱說明addHeader(String head,St

8、ring value) 向包里添加一個頭(head)及對應(yīng)值(value)sendRedirect(URL url)實現(xiàn)客戶重定向setStatus(int n)置響應(yīng)的狀態(tài)代碼。下面是服務(wù)器響應(yīng)客戶時,發(fā)送到客戶端的狀態(tài)代碼描述狀態(tài)代碼 代碼說明 101 服務(wù)器正在升級協(xié)議 100 客戶可以繼續(xù) 201 請求成功且在服務(wù)器上創(chuàng)建了新的資源 202 請求已被接受但還沒有處理完畢200 請求成功 203 客戶端給出的原信息不是發(fā)自服務(wù)器的 204 請求成功,但沒有新信息 狀態(tài)代碼 代碼說明 205客戶必須重置文檔視圖 206服務(wù)器執(zhí)行了部分get請求 300請求的資源有多種表示 301資源已經(jīng)被

9、永久移動到新位置 302資源已經(jīng)被臨時移動到新位置303應(yīng)答可以在另外一個URL中找到304Get方式請求不可用 305請求必須通過代理來訪問 狀態(tài)代碼 代碼說明 400請求由語法錯誤 401請求需要HTTP認(rèn)證 403取得了請求但拒絕服務(wù) 404請求的資源部可用405請求所用的方法是不允許的 406請求的資源只能用請求不能接受的內(nèi)容特性來響應(yīng) 407客戶必須得到認(rèn)證 408請求超時 狀態(tài)代碼 代碼說明 409發(fā)生沖突,請求不能完成 410請求的資源已經(jīng)不可用 411請求需要一個定義的內(nèi)容長度才能處理 413請求太大,被拒絕414請求的URL太大415請求的格式被拒絕 狀態(tài)代碼 代碼說明 50

10、0服務(wù)器發(fā)生內(nèi)部錯誤,不能服務(wù) 501不支持請求的部分功能 502從代理和網(wǎng)關(guān)接受了不合法的字符 503HTTP服務(wù)暫時不可用 504服務(wù)器在等待代理服務(wù)器應(yīng)答時發(fā)生超時505不支持請求的HTTP版本 實驗要求:在頁面中,實時顯示當(dāng)前時間要求:在頁面中,實時顯示當(dāng)前時間問題分析:問題分析: 要實時顯示當(dāng)前時間,必須每秒鐘刷新一次頁要實時顯示當(dāng)前時間,必須每秒鐘刷新一次頁面,這就要求向客戶輸出的響應(yīng)包中,必須含有面,這就要求向客戶輸出的響應(yīng)包中,必須含有響應(yīng)頭響應(yīng)頭”Refresh”,其值為其值為1,單位是秒。,單位是秒。程序設(shè)計程序設(shè)計 1.輸出當(dāng)前時間輸出當(dāng)前時間 2.添加響應(yīng)頭添加響應(yīng)頭”

11、Refresh”,其值是其值是1。 現(xiàn)在的時間是現(xiàn)在的時間是: 實驗功能:要求使用功能:要求使用response對象實現(xiàn)頁面的重定向?qū)ο髮崿F(xiàn)頁面的重定向要求:實現(xiàn)從一個網(wǎng)頁到另一個網(wǎng)頁的重定向要求:實現(xiàn)從一個網(wǎng)頁到另一個網(wǎng)頁的重定向程序設(shè)計:程序設(shè)計: Where to go(見見WORD文檔文檔)JSP內(nèi)置對象-SESSION客戶與服務(wù)器的通訊是通過客戶與服務(wù)器的通訊是通過HTTP協(xié)議完成的。但是,協(xié)議完成的。但是,HTTP協(xié)議協(xié)議是一種無狀態(tài)協(xié)議。即,一個客戶向服務(wù)器發(fā)送請求是一種無狀態(tài)協(xié)議。即,一個客戶向服務(wù)器發(fā)送請求(request),然后服務(wù)器返回響應(yīng)然后服務(wù)器返回響應(yīng)(respon

12、se),連接就關(guān)閉了。服務(wù)器端不保,連接就關(guān)閉了。服務(wù)器端不保留客戶與服務(wù)器每一次連接的信息,因此,服務(wù)器無法判斷上下留客戶與服務(wù)器每一次連接的信息,因此,服務(wù)器無法判斷上下兩次連接是否是同一客戶。要想記住客戶的連接信息,必須使用兩次連接是否是同一客戶。要想記住客戶的連接信息,必須使用會話對象會話對象(session)。session對象記錄了每個客戶與服務(wù)器的連對象記錄了每個客戶與服務(wù)器的連接信息。接信息。SESSION對象的常用方法public void setAttribute(String key.Object obj)session 對象類似于散列表,可以調(diào)用該方對象類似于散列表,可

13、以調(diào)用該方法將參數(shù)法將參數(shù)Object指定的對象指定的對象obj添加到添加到session對象中,并為添加的對象指定了一個對象中,并為添加的對象指定了一個索引關(guān)鍵字。如果添加的兩個對象的關(guān)鍵字索引關(guān)鍵字。如果添加的兩個對象的關(guān)鍵字相同,則先前添加的對象被清除。相同,則先前添加的對象被清除。public Object getAttibue(String key)獲取獲取session對象中含有的關(guān)鍵字是對象中含有的關(guān)鍵字是key的對的對象。由于任何對象都可以添加到象。由于任何對象都可以添加到session對象對象中,因此用該方法取回對象是,應(yīng)強制轉(zhuǎn)化中,因此用該方法取回對象是,應(yīng)強制轉(zhuǎn)化為原來的

14、類型。為原來的類型。public Enumeration getAttributeName()session 對象調(diào)用該方法產(chǎn)生一個枚舉對象。該枚對象調(diào)用該方法產(chǎn)生一個枚舉對象。該枚舉對象使用舉對象使用nextElemets()方法遍歷方法遍歷session對象對象所含有的全部對象。所含有的全部對象。public long getCreationTime()session對象調(diào)用該方法可以獲取該對象創(chuàng)建的時對象調(diào)用該方法可以獲取該對象創(chuàng)建的時間。單位是毫秒(從間。單位是毫秒(從1970年年7月月1日午夜起至該對日午夜起至該對象創(chuàng)建時刻所走過的毫秒數(shù))。象創(chuàng)建時刻所走過的毫秒數(shù))。public

15、long getLastAccessedTime()獲取當(dāng)前獲取當(dāng)前session對象最后一次被操作的時間,單對象最后一次被操作的時間,單位是毫秒位是毫秒public int getMaxInactiveInterval()獲取獲取session對象的生存時間對象的生存時間public void setMaxInactiveInterval(int n)設(shè)置設(shè)置session對象的生存時間(單位是秒)對象的生存時間(單位是秒)public void removeAttribue(String key)從當(dāng)前從當(dāng)前session對象中刪除關(guān)鍵字是對象中刪除關(guān)鍵字是key的對象。的對象。publi

16、c String getId()獲取獲取session對象的編號對象的編號invalidate()使使session對象無效對象無效public boolean isNew() 判斷是否是一個新的客戶判斷是否是一個新的客戶統(tǒng)計第幾個人訪問網(wǎng)頁見WORD文檔實驗JSP內(nèi)置對象-APPLICATION我們已經(jīng)知道,不同的客戶與服務(wù)器連接時有不同的我們已經(jīng)知道,不同的客戶與服務(wù)器連接時有不同的session對對象,同一客戶瀏覽同一服務(wù)器的不同目錄時,有不同的象,同一客戶瀏覽同一服務(wù)器的不同目錄時,有不同的session對象。對象。 與與session對象不同的是對象不同的是application對象

17、。服務(wù)器啟動對象。服務(wù)器啟動后,就產(chǎn)生了后,就產(chǎn)生了application對象。所有客戶的對象。所有客戶的application對象是對象是相同的一個,即,所有客戶共享這個內(nèi)置的相同的一個,即,所有客戶共享這個內(nèi)置的application對象。對象。 application對象生命期對象生命期 application對象隨著服務(wù)器啟動而創(chuàng)建,隨著對象隨著服務(wù)器啟動而創(chuàng)建,隨著服務(wù)器關(guān)閉而消失。服務(wù)器關(guān)閉而消失。application對象的生命周期指對象的生命周期指從從application對象創(chuàng)建到服務(wù)器關(guān)閉這段時間。對象創(chuàng)建到服務(wù)器關(guān)閉這段時間。application對象與線程對象與線程當(dāng)多

18、個客戶點擊同一頁面時,當(dāng)多個客戶點擊同一頁面時,JSP引擎為每個引擎為每個客戶啟動一個線程,這些線程共享同一個客戶啟動一個線程,這些線程共享同一個application對象由于所有客戶共享同一個對象由于所有客戶共享同一個application 對象,任何客戶對對象,任何客戶對application對象中對象中數(shù)據(jù)的改變都會影響到其它的客戶,因此,對該對數(shù)據(jù)的改變都會影響到其它的客戶,因此,對該對象的操作需要實現(xiàn)同步處理。象的操作需要實現(xiàn)同步處理。application對象的常用方法對象的常用方法public void setAttribute(String key,Object obj)app

19、lication對象可以調(diào)用該方法將參數(shù)對象可以調(diào)用該方法將參數(shù)Object指指定的對象定的對象obj添加到添加到application對象中,并為添加對象中,并為添加的對象指定一個索引關(guān)鍵字。如果添加的兩個對的對象指定一個索引關(guān)鍵字。如果添加的兩個對象的關(guān)鍵字相同,則先前添加的對象被清除。象的關(guān)鍵字相同,則先前添加的對象被清除。public Object getAttibue(String key)獲取獲取application對象中含有的關(guān)鍵字對象中含有的關(guān)鍵字key的對象。的對象。由于任何對象都可以添加到由于任何對象都可以添加到application對象中,對象中,因此用該方法取回對象時

20、,應(yīng)強制轉(zhuǎn)化為原來的因此用該方法取回對象時,應(yīng)強制轉(zhuǎn)化為原來的類型。類型。public Enumeration getAttributeNames()application對象條用該方法產(chǎn)生一個枚舉對象。對象條用該方法產(chǎn)生一個枚舉對象。該枚舉對象使用該枚舉對象使用nextElemets()方法遍歷方法遍歷application對象所含有的全部對象。對象所含有的全部對象。public void removeAttribue(String key)從當(dāng)前從當(dāng)前application對象中刪除關(guān)鍵字是對象中刪除關(guān)鍵字是key的對象。的對象。public String getServletInfo()獲取獲取Servlet編譯器的當(dāng)前版本信息。編譯器的當(dāng)前版本信息。實驗統(tǒng)計頁面人數(shù)的功能統(tǒng)計頁面人數(shù)的功能利用利用application變量存取數(shù)據(jù)變量存取數(shù)據(jù)-簡單計數(shù)器的實現(xiàn)簡單計數(shù)器的實

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論