国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
jsp內(nèi)置對象詳解

jsp內(nèi)置對象詳解

 

JSP基于Java語言,面向?qū)ο笠彩撬囊淮筇厣?JSP中包含大量的內(nèi)置對象和可擴展的組件對象.可以說,對象是JSP編程技術(shù)的精髓.在這一章中,我們將介紹JSP中的對象,重點講述JSP的內(nèi)置對象,說明它們的功能,并通過示例來介紹它們的使用方法.

掌握J(rèn)SP的內(nèi)置對象的用法,基本掌握J(rèn)SP的開發(fā)技巧

要求

能靈活應(yīng)用JSP的內(nèi)置對象來開發(fā)程序

技能

介紹JSP的內(nèi)置對象

理論

3.1 對象與內(nèi)置對象

對象是典型的具有方法,屬性和集合的事物

對象的屬性反映了對象的狀態(tài),可以讀取或設(shè)置.對象的集合是由很多不同的與對象有關(guān)系的屬性和值的配對組成的.

對于一般的對象,要想使用它,必須先聲明一個類,再將它實例化,就會得到一個可以使用的對象.

下面我們通過一個例子來講解一般對象的使用方法.

文件useobject.jsp _____

JSP程序中8個默認(rèn)的內(nèi)置對象

對于它們而言,不用聲明就可以直接使用.這8個對象分別是request,response,pageContext,session,application,out,config和page.

page

實現(xiàn)處理本頁當(dāng)前請求的類的實例

java.1ang.Object

page

page

本 JSP 的 ServletConfig

javax.servlet.ServletConfig

config

page

向輸出流寫入內(nèi)容的對象

Javax.servlet.jsp.JspWriter

out

application

從 servlet 配置對象獲得的 servlet 上下文(如在 getServletConfig() ,getContext()的調(diào)用中)

Javax.servlet.ServletContext

application

session

為請求的客戶創(chuàng)建的session對象

Javax.servlet.http.HttpSession

session

page

本 JSP 的頁面上下文

Javax.servlet.jsp.PageContext

pageContext

page

對請求的應(yīng)答

依賴協(xié)議的java.servlet.ServletResponse 子類(例如,javax.servlet.HttpServletResponse)

response

request

觸發(fā)服務(wù)調(diào)用的請求

依 ??協(xié)議的java.servlet.ServletRequest 子類(例如,javax.servlet.HttpServletRequest)

Request

范圍

代表內(nèi)容

類型

內(nèi)置對象

3.2 request對象

request對象是ServletRequest的一個實例.當(dāng)客戶端請求一個JSP網(wǎng)頁時,JSP引擎會將客戶端的請求信息包裝在這個request對象中,請求信息的內(nèi)容包括請求的標(biāo)題頭(Header),信息(如瀏覽器的版本信息,語言和編碼方式等),請求的方式(如HTTP方法:GET,POST,PUT等),請求的參數(shù)名稱,參數(shù)值和客戶端的主機名稱等,然后將request對象當(dāng)作jspService方法的HttpServletRequest參數(shù)值,所以我們可以通過這個對象來取得有關(guān)客戶端的請求信息.

3.2.1 request對象的方法

方法

返回接收請求的端口

getServerPort

返回接收請求的服務(wù)器的主機名

getServerName

返回發(fā)出請求的 URL 的機制

getScheme

返回發(fā)送請求的接口程序的完全限定的主機名

getRemoteHost

返回發(fā)送請求的接口程序的 IP 地址

getRemoteAddr

返回運用替換規(guī)則從虛擬地址中獲得的實際地址

getRealPath

返回從請求體中讀取的文本的緩存數(shù)據(jù)

getReader

返回請求的協(xié)議和版本號

getProtocol

返回作為字符串列舉的指定參數(shù)的值

getParameterValues

返回本次請求的參數(shù)名字

getParameterName

返回包含指定參數(shù)的單獨值的字符串

getParameter

返回在請求體中讀取二進(jìn)制數(shù)據(jù)的輸入流

getlnputStream

