版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1頁(yè)第5章JSP內(nèi)置對(duì)象
本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容第2頁(yè)本章概述JSP內(nèi)置對(duì)象,也叫隱含對(duì)象,是指在JSP頁(yè)面系統(tǒng)中已經(jīng)默認(rèn)內(nèi)置的Java對(duì)象,這些對(duì)象不需要開發(fā)人員顯示聲明即可使用,即所有的JSP代碼都可以直接訪問(wèn)JSP的內(nèi)置對(duì)象。本章將對(duì)JSP提供的9個(gè)內(nèi)置對(duì)象進(jìn)行詳細(xì)介紹。第3頁(yè)本章的學(xué)習(xí)目標(biāo)獲取訪問(wèn)請(qǐng)求參數(shù)和表單提交的信息通過(guò)request對(duì)象進(jìn)行數(shù)據(jù)傳遞獲取客戶端信息和cookie應(yīng)用response對(duì)象實(shí)現(xiàn)重定向頁(yè)面向客戶端輸出數(shù)據(jù)創(chuàng)建及獲取客戶的會(huì)話從會(huì)話中移除指定的對(duì)象設(shè)置session的有效時(shí)間以及銷毀session應(yīng)用application實(shí)現(xiàn)網(wǎng)頁(yè)計(jì)數(shù)器使用exception對(duì)象獲取異常信息第4頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象
5.3response對(duì)象
5.4session對(duì)象
5.5application對(duì)象
5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第5頁(yè)5.1JSP內(nèi)置對(duì)象的概述
5.1.1JSP內(nèi)置對(duì)象5.1.2JSP內(nèi)置對(duì)象作用域第6頁(yè)5.1.1JSP內(nèi)置對(duì)象內(nèi)置對(duì)象所屬類型說(shuō)明作用范圍pagejava.lang.Object當(dāng)前JSP頁(yè)面Pagerequestjavax.servlet.HttpServletRequest由用戶提交請(qǐng)求而觸發(fā)的request對(duì)象Requestsessionjavax.servlet.http.HttpSession會(huì)話對(duì)象,在發(fā)生HTTP請(qǐng)求時(shí)被創(chuàng)建Sessionapplicationjavax.servlet.ServletContext調(diào)用getServletConfig()或getContext()方法后返回的ServletContext對(duì)象Applicationresponsejavax.servlet.HttpServletResponse由用戶提交請(qǐng)求而觸發(fā)的response對(duì)象Pageoutjava.servlet.jsp.JspWriter輸出流的JspWriter對(duì)象,用來(lái)向客戶端輸出各種格式的數(shù)據(jù),并管理服務(wù)器上的輸出緩沖區(qū)Pageconfigjavax.servlet.ServletConfig為當(dāng)前頁(yè)面配置JSP的ServletPageexceptionjava.lang.Throwable訪問(wèn)當(dāng)前頁(yè)面時(shí)產(chǎn)生的不可預(yù)見的異常PagepageContextjavax.servlet.jsp.PageContext提供了對(duì)JSP頁(yè)面內(nèi)所有的對(duì)象及名字空間的訪問(wèn),也就是說(shuō),它可以訪問(wèn)到本頁(yè)所在的會(huì)話、應(yīng)用,它相當(dāng)于頁(yè)面中所有功能的集大成者Page第7頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象
5.3response對(duì)象
5.4session對(duì)象
5.5application對(duì)象
5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第8頁(yè)5.2request對(duì)象5.2.1訪問(wèn)請(qǐng)求參數(shù)5.2.2在作用域中管理屬性5.2.3獲取cookie5.2.4解決中文亂碼5.2.5獲取客戶端信息5.2.6顯示國(guó)際化信息第9頁(yè)5.2.1訪問(wèn)請(qǐng)求參數(shù)request對(duì)象封裝了由客戶端生成的HTTP請(qǐng)求,包括HTTP頭信息、系統(tǒng)信息、請(qǐng)求方式和請(qǐng)求參數(shù)等。request對(duì)象的方法用于處理客戶端提交的HTTP請(qǐng)求參數(shù)。request對(duì)象處理HTTP請(qǐng)求中的各項(xiàng)參數(shù)時(shí),最常見的是獲取請(qǐng)求參數(shù)。當(dāng)通過(guò)超鏈接形式發(fā)送請(qǐng)求時(shí),若要傳遞參數(shù),可以在超鏈接之后加上英文半角的問(wèn)號(hào)“?”來(lái)實(shí)現(xiàn)。在使用request的getParameter()方法獲取傳遞過(guò)來(lái)的參數(shù)值時(shí),如果指定的參數(shù)不存在,將返回null;如果指定了參數(shù)名,但未指定參數(shù)值,將返回空的字符串""。第10頁(yè)5.2.2在作用域中管理屬性在進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)時(shí),需要把一些數(shù)據(jù)傳遞到目標(biāo)頁(yè)面進(jìn)行處理。這時(shí)可以使用request對(duì)象的setAttribute()方法將數(shù)據(jù)保存到request變量中,語(yǔ)法格式如下:request.setAttribute(Stringname,Objectobject);在將數(shù)據(jù)保存到request范圍內(nèi)的變量后,可以通過(guò)request對(duì)象的getAttribute()方法獲得該變量的值,語(yǔ)法格式如下:request.getAttribute(Stringname);第11頁(yè)5.2.3獲取cookie在JSP技術(shù)中,cookie提供了3個(gè)常用方法:getCookies()、getName()和getValue()。getCookies():獲取所有cookie對(duì)象的集合。getName():獲取指定名稱的cookie。getValue():獲取cookie對(duì)象的值。若要將一個(gè)cookie對(duì)象發(fā)送到客戶端,使用response對(duì)象的addCookie()方法。第12頁(yè)5.2.4解決中文亂碼要解決中文亂碼問(wèn)題,就要保持編碼一致,將獲取到的數(shù)據(jù)通過(guò)String的構(gòu)造方法使用指定的編碼類型重新構(gòu)造一個(gè)String對(duì)象,即可正確地顯示出中文信息。第13頁(yè)5.2.5獲取客戶端信息通過(guò)request對(duì)象可以獲取客戶端信息。例如,HTTP報(bào)頭信息、客戶信息提交方式、客戶端主機(jī)IP地址、端口號(hào)等。request對(duì)象的常用方法如表所示。方法說(shuō)明getHeader(Stringname)獲得HTTP協(xié)議定義的文件頭信息getHeaders(Stringname)返回指定名稱的requestHeader的所有值,結(jié)果是一個(gè)枚舉型的實(shí)例getHeadersNames()返回所有requestHeader的名稱,結(jié)果是一個(gè)枚舉型的實(shí)例getMethod()獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法,如get、post、header、trace等getProtocol()獲得客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱getRequestURI()獲得發(fā)出請(qǐng)求字符串的客戶端地址,不包括請(qǐng)求的參數(shù)getRequestURL()獲取發(fā)出請(qǐng)求字符串的客戶端地址getRealPath()返回當(dāng)前請(qǐng)求文件的絕對(duì)路徑getRemoteAddr()獲取客戶端的IP地址getRemoteHost()獲取客戶端的主機(jī)名getServerName()獲取服務(wù)器的名字getServerPath()獲取客戶端所請(qǐng)求的腳本文件的文件路徑getServerPort()獲取服務(wù)器的端口號(hào)第14頁(yè)5.2.6顯示國(guó)際化信息瀏覽器可以通過(guò)accept-language的HTTP報(bào)頭向Web服務(wù)器指明它所使用的本地語(yǔ)言。Web服務(wù)器端可以通過(guò)request對(duì)象的getLocale()和getLocales()方法獲取這一信息,獲取到的信息屬于java.util.Local類型。java.util.Local類型的對(duì)象封裝了一個(gè)國(guó)家所使用的語(yǔ)言。<% java.util.Localelocale=request.getLocale(); Stringhello=""; if(locale.equals(java.util.Locale.US)){ hello="Hello,welcometoaccess!"; } if(locale.equals(java.util.Locale.CHINA)){ hello="您好,歡迎訪問(wèn)!"; }%><%=hello%>第15頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象5.3response對(duì)象5.4session對(duì)象
5.5application對(duì)象
5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第16頁(yè)5.3response對(duì)象5.3.1重定向網(wǎng)頁(yè)5.3.2處理HTTP文件頭5.3.3設(shè)置輸出緩沖第17頁(yè)5.3.1重定向網(wǎng)頁(yè)使用response對(duì)象的sendRedirect()方法可以將網(wǎng)頁(yè)重定向到另一個(gè)頁(yè)面。sendRedirect()方法的語(yǔ)法格式如下:response.sendRedirect(Stringpath);第18頁(yè)5.3.2處理HTTP文件頭通過(guò)response對(duì)象可以設(shè)置HTTP響應(yīng)報(bào)頭,其中,最常用的是禁用緩存、設(shè)置頁(yè)面自動(dòng)刷新和定時(shí)跳轉(zhuǎn)網(wǎng)頁(yè)。1.禁用緩存:response.setHeader("Cache-Control","no-store");2.設(shè)置頁(yè)面自動(dòng)刷新:response.setHeader("refresh","10");3.定時(shí)跳轉(zhuǎn)網(wǎng)頁(yè)response.setHeader("refresh","5;URL=redirect_to.jsp");第19頁(yè)5.3.3設(shè)置輸出緩沖把緩沖區(qū)內(nèi)容寫到客戶端,通過(guò)調(diào)用response對(duì)象的flushBuffer()方法或out對(duì)象的flush()方法來(lái)實(shí)現(xiàn)。response對(duì)象提供的對(duì)緩沖區(qū)進(jìn)行配置的常用方法如表所示。方法說(shuō)明flushBuffer()強(qiáng)制將緩沖區(qū)的內(nèi)容輸出到客戶端getBufferSize()獲取響應(yīng)所使用的緩沖區(qū)的實(shí)際大小。如果沒有使用緩沖區(qū),則返回0setBufferSize(intsize)設(shè)置緩沖區(qū)的大小reset()清除緩沖區(qū)的內(nèi)容,同時(shí)清除狀態(tài)碼和報(bào)頭isCommitted()檢測(cè)服務(wù)器端是否已經(jīng)把數(shù)據(jù)寫入到了客戶端第20頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象5.3response對(duì)象5.4session對(duì)象
5.5application對(duì)象
5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第21頁(yè)5.4session對(duì)象5.4.1創(chuàng)建及獲取客戶的會(huì)話5.4.2從會(huì)話中移動(dòng)指定的綁定對(duì)象5.4.3銷毀session5.4.4會(huì)話超時(shí)的管理5.4.5session對(duì)象的應(yīng)用第22頁(yè)5.4.1創(chuàng)建及獲取客戶的會(huì)話通過(guò)session對(duì)象可以存儲(chǔ)或讀取客戶相關(guān)的信息,例如,用戶登錄、訂單等信息,這可以通過(guò)session對(duì)象的setAttribute()、getAttribute()方法實(shí)現(xiàn)。第23頁(yè)5.4.2從會(huì)話中移動(dòng)指定的綁定對(duì)象移除session變量,使用removeAttribute()方法,語(yǔ)法格式如下:removeAttribute(Stringname)第24頁(yè)5.4.3銷毀session銷毀session變量通過(guò)invalidate()方法實(shí)現(xiàn),語(yǔ)法格式如下:session.invalidate();第25頁(yè)5.4.4會(huì)話超時(shí)的管理session對(duì)象提供的有關(guān)會(huì)話生命周期的常用方法如下。getLastAccessedTime():返回客戶端最后一次與會(huì)話相關(guān)聯(lián)的請(qǐng)求時(shí)間。getMaxInactiveInterval():以秒為單位返回一個(gè)會(huì)話內(nèi)兩個(gè)請(qǐng)求最大時(shí)間間隔。setMaxInactiveInterval():以秒為單位設(shè)置session的有效時(shí)間。第26頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象5.3response對(duì)象5.4session對(duì)象5.5application對(duì)象
5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第27頁(yè)5.5application對(duì)象application對(duì)象用于保存應(yīng)用程序中的公有數(shù)據(jù)。它在服務(wù)器啟動(dòng)時(shí)自動(dòng)創(chuàng)建,在服務(wù)器停止時(shí)銷毀。當(dāng)application對(duì)象沒有被銷毀時(shí),所有用戶都可以共享該application對(duì)象。與session對(duì)象相比,application對(duì)象的生命周期更長(zhǎng),類似于系統(tǒng)的“全局變量”。application對(duì)象提供了對(duì)應(yīng)用程序初始化參數(shù)進(jìn)行訪問(wèn)的方法。應(yīng)用程序初始化參數(shù)在web.xml文件中進(jìn)行設(shè)置。application對(duì)象提供了以下兩種訪問(wèn)應(yīng)用程序初始化參數(shù)的方法:getInitParameter()方法getAttributeNames()方法第28頁(yè)5.5application對(duì)象application對(duì)象管理應(yīng)用程序環(huán)境屬性的常用方法如下。getAttributeNames():獲得所有application對(duì)象使用的屬性名。getAttribute(Stringname):從application對(duì)象中獲取指定對(duì)象名。setAttribute(Stringkey,Objectobj):使用指定名稱和指定對(duì)象在application對(duì)象中關(guān)聯(lián)。removeAttribute(Stringname):從application對(duì)象中移除指定名稱的屬性。第29頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象5.3response對(duì)象5.4session對(duì)象5.5application對(duì)象5.6out對(duì)象
5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第30頁(yè)5.6out對(duì)象向客戶端輸出數(shù)據(jù):out對(duì)象可以輸出各種類型的數(shù)據(jù),在輸出非字符串類型的數(shù)據(jù)時(shí),會(huì)自動(dòng)將數(shù)據(jù)轉(zhuǎn)換為字符串進(jìn)行輸出。另外,out對(duì)象提供了print()和println()兩個(gè)方法向頁(yè)面輸出信息。管理響應(yīng)緩沖:out對(duì)象還提供了用于管理緩沖區(qū)的其他方法,如表所示。方法說(shuō)明clear()清除緩沖區(qū)中的內(nèi)容clearBuffer()清除當(dāng)前緩沖區(qū)中的內(nèi)容flush()刷新流isAutoFlush()檢測(cè)當(dāng)前緩沖區(qū)已滿時(shí)是自動(dòng)清空,還是拋出異常getBufferSize()獲取緩沖區(qū)的大小第31頁(yè)主要內(nèi)容5.1JSP內(nèi)置對(duì)象的概述
5.2request對(duì)象5.3response對(duì)象5.4session對(duì)象5.5application對(duì)象5.6out對(duì)象5.7其他內(nèi)置對(duì)象
5.8本章小結(jié)
第32頁(yè)5.7其他內(nèi)置對(duì)象5.7.1pageContext對(duì)象 5.7.2config對(duì)象 5.7.3page對(duì)象5.7.4exception對(duì)象第33頁(yè)5.7.1pageContext對(duì)象pageContext對(duì)象用于獲取頁(yè)面上下文。JSP頁(yè)面可以直接使用pageContext對(duì)象,該對(duì)象的常用方法如表所示。方法說(shuō)明forward(java.lang.StringrelativeUtlpath)把頁(yè)面轉(zhuǎn)發(fā)到另一個(gè)頁(yè)面getAttribute(Stringname)獲取參數(shù)值getAttributeNamesInScope(intscope)獲取某范圍的參數(shù)名稱的集合,返回值為java.util.Enumeration對(duì)象getException()返回exception對(duì)象getRequest()返回request對(duì)象getResponse()返回response對(duì)象getSession()返回session對(duì)象getOut()返回out對(duì)象getApplication()返回application對(duì)象setAttribute()為指定范圍內(nèi)的屬性設(shè)置屬性值removeAttribute()刪除指定范圍內(nèi)的指定屬性第34頁(yè)5.7.1pageContext對(duì)象pageContext對(duì)象用于獲取頁(yè)面上下文。JSP頁(yè)面可以直接使用pageContext對(duì)象,該對(duì)象的常用方法如表所示。方法說(shuō)明forward(java.lang.StringrelativeUtlpath)把頁(yè)面轉(zhuǎn)發(fā)到另一個(gè)頁(yè)面getAttribute(Stringname)獲取參數(shù)值getAttributeNamesInScope(intscope)獲取某范圍的參數(shù)名稱的集合,返回值為java.util.Enumeration對(duì)象getException()返回exception對(duì)象getRequest()返回request對(duì)象getResponse()返回response對(duì)象getSession()返回session對(duì)象getOut()返回out對(duì)象getApplication()返回application對(duì)象setAttribute()為指定范圍內(nèi)的屬性設(shè)置屬性值removeAttribute()刪除指定范圍內(nèi)的指定屬性第35頁(yè)5.7.2config對(duì)象config對(duì)象主要用于獲取服務(wù)器的配置信息。方法說(shuō)明getServletContext()獲取Servlet上下文getServletName()獲取Servlet服務(wù)器名getInitParameter()獲取服務(wù)器所有初始參數(shù)名稱,返回值為java.util.Enumeration對(duì)象getInitParameterNames()獲取服務(wù)器中name參數(shù)的初始值第36頁(yè)5.7.2config對(duì)象config對(duì)象主要用于獲取服務(wù)器的配置信息。方法說(shuō)明getServletContext()獲取Servlet上下文getServletName()獲取Servlet服務(wù)器名getInitParameter()獲取服務(wù)器所有初始參數(shù)名稱,返回值為java.util.Enumeration對(duì)象getInitParameterNames()獲取服務(wù)器中name參數(shù)的初始值第37頁(yè)5.7.3
page對(duì)象page對(duì)象代表JSP頁(yè)面本身。page對(duì)象本質(zhì)上是包含當(dāng)前Servlet接口引用的變量,可以看作是this關(guān)鍵字的別名。page對(duì)象的常用方法如表所示。方法說(shuō)明getClass()返回當(dāng)前Object的類hashCode()返回該Object的哈希代碼toString()把該Object類轉(zhuǎn)換成字
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年設(shè)備借款擔(dān)保合同
- 設(shè)備進(jìn)場(chǎng)驗(yàn)收登記制度(4篇)
- 范進(jìn)中舉課本劇
- 2025賓館公共區(qū)域綠化養(yǎng)護(hù)與美化合同3篇
- 2024年設(shè)計(jì)服務(wù)外包合同范本版B版
- 2024養(yǎng)老院老年文化娛樂活動(dòng)合作協(xié)議3篇
- 2024版:某科技公司與某政府部門之間關(guān)于智慧城市建設(shè)技術(shù)服務(wù)的合同
- 2024年軟件知識(shí)產(chǎn)權(quán)許可與全球市場(chǎng)拓展協(xié)議2篇
- 麗水學(xué)院《中西醫(yī)結(jié)合實(shí)驗(yàn)診斷研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南有色金屬職業(yè)技術(shù)學(xué)院《外科》2023-2024學(xué)年第一學(xué)期期末試卷
- 辦公大樓物業(yè)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 中國(guó)國(guó)家標(biāo)準(zhǔn)英文翻譯指南
- 醫(yī)院人才培養(yǎng)和梯隊(duì)建設(shè)制度
- 幼兒園醫(yī)護(hù)助教知識(shí)學(xué)習(xí)培訓(xùn)PPT
- 【貓傳染性疾病的診斷與治愈8700字(論文)】
- 實(shí)驗(yàn)小學(xué)期末三好學(xué)生表彰大會(huì)背景展示PPT
- 高一物理必修一期末測(cè)試題含答案
- 小學(xué)三年級(jí)好詞好句好段摘抄大全
- GB/T 6730.22-2016鐵礦石鈦含量的測(cè)定二安替吡啉甲烷分光光度法
- GB/T 22898-2008紙和紙板抗張強(qiáng)度的測(cè)定恒速拉伸法(100 mm/min)
- 高血壓疾病證明書
評(píng)論
0/150
提交評(píng)論