jsp四大作用域區別

2021-10-24 08:44:59 字數 2121 閱讀 3433

所謂"作用域"就是"資訊共享的範圍",也就是說乙個資訊能夠在多大的範圍內有效。名稱

作用域在所有應用程式中有效,即只要這個**執行著,這個作用域就有效,這個指的程式的執行過程

session

在當前會話中有效,即從瀏覽器訪問伺服器開始,這個指的是使用者的乙個訪問過程,即這次會話的開始到結束

request

在當前請求中有效,負責多個servlet之間的資訊共享,即將資訊放入到request中,在整個請求階段都是有效的,即使用者訪問的這個階段都可以獲取到這個資料

page

在當前頁面有效,即在乙個jsp頁面上是有效的。

方法作用

object getattribute(string name)

void setattribute(string name, object value)

session作用域指同一瀏覽器對伺服器進行多次訪問,在這多次訪問之間傳遞資訊,就是session作用域的體現。session是通過httpsession介面實現的,它提供的主要方法如下所示。

方法作用

從session中獲取資訊。

向session中儲存資訊。

獲取當前請求所在的session的物件。

session的開始時刻比較容易判斷,它從瀏覽器發出第乙個http請求即可認為會話開始。但結束時刻就不好判斷了,因為瀏覽器關閉時並不會通知伺服器,所以只能通過如下這種方法判斷:如果一定的時間內客戶端沒有反應,則認為會話結束。tomcat的預設值為120分鐘,但這個值也可以通過httpsession的setmaxinactiveinterval(int interval)方法來設定,如果想主動讓會話結束,例如使用者單擊"登出"按鈕的時候,可以使用 httpsession 的 invalidate()方法,用於強制結束當前session。

乙個http請求的處理可能需要多個servlet合作,而這幾個servlet之間可以通過某種方式傳遞資訊,但這個資訊在請求結束後就無效了。

servlet之間的資訊共享是通過httpservletrequest介面的兩個方法來實現的。

方法作用

void setattribute(string name, object value)

將物件value以name為名稱儲存到request作用域中。

object getattribute(string name)

從request作用域中取得指定名字的資訊。

jsp中的doget()、dopost()方法的第乙個引數就是httpservletrequest物件,使用這個物件的 setattribute()方法即可傳遞資訊。

那麼在設定好資訊之後,要通過何種方式將資訊傳給其他的servlet呢?這就要用到requestdispatcher介面的forward()方法,通過它將請求**給其他servlet。

requestdispatcher servletcontext.getrequestdispatcher(string

path):取得dispatcher以便**。path為**的目的servlet。

void requestdispatcher.forward(servletrequest request,

servletresponse response):將request和response**。

因此,只需要在當前servlet中先通過setattribute()方法設定相應的屬性,然後使用forward()方法進行跳轉,最後在跳轉到的servlet中通過使用getattribute()方法即可實現資訊傳遞。

4. page作用域

page物件的作用範圍僅限於使用者請求的當前頁面,對於page物件的引用將在響應返回給客戶端之後被釋放,或者在請求被**到其他地方後被釋放。對page物件的引用通常儲存在pagecontext物件中。

JSP四大作用域

1.page裡的變數 只要頁面跳轉了,它們就不見了。如果把變數放到pagecontext裡,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裡。從把變數放到pagecontext開始,到jsp頁面結束,你都可以使用這個變數。2 request裡的變數可以跨越forward前後的兩頁。但是只...

jsp四大作用域

session作用域 如果把變數放到session裡,就說明它的作用域是session,它的有效範圍是當前會話。所謂當前會話,就是指從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。object httpsession.getattribute string name 從session中獲取資...

JSP四大作用域

1 servletcontext域物件 代表整個web應用的物件 生命週期 在web應用被載入之後立即建立servletcontext物件,伺服器關閉或者web應用被移出容器時將會銷毀servletcontext物件。作用範圍 整個web應用。主要功能 在整個web應用範圍內實現資源的共享。2 se...