1. 程式人生 > >jsp的九大隱式物件及其作用域

jsp的九大隱式物件及其作用域

  九大物件:

  內建物件(又叫隱含物件,有9個內建物件):不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用

  1-out:

  javax.servlet.jsp.JspWriter型別,代表輸出流的物件。作用域為page(頁面執行期)

  request:javax.servlet.ServletRequest的子型別,此物件封裝了由WEB瀏覽器或其它客戶端生成地HTTP

  請求的細節(引數,屬性,頭標和資料)。作用域為request(使用者請求期)。

  方法由可檢視API

  response:javax.servlet.ServletResponse的子型別,此物件封裝了返回到HTTP客戶端的輸出,向頁面作者提供設定響應頭標和狀態碼的方式。經常用來設定HTTP標題,新增cookie,設定響應內容的型別和狀態,傳送HTTP重定向和編碼URL。作用域為page(頁面執行期)。

  pageContext:javax.servlet.jsp.PageContext(抽象類)型別,作用域為page(頁面執行期)。此物件提供所有四個作用域層次的屬性查詢和修改能力,它也提供了轉發請求到其它資源和包含其他資源的方法:

  該物件的方法都是抽象方法

  session:javax.servlet.http.HttpSession型別,主要用於跟蹤對話。作用域session(會話期—)。

  HttpSession是一個類似雜湊表的與單一WEB瀏覽器會話相關的物件,它存在於HTTP請求之間,可以儲存任

  何型別的命名物件。

  如果不需要在請求之間跟蹤會話物件,可以通過在page指令中指定session="false"

  需要記住的是pageContext物件也可以與session.getAttribute(),session.setAttribute()一樣的方式取得並設定會話屬性。

  application:javax.servlet.ServletContext型別,servlet的環境通過呼叫getServletConfig

  ().getContext()方法獲得。作用域是application(整個程式執行期)。它提供了關於伺服器版本,應用級初始化引數和應用內資源絕對路徑,註冊資訊的方式

  config:javax.servlet.ServletConfig,作用域為page(頁面執行期)

  exception:java.lang.Throwable,通過JSP錯誤頁面中一個catch塊已經益出但沒有捕獲的

  java.lang.Throwable的任意例項,傳向了errorPage的URI。作用域為page(頁面執行期)。注意

  exception只有在page指令中具有屬性isErrorPage="true"時才有效。

  page:java.lang.Object型別,指向頁面自身的方式。作用域為page(頁面執行期

  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表單中填寫的資訊等,是最常用的物件常用的方法有:getParameter、getParameterNames 和getParameterValues 通過呼叫這幾個方法來獲取請求物件中所包含的引數的值。

  response 物件代表的是對客戶端的響應,也就是說可以通過response 物件來組織傳送到客戶端的資料。但是由於組織方式比較底層,所以不建議普通讀者使用,需要向客戶端傳送文字時直接使用

  pageContext 物件直譯時可以稱作“頁面上下文”物件,代表的是當前頁面執行的一些屬性

  常用的方法有 :findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope

  一般情況下pageContext物件用到得也不是很多,只有在專案所面臨的情況比較複雜的情況下,才會利用到頁面屬性來輔助處理。

  session    物件代表伺服器與客戶端所建立的會話,當需要在不同的JSP頁面中保留客戶資訊的情況下使用,比如線上購物、客戶軌跡跟蹤等。“session” 物件建立在cookie的基礎上,所以使用時應注意判斷一下客戶端是否打開了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。

  概要

  HTTP是無狀態(stateless)協議;

  Web Server 對每一個客戶端請求都沒有歷史記憶;

  Session用來儲存客戶端狀態資訊;

  由Web Server 寫入;

  存於客戶端;

  客戶端的每次訪問都把上次的session記錄傳遞給Web Server;

  Web Server讀取客戶端提交的session來獲取客戶端的狀態資訊

  application 物件負責提供應用程式在伺服器中執行時的一些全域性資訊,常用的方法有getMimeType和getRealPath等。

  out 物件代表了向客戶端傳送資料的物件,與“response” 物件不同,通過“out” 物件傳送的內容將是瀏覽器需要顯示的內容,是文字一級的,可以通過“out” 物件直接向客戶端寫一個由程式動態生成HTML檔案。常用的方法除了pirnt和println之外,還包括clear、clearBuffer、 flush、getBufferSize和getRemaining,這是因為“out” 物件內部包含了一個緩衝區,所以需要一些對緩衝區進行操作的方法

  “config” 物件提供一些配置資訊,常用的方法有getInitParameter和getInitParameterNames,以獲得Servlet初始化時的引數。

  “page” 物件代表了正在執行的由JSP檔案產生的類物件,不建議一般讀者使用。

  “exception” 物件則代表了JSP檔案執行時所產生的例外物件,此物件不能在一般JSP檔案中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP檔案中使用四個作用域:

  何為作用域

  先讓我們看看效果:

  大概流程是這樣的,我們訪問04-01/index.jsp的時候,分別對pageContext, request, session,

  application四個作用域中的變數進行累加。(當然先判斷這個變數是不是存在,如果變數不存在,則要把變數初始化成1。)計算完成後就從index.jsp執行forward跳轉到test.jsp。在test.jsp裡再進行一次累加,然後顯示出這四個整數來。

  從顯示的結果來看,我們可以直觀的得出結論:

  page裡的變數沒法從index.jsp傳遞到test.jsp。只要頁面跳轉了,它們就不見了。

  request裡的變數可以跨越forward前後的兩頁。但是隻要重新整理頁面,它們就重新計算了。

  session和application裡的變數一直在累加,開始還看不出區別,只要關閉瀏覽器,再次重啟瀏覽器訪問這頁,session裡的變數就重新計算了。

application裡的變數一直在累加,除非你重啟tomcat,否則它會一直變大。

  而作用域規定的是變數的有效期限。

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

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

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

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

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

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

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

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

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

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

  我們使用public Object getAttribute(String name)獲得變數值,使用public void setAttribute(String name, Object value)將變數值儲存到對應作用域中。舉個pageContext的例子就是:

  // page

  Integer countPage = (Integer) pageContext.getAttribute("countPage");

  if (countPage == null) {

  pageContext.setAttribute("countPage", 1);

  } else {

  pageContext.setAttribute("countPage", countPage + 1);

  }

  這裡先從pageContext中取出名為countPage的整數,因為返回的都是java.lang.Object型別,所以需要強制轉換成我們需要的整形。這裡取得的變數如果不存在就會返回null,通過判斷countPage == null來辨別變數是否存在,如果不存在就設定為1,如果存在就進行累加,最後使用setAttribute()方法將修改後的變數值放入pageContext。

  將其中的pageContext換成request, session, application就可以操作其他三個作用域中的變數。

相關推薦

jsp物件及其作用

  九大物件:   內建物件(又叫隱含物件,有9個內建物件):不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用   1-out:   javax.servlet.jsp.JspWriter型別,代表輸出流的物件。作用域為page(頁面執行期)   request:jav

Jsp語法和物件

一、什麼是JSP JSP全稱為Java Server Pages,它是一種用於開發動態web資源的技術。JSP允許在html頁面中巢狀java程式碼在,主要作用是為使用者提供動態資料。 二、JSP語法 JSP模板元素 jsp的模板元素就是指的是html,html為jsp頁

JSP基本功 pageContext物件page,request,session,application四個物件的使用及區別JSP執行原理和物件及下載檔案、訪問次數的程式碼總結出el表示式簡單

pageContext物件     pageContext物件是JSP技術中最重要的一個物件,它代表JSP頁面的執行環境,這個物件不僅封裝了對其它8大隱式物件的引用,它自身還是一個域物件,可以用來儲存資料。並且,這個物件還封裝了web開發中經常涉及到的一些常用操作,例如引入和跳轉其它資源、檢索其

關於jsp對象

學習 auto 什麽 應對 對象 沒有 onf write web 做項目了,發現自己有好多都還不懂,好久沒有寫隨筆了 , 關於自己最近學習的JavaWeb的jsp有九大隱式對象,這九大隱式對象分別對應著servlet中的對象 jsp隱式對象 servlet對

重新學javaweb----物件

JSP九大隱式物件:在翻譯過來的Servlet中Service方法自動幫我們前置定義的九個物件,可以在jsp頁面中直接使用 page(代指該jsp翻譯過去的那個servlet) confing(ServletConfig)

說一下表達語言(EL)的物件及其作用

答:EL的隱式物件包括:pageContext、initParam(訪問上下文引數)、param(訪問請求引數)、paramValues、header(訪問請求頭)、headerValues、cookie(訪問cookie)、applicationScope(訪問application作用域

JSP四大作用物件

JSP 會被編譯為一個Servlet類 ,執行的時候是一個Servlet例項。 1.四大作用域 1.pageContext 當前頁面    通過pageContext.setAttribute(key,value)的資料,只能在當前頁面訪問,在其他頁面就不能訪問了。

java中jsp對象及web四大

會銷 時間 同時 調用 宋體 clas 開始 類加載 相對路徑 JSP運行原理和九大隱式對象 每個JSP 頁面在第一次被訪問時,WEB容器都會把請求交給JSP引擎(即一個Java程序)去處理。JSP引擎先將JSP翻譯成一個_jspServlet(實質上也是一個servlet

javaweb基礎第十課:jsp的9物件

  這節課我們講jsp的九大隱式物件     重點是前五個,response物件用的都少,這節課主講out和request   jsp_teach02.jsp <%@ page contentType="text/html

jsp 內建物件和四大作用

一、ServletContext        1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。       2、作用範圍:整個Web應用

JSP_對象

null ati style 作用 使用 快捷 當前 move 一個 JSP九大隱式對象:在翻譯過來的Servlet中Service方法自動幫我們前置定義的九個對象,可以在jsp頁面中直接使用 page confing

四大物件和9物件

1.四大作用域:一.ServletContext(ServletContext類)①在jsp中為 application②生命週期:1.開始:web應用啟動時建立整個web中的ServletContext物件.2.死亡:伺服器關閉或Web應用被移除時,ServletCont

JSP隱藏物件及其作用

1.Session物件 前面在Servlet部分已經提到,過當客戶第一次訪問Web伺服器釋出目錄(一個Web伺服器有一個或多個"釋出目錄")下的網頁檔案時,Web伺服器會自動建立一個session物件,併為其分配唯一的ID號,客戶可以將其需要的一些資訊儲存到該session物件,以便需要時使用。sessio

Scala轉換和作用分析

1 Scala隱式轉換內幕 2 Scala作用域 3 Scala隱式轉換思考  /**  * 隱式轉換和作用域  */ class Implicits(x: Int) {   def printValue = {     val x = 100     println(x)

jsp、el表示式的物件 + 作用

jsp 隱式物件  config      jsp的配置資訊 page        jsp自身物件(this) exception   異常物件(isErrorPage=true) response

JSP物件、四大作用、常用物件方法

String getId() 獲取sessionid void setMaxInactiveInterval(int interval) 設定session的非活動時間 int getMaxInactiveInterval() 獲取session的有效非活動時間(以 秒為單位) void invalidat

(二)jsp大內建物件及其作用

jsp的九大內建物件及其作用 一、jsp的內建物件 jsp的內建物件無論是對:jsp的初學者、工作面試和java web開發來說,都必須熟悉的。 二、jsp有九大內建物件,它們是什麼?作用是什麼? 1、page。從jsp編寫提示【圖示】中簡易看出page是java.lang

JSP——隱含物件

1,page----Object 該物件用處甚少 2,config----ServletConfig String name = config.getInitParameter("name"); Enumeration<String> names = config.g

Jsp物件

什麼是隱式物件?在——jspService()方法中我們可以找到一些區域性變數,這些區域性變數就叫隱式物件。是JSP容器為每個頁面提供的Java物件,開發者可以直接使用它們而不用顯式宣告。JSP隱式物件也被稱為預定義變數。 JSP所支援的九大隱式物件: 物件

jsp 物件 七大動作 三大指令

JSP九大物件: 1、out 向客戶端輸出資料,位元組流,如:out.print(“data”); 2、request 接受客戶端的http請求。 3、response 響應客戶的請求,重定向客戶轉任意介面。 4、session 用於儲存使用者資訊,跟蹤使用者行為,當前開啟的瀏覽器內,多個頁