《JSP-Web開發(fā)基礎(chǔ)教程(微課版)》ch05_第1頁
《JSP-Web開發(fā)基礎(chǔ)教程(微課版)》ch05_第2頁
《JSP-Web開發(fā)基礎(chǔ)教程(微課版)》ch05_第3頁
《JSP-Web開發(fā)基礎(chǔ)教程(微課版)》ch05_第4頁
《JSP-Web開發(fā)基礎(chǔ)教程(微課版)》ch05_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1頁第5章JSP內(nèi)置對象

本章概述本章的學習目標主要內(nèi)容第2頁本章概述JSP內(nèi)置對象,也叫隱含對象,是指在JSP頁面系統(tǒng)中已經(jīng)默認內(nèi)置的Java對象,這些對象不需要開發(fā)人員顯示聲明即可使用,即所有的JSP代碼都可以直接訪問JSP的內(nèi)置對象。本章將對JSP提供的9個內(nèi)置對象進行詳細介紹。第3頁本章的學習目標獲取訪問請求參數(shù)和表單提交的信息通過request對象進行數(shù)據(jù)傳遞獲取客戶端信息和cookie應(yīng)用response對象實現(xiàn)重定向頁面向客戶端輸出數(shù)據(jù)創(chuàng)建及獲取客戶的會話從會話中移除指定的對象設(shè)置session的有效時間以及銷毀session應(yīng)用application實現(xiàn)網(wǎng)頁計數(shù)器使用exception對象獲取異常信息第4頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象

5.3response對象

5.4session對象

5.5application對象

5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第5頁5.1JSP內(nèi)置對象的概述

5.1.1JSP內(nèi)置對象5.1.2JSP內(nèi)置對象作用域第6頁5.1.1JSP內(nèi)置對象內(nèi)置對象所屬類型說明作用范圍pagejava.lang.Object當前JSP頁面Pagerequestjavax.servlet.HttpServletRequest由用戶提交請求而觸發(fā)的request對象Requestsessionjavax.servlet.http.HttpSession會話對象,在發(fā)生HTTP請求時被創(chuàng)建Sessionapplicationjavax.servlet.ServletContext調(diào)用getServletConfig()或getContext()方法后返回的ServletContext對象Applicationresponsejavax.servlet.HttpServletResponse由用戶提交請求而觸發(fā)的response對象Pageoutjava.servlet.jsp.JspWriter輸出流的JspWriter對象,用來向客戶端輸出各種格式的數(shù)據(jù),并管理服務(wù)器上的輸出緩沖區(qū)Pageconfigjavax.servlet.ServletConfig為當前頁面配置JSP的ServletPageexceptionjava.lang.Throwable訪問當前頁面時產(chǎn)生的不可預見的異常PagepageContextjavax.servlet.jsp.PageContext提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問,也就是說,它可以訪問到本頁所在的會話、應(yīng)用,它相當于頁面中所有功能的集大成者Page第7頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象

5.3response對象

5.4session對象

5.5application對象

5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第8頁5.2request對象5.2.1訪問請求參數(shù)5.2.2在作用域中管理屬性5.2.3獲取cookie5.2.4解決中文亂碼5.2.5獲取客戶端信息5.2.6顯示國際化信息第9頁5.2.1訪問請求參數(shù)request對象封裝了由客戶端生成的HTTP請求,包括HTTP頭信息、系統(tǒng)信息、請求方式和請求參數(shù)等。request對象的方法用于處理客戶端提交的HTTP請求參數(shù)。request對象處理HTTP請求中的各項參數(shù)時,最常見的是獲取請求參數(shù)。當通過超鏈接形式發(fā)送請求時,若要傳遞參數(shù),可以在超鏈接之后加上英文半角的問號“?”來實現(xiàn)。在使用request的getParameter()方法獲取傳遞過來的參數(shù)值時,如果指定的參數(shù)不存在,將返回null;如果指定了參數(shù)名,但未指定參數(shù)值,將返回空的字符串""。第10頁5.2.2在作用域中管理屬性在進行請求轉(zhuǎn)發(fā)時,需要把一些數(shù)據(jù)傳遞到目標頁面進行處理。這時可以使用request對象的setAttribute()方法將數(shù)據(jù)保存到request變量中,語法格式如下:request.setAttribute(Stringname,Objectobject);在將數(shù)據(jù)保存到request范圍內(nèi)的變量后,可以通過request對象的getAttribute()方法獲得該變量的值,語法格式如下:request.getAttribute(Stringname);第11頁5.2.3獲取cookie在JSP技術(shù)中,cookie提供了3個常用方法:getCookies()、getName()和getValue()。getCookies():獲取所有cookie對象的集合。getName():獲取指定名稱的cookie。getValue():獲取cookie對象的值。若要將一個cookie對象發(fā)送到客戶端,使用response對象的addCookie()方法。第12頁5.2.4解決中文亂碼要解決中文亂碼問題,就要保持編碼一致,將獲取到的數(shù)據(jù)通過String的構(gòu)造方法使用指定的編碼類型重新構(gòu)造一個String對象,即可正確地顯示出中文信息。第13頁5.2.5獲取客戶端信息通過request對象可以獲取客戶端信息。例如,HTTP報頭信息、客戶信息提交方式、客戶端主機IP地址、端口號等。request對象的常用方法如表所示。方法說明getHeader(Stringname)獲得HTTP協(xié)議定義的文件頭信息getHeaders(Stringname)返回指定名稱的requestHeader的所有值,結(jié)果是一個枚舉型的實例getHeadersNames()返回所有requestHeader的名稱,結(jié)果是一個枚舉型的實例getMethod()獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法,如get、post、header、trace等getProtocol()獲得客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱getRequestURI()獲得發(fā)出請求字符串的客戶端地址,不包括請求的參數(shù)getRequestURL()獲取發(fā)出請求字符串的客戶端地址getRealPath()返回當前請求文件的絕對路徑getRemoteAddr()獲取客戶端的IP地址getRemoteHost()獲取客戶端的主機名getServerName()獲取服務(wù)器的名字getServerPath()獲取客戶端所請求的腳本文件的文件路徑getServerPort()獲取服務(wù)器的端口號第14頁5.2.6顯示國際化信息瀏覽器可以通過accept-language的HTTP報頭向Web服務(wù)器指明它所使用的本地語言。Web服務(wù)器端可以通過request對象的getLocale()和getLocales()方法獲取這一信息,獲取到的信息屬于java.util.Local類型。java.util.Local類型的對象封裝了一個國家所使用的語言。<% java.util.Localelocale=request.getLocale(); Stringhello=""; if(locale.equals(java.util.Locale.US)){ hello="Hello,welcometoaccess!"; } if(locale.equals(java.util.Locale.CHINA)){ hello="您好,歡迎訪問!"; }%><%=hello%>第15頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象5.3response對象5.4session對象