返回請求實體數(shù)據(jù)的 InternetMedia 類型

getContenType

返回請求實體數(shù)據(jù)的大小

getContentLength

返回為請求的輸入進(jìn)行編碼的字符集合

getCharacterEncoding

返回請求的給出名字的屬性的值

getAttribute

描述

方法

request對象使用示例

1. request對象獲取服務(wù)器及客戶端的信息

文件 request1.jsp

2. 用request對象來獲取和處理表單傳過來的參數(shù)值

(1) 建立HTML表單

(2) 使用GET和POST方法

(3) 用request對象處理

用戶輸入的數(shù)據(jù)用來存放在request對象里,用javax.servlet.HttpServletRequest來執(zhí)行,你可以在JSP代碼中直接訪問request對象.并且處理表單傳送過來的數(shù)據(jù).

文件 request3.htm request3.jsp

3. 用request對象來獲取和處理表單傳過來的中文參數(shù)值的處理

文件 request2.htm request2.jsp

3.3 response對象

response對象的類型是javax.servlet.ServletResponse類的實例,JSP引擎會根據(jù)客戶端的請求信息建立一個默認(rèn)的response對象.它用于將瀏覽器參考信息,如回應(yīng)的Header,回應(yīng)本體(HTML的內(nèi)容)以及服務(wù)器端的狀態(tài)碼等信息提供給客戶端.

3.3.1 response對象的方法

重定向客戶端的地址

sendRedirect

設(shè)定指定名字的HTTP文件頭的值

setHeader

向客戶端發(fā)送錯誤信息

sendError

判斷指定的HTTP文件頭是否存在

containsHeader

添加HTTP文件頭(Header),將會傳送到客戶端

addHeader

添加一個Cookie對象,用來保存客戶端的用戶信息

addCookie

為應(yīng)答設(shè)置內(nèi)容類型

setContentType

為應(yīng)答設(shè)置內(nèi)容長度

setContentLength

返回用于格式化文本應(yīng)答的打印程序

getWriter

返回用于書寫二進(jìn)制應(yīng)答數(shù)據(jù)的輸出流

getCharacterEncoding

返回用于MIME編碼的字符集合

getCharacterEncoding

3.3.2 response對象使用示例

下面的示例程序?qū)崿F(xiàn)了定時刷新頁面的功能

文件refresh.jsp

這個程序指定頁面每隔5秒鐘自動刷新一遍,服務(wù)器重新執(zhí)行這個程序,產(chǎn)生新的當(dāng)前時間,然后輸出到客戶端.所以,頁面上顯示的時間每隔5秒鐘就增加5秒鐘,實現(xiàn)了類似時鐘的功能.

下面的示例程序?qū)崿F(xiàn)了頁面重定向功能

文件request2.htm

輸入用戶名為admin,進(jìn)入管理界面;否則,則進(jìn)入普通用戶界面.

3.4 session對象

session對象是JSP中一個很重要的內(nèi)部對象,我們使用它來保存某個特定客戶端(訪問者)一次訪問的一些特定信息.

在JSP網(wǎng)絡(luò)編程中,有多種方法可以保存客戶信息,但是最常用,最實用的還是session對象.

3.4.1 session對象介紹

session對象,實際上就是服務(wù)器與客戶端之間的"會話"

(1) session可以用來儲存訪問者的一些特定信息.主機服務(wù)器就是根據(jù)session來跟蹤這些信息的.

(2) session可以創(chuàng)建訪問者信息容器.

(3) session可以用來跟蹤訪問者的訪問路徑,從中挖掘有用的信息,如訪問者的興趣愛好,訪問目的.

用戶在Web應(yīng)用程序中訪問同一頁面時,session變量始終存在,當(dāng)用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時,存儲在session對象中的變量也不會清除,當(dāng)然也可以使用session方法顯式地結(jié)束一個會話和設(shè)置空閑會話的超時期限.

session在JSP程序中是一個內(nèi)置的對象

每一個客戶端都有一個session對象用來存放于這個客戶端相關(guān)的數(shù)據(jù).

