自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單介紹JSP的對象和范圍屬性

開發(fā) 后端
本文介紹的是JSP的對象和范圍屬性,主要是指開發(fā)中的。希望本文對大家有幫助,一起來看。

JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。

JSP頁面中的對象,包括用戶創(chuàng)建的對象(例如,JavaBean對象)和JSP的隱含對象,都有一個范圍屬性。范圍定義了在什么時間內,在哪一個JSP頁面中可以訪問這些對象。例如,session對象在會話期間內,可以在多個頁面中被訪問。application對象在整個Web應用程序的生命周期中都可以被訪問。在JSP中,有4種范圍,如下所示。

一、page范圍

具有page范圍的對象被綁定到javax.servlet.jsp.PageContext對象中。在這個范圍內的對象,只能在創(chuàng)建對象的頁面中訪問??梢哉{用pageContext這個隱含對象的getAttribute()方法來訪問具有這種范圍類型的對象(pageContext對象還提供了訪問其他范圍對象的getAttribute方法),pageContext對象本身也屬于page范圍。

當Servlet類的_jspService()方法執(zhí)行完畢,屬于page范圍的對象的引用將被丟棄。page范圍內的對象,在客戶端每次請求JSP頁面時創(chuàng)建,在頁面向客戶端發(fā)送回響應或請求被轉發(fā)(forward)到其他的資源后被刪除。

二、request范圍

具有request范圍的對象被綁定到javax.servlet.ServletRequest對象中,可以調用request這個隱含對象的getAttribute()方法來訪問具有這種范圍類型的對象。在調用forward()方法轉向的頁面或者調用include()方法包含的頁面中,都可以訪問這個范圍內的對象。要注意的是,因為請求對象對于每一個客戶請求都是不同的,所以對于每一個新的請求,都要重新創(chuàng)建和刪除這個范圍內的對象。

三、session范圍

具有session范圍的對象被綁定到javax.servlet.http.HttpSession對象中,可以調用session這個隱含對象的getAttribute()方法來訪問具有這種范圍類型的對象。JSP容器為每一次會話,創(chuàng)建一個HttpSession對象,在會話期間,可以訪問session范圍內的對象。

四、application范圍

具有application范圍的對象被綁定到javax.servlet.ServletContext中,可以調用application這個隱含對象的getAttribute()方法來訪問具有這種范圍類型的對象。在Web應用程序運行期間,所有的頁面都可以訪問在這個范圍內的對象。

下面我們通過幾個簡單的例子,來看一下這4種范圍對象的應用。

1.測試page范圍

test1.jsp

  1. <%  
  2. pageContext.setAttribute("name","zhangsan");  
  3. out.println("test1.jsp: ");  
  4. out.println(pageContext.getAttribute("name"));  
  5. out.println("<p>");  
  6. pageContext.include("test2.jsp");  
  7. %> 

test2.jsp

  1. <%  
  2. out.println("test2.jsp: ");  
  3. out.println(pageContext.getAttribute("name"));  
  4. %> 

訪問test1.jsp,將看到如下的輸出:

test1.jsp: zhangsan

test2.jsp: null

說明保存在pageContext對象中的屬性具有page范圍,只能在同一個頁面中被訪問。

2.測試request范圍

修改test1.jsp和test2.jsp,如下所示。

test1.jsp

  1. <%  
  2. request.setAttribute("name","zhangsan");  
  3. out.println("test1.jsp: ");  
  4. out.println(request.getAttribute("name"));  
  5. out.println("<p>");  
  6. pageContext.include("test2.jsp");  
  7. %> 

test2.jsp

  1. <%  
  2. out.println("test2.jsp: ");  
  3. out.println(request.getAttribute("name"));  
  4. %> 

訪問test1.jsp,將看到如下的輸出:

test1.jsp: zhangsan

test2.jsp: zhangsan

說明保存在request對象中的屬性具有request范圍,在請求對象存活期間,可以訪問這個范圍內的對象。將

pageContext.include("test2.jsp");

這一句注釋起來,先訪問test1.jsp,再訪問test2.jsp,可以看到如下輸出:

test2.jsp: null

這是因為客戶端開始了一個新的請求。

3.測試session范圍

修改test1.jsp和test2.jsp,如下所示。

test1.jsp

  1. <%  
  2. session.setAttribute("name","zhangsan");  
  3. %> 

test2.jsp

  1. <%  
  2. out.println("test2.jsp: ");  
  3. out.println(session.getAttribute("name"));  
  4. %> 

先訪問test1.jsp,然后在同一個瀏覽器窗口中訪問test2.jsp,可以看到如下輸出:

test2.jsp: zhangsan
 
說明保存在session對象中的屬性具有session范圍,在會話期間,可以訪問這個范圍內的對象。

如果我們在訪問完test1.jsp后,關閉瀏覽器,重新打開瀏覽器窗口,訪問test2.jsp,將看到如下輸出:

test2.jsp: null

這是因為客戶端與服務器開始了一次新的會話。

4.測試application范圍

修改test1.jsp和test2.jsp,如下所示。

test1.jsp

  1. <%  
  2. application.setAttribute("name","zhangsan");  
  3. %> 

test2.jsp

  1. <%  
  2. out.println("test2.jsp: ");  
  3. out.println(application.getAttribute("name"));  
  4. %> 

先訪問test1.jsp,然后關閉瀏覽器,再打開瀏覽器窗口,訪問test2.jsp,可以看到如下輸出:

test2.jsp: zhangsan

說明保存在application對象中的屬性具有application范圍,在Web應用程序運行期間,都可以訪問這個范圍內的對象。

希望通過本文的介紹,能夠給大家?guī)韼椭?/p>

【編輯推薦】

  1. JSP頁面的五種跳轉方法
  2. jsp開發(fā)技術應用的29個注意事項
  3. JSP應用開發(fā)的背景及特點
  4. jsp速度優(yōu)化七種方法
  5. 詳細介紹JSP技術的兩種架構模型
責任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關推薦

2009-07-02 13:51:05

對象和范圍屬性

2009-06-30 13:38:37

SERVLET和JSP

2009-07-02 10:13:47

ASP和JSPJSP頁面

2009-07-02 12:56:01

JSP技術

2009-07-06 14:43:30

JSP元素

2009-07-03 16:21:43

2009-06-30 17:26:56

JSP頁面

2009-06-29 16:48:43

內置對象JSP

2009-07-01 11:08:14

JSP DestoryJSP Init數(shù)據(jù)庫鏈接

2009-09-09 09:36:25

Linq對象引用

2011-06-28 11:27:19

java克隆對象

2009-07-07 14:04:55

JSP入門

2009-12-24 16:46:42

ADO Connect

2009-07-07 11:38:54

jsp oracle

2009-07-29 15:07:23

Request對象的屬

2009-07-02 17:06:36

JSP中的PageEn

2009-07-03 11:21:43

Servlet和JSPJSP路徑

2009-09-02 09:44:01

JSP和JavaBea

2009-12-10 10:37:18

PHP獲取文件屬性

2009-07-03 16:55:33

JSP變量JSP規(guī)范
點贊
收藏

51CTO技術棧公眾號