濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解

JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解

熱門標(biāo)簽:外呼系統(tǒng)使用方法 南通通訊外呼系統(tǒng)產(chǎn)品介紹 海外圖書館地圖標(biāo)注點(diǎn) 電話機(jī)器人需要使用網(wǎng)絡(luò)嗎 自繪地圖標(biāo)注數(shù)據(jù) 潤(rùn)滑油銷售電銷機(jī)器人 電銷機(jī)器人免培訓(xùn) 如何看懂地圖標(biāo)注點(diǎn) 給地圖標(biāo)注得傭金

JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解

一般對(duì)象需要實(shí)例化才可以調(diào)用,而JSP的內(nèi)置對(duì)象是不用實(shí)例化就可以直接調(diào)用的對(duì)象。

總共有9個(gè),對(duì)應(yīng)如下表:

序號(hào)

對(duì)象

類型

1

pageContext

javax.servlet.jsp.PageContext

2

request

javax.servlet.http.HttpServletRequest

3

response

javax.servlet.http.HttpServletResponse

4

session

javax.servlet.http.HttpSession

5

application

javax.servlet.ServletContext

6

config

javax.servlet.ServletConfig

7

out

javax.servlet.jsp.jspWriter

8

page

Java.lang.Object

9

exception

java.lang.Throwable

四種范圍介紹:在jsp頁(yè)面中的對(duì)象,包括用戶創(chuàng)建的對(duì)象(例如,javaBean對(duì)象)和JSP的隱含對(duì)象,都有一個(gè)范圍屬性。范圍定義了在什么時(shí)間內(nèi),在哪一個(gè)JSP頁(yè)面中可以訪問這些對(duì)象。例如,session對(duì)象在會(huì)話期間內(nèi),可以在多個(gè)頁(yè)面中被訪問。application對(duì)象在整個(gè)Web應(yīng)用程序的生命周期中都可以被訪問。

1,page范圍

具有page范圍的對(duì)象被綁定到j(luò)avax.servlet.jsp.PageContext對(duì)象中。在這個(gè)范圍內(nèi)的對(duì)象,只能在創(chuàng)建對(duì)象的頁(yè)面中訪問。 可以調(diào)用pageContext這個(gè)隱含對(duì)象的getAttribute()方法來訪問具有這種范圍類型的對(duì)象(pageContext對(duì)象還提供了訪問 其他范圍對(duì)象的getAttribute方法),pageContext對(duì)象本身也屬于page范圍。當(dāng)Servlet類的_jspService()方 法執(zhí)行完畢,屬于page范圍的對(duì)象的引用將被丟棄。page范圍內(nèi)的對(duì)象,在客戶端每次請(qǐng)求JSP頁(yè)面時(shí)創(chuàng)建,在頁(yè)面向客戶端發(fā)送回響應(yīng)或請(qǐng)求被轉(zhuǎn)發(fā) (forward)到其他的資源后被刪除。

例如:

body> 
  %pageContext.setAttribute("page", "這是pageContext測(cè)試"); %> 
  %=pageContext.getAttribute("page") %> 
  jsp:forward page="two.jsp">/jsp:forward> 
 /body> 

在two.jsp接收頁(yè)面的代碼是:

%=pageContext.getAttribute("page") %> 

運(yùn)行之后,結(jié)果顯示null,這證明了page的范圍只局限于當(dāng)前頁(yè)面,無論從服務(wù)端還是客戶端跳轉(zhuǎn),都不會(huì)傳遞數(shù)據(jù)到另一個(gè)界面。

2,request范圍

具有request范圍的對(duì)象被綁定到j(luò)avax.servlet.ServletRequest對(duì)象中,可以調(diào)用request這個(gè)隱含對(duì)象的 getAttribute()方法來訪問具有這種范圍類型的對(duì)象。在調(diào)用forward()方法轉(zhuǎn)向的頁(yè)面或者調(diào)用include()方法包含的頁(yè)面中, 都可以訪問這個(gè)范圍內(nèi)的對(duì)象。要注意的是,因?yàn)檎?qǐng)求對(duì)象對(duì)于每一個(gè)客戶請(qǐng)求都是不同的,所以對(duì)于每一個(gè)新的請(qǐng)求,都要重新創(chuàng)建和刪除這個(gè)范圍內(nèi)的對(duì)象。 即request在經(jīng)過服務(wù)器的跳轉(zhuǎn)后,甚至服務(wù)器的多次跳轉(zhuǎn),我們都可以獲取他設(shè)置的屬性值,但是客戶端跳轉(zhuǎn)就不可以獲取他的值了,舉例說明:

% request.setAttribute("name", "明明"); %> 
  jsp:forward page="two.jsp">/jsp:forward> 

在two.jsp接收頁(yè)面的代碼是:

