JSP 內置對象
JSP九種內置對象:
一 request對象:
該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息, 即使用該對象可以獲取用戶提交信息。 客戶端的請求參數都被封裝到這個對象裏面
二 response對象:
對客戶的請求做出動態的響應,向客戶端發送數據。
三 session對象
1.什麽是session:session對象是一個JSP內置對象,它在第一個JSP頁面被裝載時自動創建,完成會話期管理。
從一個客戶打開瀏覽器並連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間反復連接,反復刷新一個頁面,服務器應當通過某種辦法知道這是同一個客戶,這就需要session對象。
2.session對象的ID:當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎產生一個session對象,同時分配一個String類型的ID號,JSP引擎同時將這個ID號發送到客戶端,存放在Cookie中,這樣session對象和客戶之間就建立了一一對應的關系。當客戶再訪問連接該服務器的其他頁面時,不再分配給客戶新的session對象,直到客戶關閉瀏覽器後,服務器端該客戶的session對象才取消,並且和客戶的會話對應關系消失。當客戶重新打開瀏覽器再連接到該服務器時,服務器為該客戶再創建一個新的session對象。
四 aplication對象
1.什麽是application:
服務器啟動後就產生了這個application對象,當客戶在所訪問的網站的各個頁面之間瀏覽時,這個application對象都是同一個,直到服務器關閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共享這個內置的application對象。
2.application對象常用方法:
(1)public void setAttribute(String key,Object obj): 將參數Object指定的對象obj添加到application對象中,並為添加的對象指定一個索引關鍵字。
(2)public Object getAttribute(String key): 獲取application對象中含有關鍵字的對象。
五 out對象
out 對象是一個輸出流,用來向客戶端輸出數據。out對象用於各種數據的輸出。
六 page java.lang.Object
對應this關鍵字。JSP網頁本身
page對象是當前頁面轉換後的Servlet類的實例。從轉換後的Servlet類的代碼中,可以看到這種關系:
Object page = this;
在JSP頁面中,很少使用page對象。
七 config
javax.servlet. ServletConfig 的實例,該實例代表該JSP 的配置信息。常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。事實上, JSP 頁面通常無須配置,也就不存在配置信息。因此,該對象更多地在Servlet 中有效。
八 exception java.lang.Throwable 的實例
該實例代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時,該對象才可以使用。常用的方法有getMessageO和printStackTraceO等。
九 pageContext
javax.servlet.jsp.PageContext 的實例,對象直譯時可以稱作“頁面上下文”對象,代表的是當前頁面運行的一些屬性,通過此對象可以拿到其他8大對象,使用該對象可以訪問頁面中的共享數據。常用的方法有getServletContextO和getServletConfigO等。
//使用pageContext 設置屬性,該屬性默認在page 範圍內
pageContext. setAttribute ("page" , "hello") ;
//使用request 設置屬性,該屬性默認在request 範圍內
request. setAttribute ("request" , "hello");
//使用pageContext將屬性設置在request 範圍中
pageContext.setAttribute("request2" , "hello" , pageContext.REQUEST_SCOPE);
// 使用session將屬性設置在session 範圍中
session.setAttribute("session" , "hello"l;
//使用pageContext將屬性設置在session範圍中
pageContext.setAttribute("session2" , "hello" , pageContext.SESSION_SCOPE);
//使用application將屬性設置在application範圍中
application. setAttribute ("app" , "hello") ;
//使用pageContext 將屬性設置在application 範圍中
pageContext.setAttribute("app2" , "hello" , pageContext.APPL 工CATION_SCOPE) ;
四個作用域:request域 session域 application域 page域
application:
全局作用範圍,整個應用程序共享,就是在部署文件中的同一個webApp共享,生命周期為:應用程序啟動到停止。
session:
會話作用域,當用戶首次訪問時,產生一個新的會話,以後服務器就可以記住這個會話狀態。生命周期:會話超時,或者服務器端強制使會話失效。
request:
請求作用域,就是客戶端的一次請求。
page:
一個JSP頁面。
以上作用範圍使越來越小, request和page的生命周期都是短暫的,他們之間的區別就是:一個request可以包含多個page頁(include,forward以及filter)。
JSP 內置對象