1. 程式人生 > >jsp九大內置對象及四個作用域

jsp九大內置對象及四個作用域

request對象 指針 但是 實例 進行 名字空間 人的 變量 this

JSP九大對象:內置對象(又叫隱含對象,有9個內置對象):不需要預先聲明就可以在腳本代碼和表達式中隨意使用。

JSP中九大內置對象為:

    • request 請求對象  類型 javax.servlet.ServletRequest 作用域 Request
    • response 響應對象 類型 javax.servlet.SrvletResponse 作用域 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 頁面對象 類型 javax.lang.Object 作用域 Page
    • exception 例外對象 類型 javax.lang.Throwable 作用域 page

一、request對象:代表的是來自客戶端的請求,例如我們在FORM表單中填寫的信息等,是最常用的對象。客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然後做出響應。它是HttpServletRequest類的實例。作用域為request(用戶請求期)。

二、response對象:對象代表的是對客戶端的響應,也就是說可以通過response 對象來組織發送到客戶端的數據。但是由於組織方式比較底層,所以不建議普通讀者使用,需要向客戶端發送文字時直接使用。它是HttpServletResponse類的實例。作用域為page(頁面執行期)。

三、session對象:指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止。它是HttpSession類的實例。作用域session(會話期—)。

四、out對象 :out對象是JspWriter類的實例,是向客戶端輸出內容常用的對象 。作用域為page(頁面執行期)

五、page對象:page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例 。“page” 對象代表了正在運行的由JSP文件產生的類對象,不建議一般讀者使用。 作用域 page

六、application對象:實現了用戶間數據的共享,可存放全局變量。它開始於服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前後連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務器的啟動和關閉決定了application對象的生命。它是ServletContext類的實例。作用域application

七、pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當於頁面中所有功能的集大成者,它的本類名也叫pageContext。用域 Pageconfig對象

八、config對象:config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(通過屬性名和屬性值構成)以及服務器的有關信息(通過傳遞一個ServletContext對象)。作用域 Page

九、exception對象:是一個例外對象,當一個頁面在運行過程中發生了例外,就產生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的對象.作用域 page

作用域規定的是變量的有效期限

  如果把變量放到pageContext裏,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裏。

  從把變量放到pageContext開始,到jsp頁面結束,你都可以使用這個變量。

  如果把變量放到request裏,就說明它的作用域是request,它的有效範圍是當前請求周期。

  所謂請求周期,就是指從http請求發起,到服務器處理結束,返回響應的整個過程。在這個過程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面裏你都可以使用這個變量。

  如果把變量放到session裏,就說明它的作用域是session,它的有效範圍是當前會話。

  所謂當前會話,就是指從用戶打開瀏覽器開始,到用戶關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要用戶不關瀏覽器,服務器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變量,就可以在當前會話的所有請求裏使用。

  如果把變量放到application裏,就說明它的作用域是application,它的有效範圍是整個應用。

  整個應用是指從應用啟動,到應用結束。我們沒有說“從服務器啟動,到服務器關閉”,是因為一個服務器可能部署多個應用,當然你關閉了服務器,就會把上面所有的應用都關閉了。

  application作用域裏的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。

  與上述三個不同的是,application裏的變量可以被所有用戶共用。如果用戶甲的操作修改了application中的變量,用戶乙訪問時得到的是修改後的值。這在其他scope中都是不會發生的,page, request,session都是完全隔離的,無論如何修改都不會影響其他人的數據。

jsp九大內置對象及四個作用域