首頁 web前端 html教學 jsp四大作用域有什麼

jsp四大作用域有什麼

May 29, 2019 pm 05:00 PM
jsp

JSP內建物件作用域

jsp四大作用域有什麼

application:在所有應用程式中有效,即只要這個網站運作著,這個作用域就有效,這個指的程式的運行過程。

session:在目前會話中有效,也就是從瀏覽器存取伺服器開始,這個指的是使用者的一個存取過程,也就是這次會話的開始到結束

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

#page :在目前頁面有效,即在一個jsp頁面上是有效的。

首先要聲明一點,所謂"作用域"就是"資訊共享的範圍",也就是說一個資訊能夠在多大的範圍內有效。

Web互動的最基本單位為HTTP請求。每個使用者從進入網站到離開網站這段過程稱為一個HTTP會話,一個伺服器的運行過程中會有多個使用者訪問,就是多個HTTP會話。作用域解釋如下。

application:伺服器啟動到停止這段時間。

session:HTTP會話開始到結束這段時間。

request:HTTP請求開始到結束這段時間。

page:目前頁面從開啟到關閉這段時間。

1. application 作用域

application作用域就是伺服器啟動到關閉的整段時間,在這個作用域內設定的資訊可以被所有應用程式使用。 application作用域上的資訊傳遞是透過ServletContext實作的,它提供的主要方法如下所示:

Object getAttribute(String name):從application中取得資訊。

void setAttribute(String name, Object value):在application作用域中設定資訊。

2. session作用域

session作用域比較容易理解,同一瀏覽器對伺服器進行多次訪問,在這多次訪問之間傳遞訊息,就是session作用域的體現。 session是透過HttpSession介面實現的,它提供的主要方法如下所示。

Object HttpSession.getAttribute(String name):從session中取得資訊。

void HttpSession.setAttribute(String name, Object value):向session中儲存資訊。

HttpSession HttpServletRequest.getSession():取得目前請求所在的session的物件。

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

3. request作用域

一個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()方法即可實現訊息傳遞。

PHP的程式設計師可能不太懂這一段,因為PHP沒有轉送的概念,一個請求只能由一個PHP檔來處理,所以PHP根本沒有request作用域的概念。而Servlet則不同,請求可以在應用程式中任意轉發,所以用request作用域在不同Servlet之間傳遞訊息。

注意兩點:

轉送不是重定向,轉送是在Web應用程式內部進行的。 PHP支援重定向但沒有轉送。

轉發對瀏覽器是透明的,也就是說,無論在伺服器上如何轉發,瀏覽器網址列中顯示的仍然是最初那個Servlet的位址。重定向的瀏覽器位址是變化的。

4. page作用域

page物件的作用範圍僅限於使用者要求的目前頁面,對於page物件的參考將在回應傳回給客戶端之後被釋放,或在請求被轉發到其他地方後被釋放。對page物件的參考通常儲存在pageContext物件中。

以上介紹的作用範圍越來越小,request和page的生命週期都是短暫的,它們之間的區別:一個request可以包含多個page頁(include,forward及filter)。

以上是jsp四大作用域有什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

jsp是屬於前端還是後端 jsp是屬於前端還是後端 Jan 28, 2023 pm 06:23 PM

jsp屬於後端。 jsp的本質是一種servlet,而servlet又是伺服器端的java應用程序,所以jsp是屬於後端的技術。 JSP部署於網頁伺服器上,可回應客戶端所傳送的請求,並依照請求內容動態地產生HTML、XML或其他格式文件的Web網頁,然後傳回給請求者。 JSP技術以Java為腳本語言,為使用者HTTP請求提供服務,並能與伺服器上的其它Java程式共同處理複雜的業務需求。

jsp和html區別在哪 jsp和html區別在哪 Jan 09, 2024 am 10:46 AM

jsp和html區別:1、運作機制;2、用途;3、與Java的關係;4、功能;5、與後端的關係;6、速度;7、可維護性和擴展性;8、學習和使用的難易度;9、文件後綴和識別工具;10、社區和支持;11、安全性。詳細介紹:1、運行機制,HTML是一種標記語言,主要用於描述和定義網頁的內容,它運行在客戶端,由瀏覽器解釋執行,JSP是一種動態網頁技術,運行在伺服器端等等。

SpringBoot專案如何整合JSP SpringBoot專案如何整合JSP May 12, 2023 pm 07:40 PM

新建好springboot專案以後目錄如下:第一步:在專案的pom檔案中加入設定jsp所需的jar套件程式碼:org.apache.tomcat.embedtomcat-embed-jasperprovided第二步:在main路徑下新建目錄webapp ,在webapp下新建路徑WEB-INF,在WEB-INF下新建路徑jsp,在這個路徑下放置我們要使用的jsp檔案第三步:在主設定檔中設定jsp檔案的存取路徑和後綴程式碼:spring .mvc.view.prefix=/WEB-INF/jsp/sp

如何用jsp+mysql實現網頁的分頁查詢 如何用jsp+mysql實現網頁的分頁查詢 May 30, 2023 pm 03:58 PM

一、實作分頁查詢的核心sql語句(1)查詢資料庫的記錄總數的sql語句:selectcount(*)from+(表名);(2)每次查詢的記錄數的sql語句:其中:0是搜尋的索引,2是每次查找的條數。 select*from表名limit0,2;二、程式碼實作*上篇寫過這兩個類,DBconnection類:用於取得資料庫連接,Author物件類別。這兩個類別的程式碼點擊連接查看。點選連結查看DBconnection類別和Author物件類別(1)登入頁面:index.jsp。 Inserttitlehere用戶列

jsp分頁功能怎麼實現 jsp分頁功能怎麼實現 Mar 04, 2024 pm 04:40 PM

實現步驟:1、在JSP頁面中引入JSTL標籤庫;2、從資料庫取得資料;3、對資料進行分頁處理;4、在頁面中顯示分頁導覽條;5、根據目前頁碼和每頁顯示數量,從分頁後的資料中取得對應的資料並顯示在頁面上即可。

jsp是什麼格式的文件 jsp是什麼格式的文件 Jan 24, 2024 pm 04:01 PM

JSP是一種動態網頁技術標準,其檔案格式是在傳統的網頁HTML檔案(.htm,.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp )。

JSP能否被PHP取代? JSP能否被PHP取代? Mar 21, 2024 am 11:03 AM

JSP能否被PHP取代? JSP(JavaServerPages)和PHP(HypertextPreprocessor)都是常用的伺服器端腳本語言,用於動態產生網頁內容。雖然它們各有特色和優勢,但在實際應用中,是否可以完全取代對方?本文將分析兩者的優缺點,並透過具體的程式碼範例進行比較。首先,我們來看看JSP和PHP各自的特色。 JSP是一種基於Java的

PHP能否替換JSP的功能? PHP能否替換JSP的功能? Mar 20, 2024 pm 03:45 PM

PHP能否替換JSP的功能?隨著Web開發技術的不斷發展,開發人員經常面臨選擇合適的伺服器端語言來實現他們的專案需求。在這方面,PHP和JSP是兩種常見的選擇。 JSP是JavaServerPages的縮寫,它是基於Java的伺服器端技術,而PHP則是一種伺服器端腳本語言。本文將探討PHP是否能夠取代JSP的功能,並提供一些具體的程式碼範例來幫助讀者更好地

See all articles