5.5application對象

5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第16頁5.3response對象5.3.1重定向網(wǎng)頁5.3.2處理HTTP文件頭5.3.3設(shè)置輸出緩沖第17頁5.3.1重定向網(wǎng)頁使用response對象的sendRedirect()方法可以將網(wǎng)頁重定向到另一個頁面。sendRedirect()方法的語法格式如下:response.sendRedirect(Stringpath);第18頁5.3.2處理HTTP文件頭通過response對象可以設(shè)置HTTP響應(yīng)報頭,其中,最常用的是禁用緩存、設(shè)置頁面自動刷新和定時跳轉(zhuǎn)網(wǎng)頁。1.禁用緩存:response.setHeader("Cache-Control","no-store");2.設(shè)置頁面自動刷新:response.setHeader("refresh","10");3.定時跳轉(zhuǎn)網(wǎng)頁response.setHeader("refresh","5;URL=redirect_to.jsp");第19頁5.3.3設(shè)置輸出緩沖把緩沖區(qū)內(nèi)容寫到客戶端,通過調(diào)用response對象的flushBuffer()方法或out對象的flush()方法來實現(xiàn)。response對象提供的對緩沖區(qū)進行配置的常用方法如表所示。方法說明flushBuffer()強制將緩沖區(qū)的內(nèi)容輸出到客戶端getBufferSize()獲取響應(yīng)所使用的緩沖區(qū)的實際大小。如果沒有使用緩沖區(qū),則返回0setBufferSize(intsize)設(shè)置緩沖區(qū)的大小reset()清除緩沖區(qū)的內(nèi)容,同時清除狀態(tài)碼和報頭isCommitted()檢測服務(wù)器端是否已經(jīng)把數(shù)據(jù)寫入到了客戶端第20頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象5.3response對象5.4session對象

5.5application對象

5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第21頁5.4session對象5.4.1創(chuàng)建及獲取客戶的會話5.4.2從會話中移動指定的綁定對象5.4.3銷毀session5.4.4會話超時的管理5.4.5session對象的應(yīng)用第22頁5.4.1創(chuàng)建及獲取客戶的會話通過session對象可以存儲或讀取客戶相關(guān)的信息,例如,用戶登錄、訂單等信息,這可以通過session對象的setAttribute()、getAttribute()方法實現(xiàn)。第23頁5.4.2從會話中移動指定的綁定對象移除session變量,使用removeAttribute()方法,語法格式如下:removeAttribute(Stringname)第24頁5.4.3銷毀session銷毀session變量通過invalidate()方法實現(xiàn),語法格式如下:session.invalidate();第25頁5.4.4會話超時的管理session對象提供的有關(guān)會話生命周期的常用方法如下。getLastAccessedTime():返回客戶端最后一次與會話相關(guān)聯(lián)的請求時間。getMaxInactiveInterval():以秒為單位返回一個會話內(nèi)兩個請求最大時間間隔。setMaxInactiveInterval():以秒為單位設(shè)置session的有效時間。第26頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象5.3response對象5.4session對象5.5application對象

