目錄
- 1、分類
- 2、page
- 3、request
- 4、session
- 5、application
1、分類
對于jsp:useBean創建的物件,由jsp:useBean的可選屬性scope指定,可以存盤于4個不同的位置:
- page(默認)
- request
- session
- application
使用
scope時,系統首先檢查指定的位置是否存在指定名稱的 bean,當系統找不到現有的 bean 時,才會創建新的 bean ,
2、page
<jsp:useBean scope="page"/>
-
page為scope默認取值,即省略scope屬性時對應的范圍,在處理當前請求期間,除了要將 bean 物件系結到區域變數外,還將它放在pageContext物件中,servlet 可以通過呼叫預定義變數pageContext的getAttribute方法訪問它, -
由于每個頁面和每個請求都有不同的
pageContext物件,所以scope="page"(或省略scope)表示不共享 bean,也就是針對每個請求都創建新的 bean,
3、request
<jsp:useBean scope="request"/>
- 在處理當前請求期間,除了要將bean物件系結到區域變數外,還將它放在
HttpServletRequest物件中,從而可以通過getAttribute方法訪問它, - 在使用
jsp:include、jsp:forward或者RequestDispatcher的include或forward方法時,兩個JSP頁面,或JSP頁面和 servlet 將會共享request物件,屬于requestScope的JavaBean物件也將伴隨著request物件送出,被第二個JSP頁面接收,因此,所有通過這兩個操作指令連接在一起的JSP頁面都可以共享一個request物件,共享這種型別的JavaBean物件,
4、session
<jsp:useBean scope="session"/>
- bean存盤到與當前請求關聯的
HttpSession物件中,可以使用getAttribute獲取存盤在HttpSession中的物件, - 使用
session作用域,在第一個JSP頁面中創建的JavaBean物件在這個用戶訪問的同一網站的所有的JSP頁面中都是可用的,而且這個JavaBean物件的狀態保持唯一性,如果用戶B與用戶A訪問同一個頁面,JSP容器同樣會為用戶B創建屬于用戶B的JavaBean物件,這些物件互不干涉,
5、application
<jsp:useBean scope="application"/>
- bean存盤在
ServletContext中(通過預定義application變數或通過呼叫getServletContext獲得), ServletContext由Web應用中多個servlet和JSP頁面所共享,ServletContext中的值可以用getAttribute方法獲取,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/356661.html
標籤:其他