在JSP的程序中,通常不用任何代碼,就可以直接使用session對象.不過為了確認(rèn),可以加入以下代碼,以表示需要啟動session功能.

如果設(shè)置上述的session值為false,則說明禁用session功能.

session對象的類為HttpSession,它提供了很多使用的方法.

3.4.2 session對象的方法

session對象的類是HttpSession.HttpSession由服務(wù)器的程序?qū)崿F(xiàn),提供HTTP服務(wù)器和HTTP客戶端之間的會話.會話,就是在給定時間段內(nèi)持續(xù)進(jìn)行多路連接和請求.會話被用來在多頁面請求中保持狀態(tài)和用戶認(rèn)證.

session對象的常用方法

移去和會話應(yīng)用層數(shù)據(jù)中指定名字相連的對象

removeValue

將指定的對象和使用指定名字的會話應(yīng)用層數(shù)據(jù)相連

putValue

檢查是否客戶端參加了會話

isNew

使會話無效,并將其從上下文中移出

invalidate

返回和會話相連的應(yīng)用層數(shù)據(jù)對象的名字

getValueNames

返回和應(yīng)用層數(shù)據(jù)中指定名字相聯(lián)系的對象

getValue

返回會話相連的上下文

getSessionContext

返回客戶端上一次發(fā)送攜帶會話賬號的時間

getLastAccessTime

返回會話標(biāo)識符

getId

返回會話創(chuàng)建的時間

getCreationTime

3.4.3 session對象使用示例

為說明session對象的具體應(yīng)用,以用三個頁面模擬一個多頁面的Web應(yīng)用為例

(1) 第一個頁面(q1.html)僅包含一個要求輸入用戶名字的HTML表單 .

文件q1.htm

(2)第二個頁面是一個JSP頁面(q2.jsp),它通過request對象提取q1.html表單中的thename值,將它存儲為name變量,然后將這個name值保存到session對象中.q2.jsp的另外一個任務(wù)是詢問第二個問題.

(3) 第三個頁面也是一個JSP頁面(q3.jsp),主要任務(wù)是顯示問答結(jié)果,另外一個任務(wù)是提取在第二個頁面中的用戶輸入并顯示它.

通常會話管理是通過服務(wù)器將SessionID作為一個cookie存儲在用戶的Web瀏覽器中來唯一標(biāo)識每個用戶會話

如果瀏覽器不支持cookie,或者將瀏覽器設(shè)置為不接受cookie,我們可通過URL重寫來實現(xiàn)會話管理.

文件hello1.jsp

使用session對象在3個不同的JSP文件中保存信息

文件example0.htm(在accountBalance中必須輸入數(shù)字)

3.5 application對象

application對象保存了一個應(yīng)用系統(tǒng)中一些公用的數(shù)據(jù).與session對象相比,application對象是所有客戶共享的,而session對象則是每個客戶專用的.application對象可以是javax.servlet.ServletContext類型的.ServletContext接口讓servlet訪問關(guān)于其環(huán)境的信息.application對象的范圍是application.

3.5.1 application對象的方法

方法

設(shè)置某個application對象的某個屬性值

setAttribute

獲得當(dāng)前版本的Servlet編譯器的信息

getServerInfo

返回application某個屬性的值

getInitParameter

以Enumeration數(shù)據(jù)形式返回所有application對象的屬性名稱

getAttributeNames

以O(shè)bject對象的形式返回對應(yīng)名稱的application對象的屬性值

getAttribute

含義

對象

3.5.2 application對象的使用示例

一個使用了application對象的計數(shù)器

文件 appcount.jsp

應(yīng)用application內(nèi)建對象,將上面的session例子改為application的例子.

文件 application1.htm

3.6 out對象

out對象用于輸出數(shù)據(jù),它可以是javax.servlet.jsp.JspWriter的一個實例.out對象的范圍是page.

從java.io.Writer拓展而來的公共抽象類JspWriter效仿了java.io.BufferedWriter和java.Io.PrintWriter中的某些功能.但是,不同之處在于它會在打印方法中拋出(throw) java.Io.IOException異常,而PrintWriter不這樣做.

