九大內置對象:
內置對象(又叫隱含對象),就是在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取值。