%=request.getAttribute("name") %> 

運(yùn)行代碼之后,在two.jsp頁(yè)面獲取到了明明,這是服務(wù)端的跳轉(zhuǎn),那客戶端的跳轉(zhuǎn)呢?

將jsp:forward page="two.jsp">/jsp:forward>

去掉加入a href="two.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" >跳轉(zhuǎn)/a> 代碼,點(diǎn)擊跳轉(zhuǎn)后,獲取內(nèi)容為null。

3,session范圍

具有session范圍的對(duì)象被綁定到j(luò)avax.servlet.http.HttpSession對(duì)象中,可以調(diào)用session這個(gè)隱含對(duì)象的 getAttribute()方法來訪問具有這種范圍類型的對(duì)象。JSP容器為每一次會(huì)話,創(chuàng)建一個(gè)HttpSession對(duì)象,在會(huì)話期間,可以訪問 session范圍內(nèi)的對(duì)象。 即無論客戶端還是服務(wù)端跳轉(zhuǎn),都可以獲取他的數(shù)據(jù),只要瀏覽器不重啟,這也是我們實(shí)際開發(fā)中用到最多的。

舉例:

%session.setAttribute("name", "這是session測(cè)試"); %> 
  a href="two.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" >跳轉(zhuǎn)/a> 
%session.setAttribute("name", "這是session測(cè)試"); %> 
jsp:forward page="two.jsp">/jsp:forward> 

在two.jsp接收頁(yè)面的代碼是:

%=session.getAttribute("name") %> 

我們可以發(fā)現(xiàn),無論客戶端還是服務(wù)端跳轉(zhuǎn),設(shè)置的數(shù)據(jù)都可以在其他頁(yè)面接收。

4,application范圍

具有application范圍的對(duì)象被綁定到j(luò)avax.servlet.ServletContext中,可以調(diào)用application這個(gè)隱含對(duì) 象的getAttribute()方法來訪問具有這種范圍類型的對(duì)象。在Web應(yīng)用程序運(yùn)行期間,所有的頁(yè)面都可以訪問在這個(gè)范圍內(nèi)的對(duì)象。這個(gè)也就是說,只要設(shè)置了屬性,即使重新啟動(dòng)瀏覽器,都還可以獲取屬性值,除非重啟服務(wù)器。這一范圍不做舉例。

對(duì)上述四中屬性范圍,實(shí)際開發(fā)中遇到最多的是request和session。一般來說,只對(duì)于同一個(gè)功能的屬性的傳遞,使用request范圍屬性。那么對(duì)于session范圍來說,主要還是用于登陸上面。

上面四種屬性范圍,實(shí)際上四種屬性范圍都是通過pageContext設(shè)置的。在pageContext中,setAttribute()方式實(shí)際上被重載過:

1,public abstract void setAttribute(java.lang.String name, java.lang.Object value), 
2,public abstract void setAttribute(java.lang.String name,java.lang.Object value,int scope) 

第二種方法相比第一個(gè)方法多了一個(gè)參數(shù)(int scope),實(shí)際上這個(gè)參數(shù)就是指定屬性范圍的參數(shù)。

1,APPLICATION_SCOPE,2,PAGE_SCOPE,3,SESSION_SCOPE,4,REQUEST_SCOPE

也就是說,通過這個(gè)方法,我們可以設(shè)置四種屬性范圍,這也就是說,我們可以使用pageContext來完成上面四種屬性的范圍設(shè)定。

例如,我們用session時(shí)可以這樣寫:

%@page contentType="text/html; charset=utf-8"%> 
% 
pageContext.setAttribute("name","熊九天",PageContext.SESSION_SCOPE); 
%> 
a href="two.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" >跳轉(zhuǎn)/a> 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

您可能感興趣的文章:
  • jsp內(nèi)置對(duì)象
  • 淺談jsp九大內(nèi)置對(duì)象及四個(gè)作用域
  • jsp的九大內(nèi)置對(duì)象深入講解

標(biāo)簽:貸款邀約 廣州 內(nèi)江 黃石 樂山 大連 南京 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解》,本文關(guān)鍵詞  JSP,中,九大,內(nèi)置,對(duì)象,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    安多县| 汨罗市| 体育| 台湾省| 大同县| 车险| 合阳县| 四会市| 红桥区| 共和县| 鄢陵县| 宁夏| 吴川市| 文昌市| 通辽市| 那坡县| 深水埗区| 通山县| 南木林县| 松溪县| 武宣县| 平顺县| 无锡市| 宜丰县| 安平县| 女性| 广元市| 平度市| 中阳县| 万全县| 芦山县| 望江县| 大化| 金乡县| 寿阳县| 怀集县| 察雅县| 新野县| 神农架林区| 翼城县| 满洲里市|