JSP中的out對象就是這種類型的.如果page指令選擇了autoflush="true",那么當(dāng)出現(xiàn)由于當(dāng)前的操作不清空緩存而造成緩沖區(qū)溢出的情況時,這個類的所有I/O操作會自動清空緩沖區(qū)的內(nèi)容.如果autoflush="false",那么當(dāng)操作造成了緩沖區(qū)溢出時,這個類的所有的I/O操作將拋出一個IOException.

3.6.1 out對象的變量

autoFlush

類型為protected boolean autoflush

如果變量值為真,則當(dāng)當(dāng)前的操作造成緩沖區(qū)溢出時,緩沖區(qū)會被清空.

如果變量值為假,則如果當(dāng)前操作造成緩沖區(qū)溢出就會拋出一個IOException.

bufferSize

類型為protectedintbufferSize

表示緩沖區(qū)目前的大小.初始值根據(jù)不同的設(shè)備而不同,但是不少于8KB.

DEFAULT_BUFFER

類型為publicstaticfinalintDEFAULT_BUFFER

表示W(wǎng)riter正使用的缺省的緩沖區(qū)大小設(shè)置.

No_BUFFER

類型為Public static final int NO_BUFFER

表示W(wǎng)riter是否處于緩存輸出狀態(tài).

3.6.2 Out對象的方法

方法

打印一個對象

Object

print

打印一個長整數(shù)

long

print

打印一個整數(shù)

int

print

打印一個浮點數(shù)

float

print

打印一個雙精度浮點數(shù)

double

print

打印一個字符數(shù)組

char[]

print

打印一個字符

char

print

打印一個布爾值

boolean

print

寫一行分隔符

_

newLine

獲得autoFlush的當(dāng)前值

_

isAutoFlush

獲得緩沖區(qū)中未使用的字節(jié)數(shù)

_

getRemaining

獲得緩沖區(qū)的大小

_

getBufferSize

清除緩沖區(qū)的流

_

clearBuffer

Clear 清除緩沖區(qū)內(nèi)容

_

Clear

輸出流

_

flush

關(guān)閉流,并輸出

_

Close

描述

參數(shù)

方法

打印一個字符串,然后結(jié)束行

String

println

打印一個對象,然后結(jié)束行

Object

println

打印一個長整數(shù),然后結(jié)束行

long

println

打印一個整數(shù),然后結(jié)束行

int

println

打印一個浮點數(shù),然后結(jié)束行

float

println

打印一個雙精度浮點數(shù),然后結(jié)束行

double

println

打印一個字符數(shù)組,然后結(jié)束行

char[]

println

打印一個字符,然后結(jié)束行

char

prinfln

打印一個布爾值,然后結(jié)束行

boolean

println

通過寫一個行分隔符來結(jié)束當(dāng)前行

_

println

打印一個字符串

String

print

3.6.3 Out對象的使用示例

用out對象輸出多種不同類型的數(shù)據(jù),包括輸出中文

文件out.jsp

3.7 其他對象

pageContext對象

pageContext對象是javax.servlet.jsp.PageContext類的一個實例.pageContext對象提供了存取所有關(guān)于JSP程序執(zhí)行時所需要用到的屬性和方法,如session,application,config,out等對象屬性.對于pageContext對象,它的范圍是page.

page對象

page對象是java.lang.Object類型的,它是處理當(dāng)前請求的JSP頁的實現(xiàn)類的實例.page對象在頁的正文中可以被看作"this"的同義詞.page對象的范圍是page.

config對象

config對象是javax.servlet.ServletConfig類型的.它提供存取servlet class初始參數(shù)及有關(guān)Server環(huán)境信息的ServletContext對象.config對象的范圍是page.

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JSP的9個內(nèi)置對象
JSP內(nèi)置對象詳解
j2ee四大作用域pagecontext,request,session,ServletContext
【小技巧】一個判斷session是否過期的小技巧
JSP九大內(nèi)置對象及四個作用域
JSP隱藏對象
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服