jsp中的四個作用域,九個內建物件分別是什麼?
阿新 • • 發佈:2018-12-05
九大內建物件:
內建物件(又叫隱含物件),就是在jsp中,不需要建立(由伺服器<容器>來建立),可以直接使用的物件。
物件 | 含義 | 類 | 作用域 |
---|---|---|---|
request | 請求物件 | 型別 javax.servlet.ServletRequest | 作用域 Request |
response | 響應物件 | 型別 javax.servlet.ServletResponse | 作用域 page |
pageContext | 頁面上下文物件 | 型別 javax.servlet.jsp.PageContext | 作用域 page |
session | 會話物件 | 型別 javax.servlet.http.HttpSession | 作用域 Session |
application | 應用程式物件 | 型別 javax.servlet.ServletContext | 作用域 Application |
out | 輸出物件 | 型別 javax.servlet.jsp.JspWriter | 作用域 page |
config | 配置物件 | 型別 javax.servlet.ServletConfig | 作用域 page |
page | 頁面物件 | 型別 java.lang.Object | 作用域 page |
exception | 例外物件 | 型別 java.lang.Throwable | 作用域 page |
JSP九大內建物件分為四類:
- 輸入輸出物件:out物件、response物件、request物件
- 通訊控制物件:pageContext物件、session物件、application物件
- Servlet物件: page物件、config物件
- 錯誤處理物件:exception物件
* 九種物件簡介:
- out物件:用於向客戶端、瀏覽器輸出資料。
- request物件:封裝了來自客戶端、瀏覽器的各種資訊。
- response物件:封裝了伺服器的響應資訊
- exception物件:封裝了jsp程式執行過程中發生的異常和錯誤資訊。
- config物件:封裝了應用程式的配置資訊。
- page物件:指向了當前jsp程式本身。
- session物件:用來儲存會話資訊。也就是說,可以實現在同一使用者的不同請求之間共享數
- application物件:代表了當前應用程式的上下文。可以在不同的使用者之間共享資訊。
- pageContext物件:提供了對jsp頁面所有物件以及名稱空間的訪問。
四大作用域
下面我們就通過一張簡單的表格來看看各大作用域的資訊共享範圍:
作用域物件名 | 對應的介面名 | 物件名 | 作用範圍 |
---|---|---|---|
頁面域 | PageContext | pageContext | 一個頁面 |
請求域 | HttpServletRequest | request | 一個使用者的一次請求 |
會話域 | HttpSession | session | 一個使用者的所有請求 |
上下文域 | ServletContext | application | 所有使用者的所有請求 |
第一個作用域是page,他只在當前頁面有效,也就是使用者請求的頁面有效,噹噹前頁面關閉或轉到其他頁面時,page物件將在響應回饋給客戶端後釋放。
第二個作用域是request,他在當前請求中有效,request可以通過setAttribute()方法實現頁面中的資訊傳遞,也可以通過forward()方法進行頁面間的跳轉,需要注意的是request是轉發不是重定向,轉發相對於瀏覽器來說是透明的,也就是無論頁面如何跳轉,位址列上顯示的依舊是最初的地址。
第三個作用域是session,他在當前回話中有效。當一個臺電腦上的同一瀏覽器對伺服器進行多次訪問時,在這多次訪問之間傳遞的資訊就是session作用域的範圍。它從瀏覽器發出第一個HTTP請求即可認為會話開始,但是會話結束的時間是不確定的,因為在瀏覽器關閉時並不會通知伺服器,一般Tomcat設定的預設時間為120分鐘,也可以通過setMaxInactiveInterval(int)方法進行設定,或是通過invalidate()方法強制結束當前會話。
第四個作用域是application,他在所有的應用程式中都有效,也就是當伺服器開始到伺服器結束這段時間,application作用域中儲存的資料都是有效的,同樣可以通過setAttribute賦值和getAttribute取值。