5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第27頁5.5application對象application對象用于保存應(yīng)用程序中的公有數(shù)據(jù)。它在服務(wù)器啟動時自動創(chuàng)建,在服務(wù)器停止時銷毀。當application對象沒有被銷毀時,所有用戶都可以共享該application對象。與session對象相比,application對象的生命周期更長,類似于系統(tǒng)的“全局變量”。application對象提供了對應(yīng)用程序初始化參數(shù)進行訪問的方法。應(yīng)用程序初始化參數(shù)在web.xml文件中進行設(shè)置。application對象提供了以下兩種訪問應(yīng)用程序初始化參數(shù)的方法:getInitParameter()方法getAttributeNames()方法第28頁5.5application對象application對象管理應(yīng)用程序環(huán)境屬性的常用方法如下。getAttributeNames():獲得所有application對象使用的屬性名。getAttribute(Stringname):從application對象中獲取指定對象名。setAttribute(Stringkey,Objectobj):使用指定名稱和指定對象在application對象中關(guān)聯(lián)。removeAttribute(Stringname):從application對象中移除指定名稱的屬性。第29頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象5.3response對象5.4session對象5.5application對象5.6out對象

5.7其他內(nèi)置對象

5.8本章小結(jié)

第30頁5.6out對象向客戶端輸出數(shù)據(jù):out對象可以輸出各種類型的數(shù)據(jù),在輸出非字符串類型的數(shù)據(jù)時,會自動將數(shù)據(jù)轉(zhuǎn)換為字符串進行輸出。另外,out對象提供了print()和println()兩個方法向頁面輸出信息。管理響應(yīng)緩沖:out對象還提供了用于管理緩沖區(qū)的其他方法,如表所示。方法說明clear()清除緩沖區(qū)中的內(nèi)容clearBuffer()清除當前緩沖區(qū)中的內(nèi)容flush()刷新流isAutoFlush()檢測當前緩沖區(qū)已滿時是自動清空,還是拋出異常getBufferSize()獲取緩沖區(qū)的大小第31頁主要內(nèi)容5.1JSP內(nèi)置對象的概述

5.2request對象5.3response對象5.4session對象5.5application對象5.6out對象5.7其他內(nèi)置對象

5.8本章小結(jié)

第32頁5.7其他內(nèi)置對象5.7.1pageContext對象 5.7.2config對象 5.7.3page對象5.7.4exception對象第33頁5.7.1pageContext對象pageContext對象用于獲取頁面上下文。JSP頁面可以直接使用pageContext對象,該對象的常用方法如表所示。方法說明forward(java.lang.StringrelativeUtlpath)把頁面轉(zhuǎn)發(fā)到另一個頁面getAttribute(Stringname)獲取參數(shù)值getAttributeNamesInScope(intscope)獲取某范圍的參數(shù)名稱的集合,返回值為java.util.Enumeration對象getException()返回exception對象getRequest()返回request對象getResponse()返回response對象getSession()返回session對象getOut()返回out對象getApplication()返回application對象setAttribute()為指定范圍內(nèi)的屬性設(shè)置屬性值removeAttribute()刪除指定范圍內(nèi)的指定屬性第34頁5.7.1pageContext對象pageContext對象用于獲取頁面上下文。JSP頁面可以直接使用pageContext對象,該對象的常用方法如表所示。方法說明forward(java.lang.StringrelativeUtlpath)把頁面轉(zhuǎn)發(fā)到另一個頁面getAttribute(Stringname)獲取參數(shù)值getAttributeNamesInScope(intscope)獲取某范圍的參數(shù)名稱的集合,返回值為java.util.Enumeration對象getException()返回exception對象getRequest()返回request對象getResponse()返回response對象getSession()返回session對象getOut()返回out對象getApplication()返回application對象setAttribute()為指定范圍內(nèi)的屬性設(shè)置屬性值removeAttribute()刪除指定范圍內(nèi)的指定屬性第35頁5.7.2config對象config對象主要用于獲取服務(wù)器的配置信息。方法說明getServletContext()獲取Servlet上下文getServletName()獲取Servlet服務(wù)器名getInitParameter()獲取服務(wù)器所有初始參數(shù)名稱,返回值為java.util.Enumeration對象getInitParameterNames()獲取服務(wù)器中name參數(shù)的初始值第36頁5.7.2config對象config對象主要用于獲取服務(wù)器的配置信息。方法說明getServletContext()獲取Servlet上下文getServletName()獲取Servlet服務(wù)器名getInitParameter()獲取服務(wù)器所有初始參數(shù)名稱,返回值為java.util.Enumeration對象getInitParameterNames()獲取服務(wù)器中name參數(shù)的初始值第37頁5.7.3

page對象page對象代表JSP頁面本身。page對象本質(zhì)上是包含當前Servlet接口引用的變量,可以看作是this關(guān)鍵字的別名。page對象的常用方法如表所示。方法說明getClass()返回當前Object的類hashCode()返回該Object的哈希代碼toString()把該Object類轉(zhuǎn)換成字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論