婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > JSP中九大內置對象和四種屬性范圍詳解

JSP中九大內置對象和四種屬性范圍詳解

熱門標簽:外呼系統使用方法 南通通訊外呼系統產品介紹 海外圖書館地圖標注點 電話機器人需要使用網絡嗎 自繪地圖標注數據 潤滑油銷售電銷機器人 電銷機器人免培訓 如何看懂地圖標注點 給地圖標注得傭金

JSP中九大內置對象和四種屬性范圍詳解

一般對象需要實例化才可以調用,而JSP的內置對象是不用實例化就可以直接調用的對象。

總共有9個,對應如下表:

序號

對象

類型

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頁面中的對象,包括用戶創建的對象(例如,javaBean對象)和JSP的隱含對象,都有一個范圍屬性。范圍定義了在什么時間內,在哪一個JSP頁面中可以訪問這些對象。例如,session對象在會話期間內,可以在多個頁面中被訪問。application對象在整個Web應用程序的生命周期中都可以被訪問。

1,page范圍

具有page范圍的對象被綁定到javax.servlet.jsp.PageContext對象中。在這個范圍內的對象,只能在創建對象的頁面中訪問。 可以調用pageContext這個隱含對象的getAttribute()方法來訪問具有這種范圍類型的對象(pageContext對象還提供了訪問 其他范圍對象的getAttribute方法),pageContext對象本身也屬于page范圍。當Servlet類的_jspService()方 法執行完畢,屬于page范圍的對象的引用將被丟棄。page范圍內的對象,在客戶端每次請求JSP頁面時創建,在頁面向客戶端發送回響應或請求被轉發 (forward)到其他的資源后被刪除。

例如:

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

在two.jsp接收頁面的代碼是:

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

運行之后,結果顯示null,這證明了page的范圍只局限于當前頁面,無論從服務端還是客戶端跳轉,都不會傳遞數據到另一個界面。

2,request范圍

具有request范圍的對象被綁定到javax.servlet.ServletRequest對象中,可以調用request這個隱含對象的 getAttribute()方法來訪問具有這種范圍類型的對象。在調用forward()方法轉向的頁面或者調用include()方法包含的頁面中, 都可以訪問這個范圍內的對象。要注意的是,因為請求對象對于每一個客戶請求都是不同的,所以對于每一個新的請求,都要重新創建和刪除這個范圍內的對象。 即request在經過服務器的跳轉后,甚至服務器的多次跳轉,我們都可以獲取他設置的屬性值,但是客戶端跳轉就不可以獲取他的值了,舉例說明:

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

在two.jsp接收頁面的代碼是:

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

運行代碼之后,在two.jsp頁面獲取到了明明,這是服務端的跳轉,那客戶端的跳轉呢?

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

去掉加入a href="two.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" >跳轉/a> 代碼,點擊跳轉后,獲取內容為null。

3,session范圍

具有session范圍的對象被綁定到javax.servlet.http.HttpSession對象中,可以調用session這個隱含對象的 getAttribute()方法來訪問具有這種范圍類型的對象。JSP容器為每一次會話,創建一個HttpSession對象,在會話期間,可以訪問 session范圍內的對象。 即無論客戶端還是服務端跳轉,都可以獲取他的數據,只要瀏覽器不重啟,這也是我們實際開發中用到最多的。

舉例:

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

在two.jsp接收頁面的代碼是:

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

我們可以發現,無論客戶端還是服務端跳轉,設置的數據都可以在其他頁面接收。

4,application范圍

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

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

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

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) 

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

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

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

例如,我們用session時可以這樣寫:

%@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" >跳轉/a> 

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

您可能感興趣的文章:
  • jsp內置對象
  • 淺談jsp九大內置對象及四個作用域
  • jsp的九大內置對象深入講解

標簽:貸款邀約 廣州 內江 黃石 樂山 大連 南京 銅川

巨人網絡通訊聲明:本文標題《JSP中九大內置對象和四種屬性范圍詳解》,本文關鍵詞  JSP,中,九大,內置,對象,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP中九大內置對象和四種屬性范圍詳解》相關的同類信息!
  • 本頁收集關于JSP中九大內置對象和四種屬性范圍詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 兴城市| 密山市| 横峰县| 秦安县| 永昌县| 谢通门县| 信宜市| 巴马| 黄骅市| 孟津县| 灌云县| 克拉玛依市| 哈尔滨市| 贵阳市| 壤塘县| 抚远县| 和政县| 宜丰县| 易门县| 浙江省| 咸宁市| 岐山县| 安龙县| 景宁| 定兴县| 漠河县| 绥宁县| 南汇区| 吉林市| 新巴尔虎左旗| 城口县| 延吉市| 石首市| 巴东县| 长子县| 盱眙县| 肃宁县| 万全县| 扬州市| 滕州市| 始兴县|