1. 程式人生 > >jsp中的四個作用域,九個內建物件分別是什麼?

jsp中的四個作用域,九個內建物件分別是什麼?

九大內建物件:

內建物件(又叫隱含物件),就是在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物件

* 九種物件簡介:

  1. out物件:用於向客戶端、瀏覽器輸出資料。
  2. request物件:封裝了來自客戶端、瀏覽器的各種資訊。
  3. response物件:封裝了伺服器的響應資訊
  4. exception物件:封裝了jsp程式執行過程中發生的異常和錯誤資訊。
  5. config物件:封裝了應用程式的配置資訊。
  6. page物件:指向了當前jsp程式本身。
  7. session物件:用來儲存會話資訊。也就是說,可以實現在同一使用者的不同請求之間共享數
  8. application物件:代表了當前應用程式的上下文。可以在不同的使用者之間共享資訊。
  9. 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取值。