1. 程式人生 > >(六)jsp9大內建物件和4個作用域

(六)jsp9大內建物件和4個作用域

jsp9個隱含物件

這裡寫圖片描述

  1. request:此物件封裝了由WEB瀏覽器或其它客戶端盛情的HTTP請求物件,例如最常用的在form表單填寫的資訊,最常用的方法:
    • request.getParameter(String name)讀取表單引數值
    • request.getRequestURI讀取請求路徑(從專案名開始)
    • request.setCharacterEncoding(“utf-8”)設定以什麼編碼格式來解碼
    • request.setAttribute(String arg0,Object arg1)繫結資料到request
    • request.getAttribute(String arg0),獲得繫結資料
    • request.getRequestDispatcher(arg0).forward(request,response)客戶端的請求轉發到其它元件來處理
    • request.getCookies獲取所有cookie物件
    • request.getSession獲得和請求相關的會話
  2. response:此物件封裝了對到客戶端的響應,也就是說可以通過response物件來組織傳送到客戶端的資料。常用方法: - response.setContentType(“text/html;charset=utf-8”);設定響應資源的型別和編碼格式
    • response.getWriter();獲得輸出流
    • response.addCookie新增一個cookie物件
    • response.sendRedirect()重定向到另一個頁面
  3. out:out物件是一個輸出流,用來向瀏覽器輸出資訊,除了輸出各種資訊還負責對緩衝區進行管理。
    • out.flush()重新整理緩衝區,立即呼叫PrintWriter輸出
    • out.write()只能輸出基本型別,不能輸出物件,並且如果輸出null,會報NullPointerException
    • out.print()可以輸出物件
    • out.close()關閉輸出流。
      對於使用out輸出和使用reponse.getWriter()輸出的區別,現在還不太明白,以後在研究。還請大家多指教。
  4. session,它在第一個jsp被裝載時自動建立,完成會話期管理。在當前會話中有效,新會話中無效。
    當一個客戶開啟瀏覽器並連線到伺服器開始到客戶關閉瀏覽器離開這個伺服器結束(或者超時),被成為一個會話。
    當一個客戶訪問一個伺服器時,可能會在這個伺服器幾個頁面之間切換,伺服器應當通過某種方法知道這是同一個客戶,就需要建立session物件。
    http是無狀態的協議,就需要藉助session來儲存使用者每次的登入資訊。如果不需要在請求之間跟蹤會話物件,可以通過page指令中指定session=”false”;session物件建立在cookie的基礎之上,所以使用時應注意判斷一下客戶端是否已經打開了cookie;常用方法:
    • session.setAttribute();設定指定名字的屬性值
    • session.getAttribute()獲取指定名字的屬性
    • session.getId()獲取會話識別符號,判斷是不是同一個客戶
    • session.removeAttribute()刪除指定名字的屬性。
    • session.invalidate()銷燬session物件
    • session.getServletContext()獲得application物件
  5. application:代表當前應用程式。存在於容器的記憶體空間中。web應用一旦啟動便會自動生成一個application物件。如果應用沒有被關閉,此application物件便會一直存在,知道應用被關閉,application的宣告週期比session更長。在當前web中有效
    此物件主要負為多個使用者提供一些全域性資訊,比如統計當前的線上人數等。主要方法:
    • setAttribute()設定應用物件中指定名字的屬性值
    • getAttribute()獲取應用物件中指定名字的屬性值
    • getInitParameter()讀取應用物件中全域性初始化引數
    • getServletInfo()取得容器的版本和名稱
  6. pageContext:它是jsp頁面中所有功能的最大整合者。使用它可以訪問其它所有jsp內建物件。常用方法
    1. 獲取存取其它隱含物件的方法,此時需要指定範圍的引數。
      • setAttribute(String name, Object value, int scope)
      • getAttribute(String name, int scope)
      • removeAttribute(String name, int scope)
        範圍引數有4個,分別代表四種範圍:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
    2. 取得其它隱含物件
      • getException( )回傳目前網頁的異常,不過此網頁要為error page
      • getOut( )回傳目前網頁的輸出流,例如:out
      • getPage( )回傳目前網頁的Servlet 實體(instance),例如:page
      • getRequest( )回傳目前網頁的請求,例如:request
      • getResponse( )回傳目前網頁的響應,例如:response
      • getServletConfig( )回傳目前此網頁的ServletConfig 物件,例如:config
      • getServletContext( ) 回傳目前此網頁的執行環境(context),例如:application
      • getSession( )回傳和目前網頁有聯絡的會話(session),例如:session
  7. page:page物件有點類似java程式設計中的this,它指向了當前jsp頁面本身.基本不用
  8. config:表示當前jsp程式在web.xml的配置資訊,而一般專案中,jsp被用作模版技術,也就是表示層。而位於表示層的jsp檔案一般不需要配置資訊。所以此物件也很少用:方法有:
    • getServletContext返回所執行的Servlet的環境物件
      • getServletName返回所執行的Servlet的名字
    • getInitParameter返回指定名字的初始引數值
  9. exception:表示jsp引擎在執行程式碼時丟擲的異常,如果想要使用此物件,那麼需要在頁面指令中設定:<%@page isErrorPage=“true”%>

    4大作用域

    任何一個java物件都有其作用域範圍,jsp的內建物件也不例外,歸納起來共有四種範圍

    1. page作用域:page物件的作用範圍僅限於使用者請求的當前頁面,對於page物件的引用將在響應返回給客戶端之後被釋放掉,或者在請求被轉發到其它地方後被釋放。page裡的變數,只要頁面跳轉了,它們就不見了。如果把變數放到pageContext裡,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裡。
    2. request作用域:一個HTTP我請求可能需要多個Servlet合作,而這幾個Servlet可以通過某種方式傳遞資訊,這個資訊在請求結束之後就無效了。request裡的變數可以跨越forward前後的兩頁。但是隻要重新整理頁面,它們就重新計算了。如果把變數放到request裡,就說明它的作用是request,它的有效範圍是當前請求週期。所謂請求週期,就是從http請求發起,到伺服器處理結束,返回響應的整個過程。在這個過程中可以使用forward的方式轉發多個jsp頁面,在這些頁面你都可以使用這個變數
    3. session作用域:同一瀏覽器對伺服器進行多次訪問,在這多次訪問之間傳遞資訊,就是session作用域的體現。如果把變數放到session裡,就說明它的作用域是session,它的有效範圍是當前會話。所謂會話就是值從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。這個過程可能包括多個請求和響應。也就是說,只要使用者不關閉瀏覽器(session不超時),伺服器就有辦法知道這些請求是不是同一個人發起的,整個過程成為一個會話(session),而放到會話中的變數,就可以在當前會話中的所有請求裡使用。session的開始比較好判斷,它從瀏覽器傳送第一個HTTP請求開始。但結束時刻就不好判斷了,因為瀏覽器關閉時並不會通知伺服器,所以只能通過以下方法判斷:

      • 如果一定的時間內客戶端沒有反映,就認為會話結束,tomcat預設的時間為30分鐘,有需要自己可以設定自己的session超時時間。通過HttpSession的setMaxInactiveInterval()方法來設定來設定,也可以在配置檔案裡設定。
      • 如果主動讓會話結束,例如使用者點選”登出”的時候,可以使用HttpSession的invalidate()方法強制結束當前會話。
      • session作用域上的資訊傳遞時通過HttpSession實現的
    4. application作用域:如果把變數放到application裡,那麼它的作用就是application,它的有效範圍是整個應用。整個應用是指從應用啟動,到應用結合。我們沒有說”從伺服器啟動,到伺服器關閉”,是因為一個伺服器可能部署多個應用,當然你關閉了伺服器,就會把伺服器上的所有應用都關閉了。application裡的變數是存活時間最長的,如果不進行手工刪除,它們就會一直可以使用。application作用上的資訊傳遞時通過ServletContext實現的

    四個作用域的物件都可以用來在servlet和jsp之間傳遞資訊,可以根據自己的實際需要來決定把資訊繫結到哪個作用域上。四個作用域的有效範圍為:page’<’request’<’session’<’application

相關推薦

()jsp9大內物件4作用

jsp9個隱含物件 request:此物件封裝了由WEB瀏覽器或其它客戶端盛情的HTTP請求物件,例如最常用的在form表單填寫的資訊,最常用的方法: request.getParameter

JSP九大內物件作用

現在我們先來說一下四個作用域,以便描述各大物件都分屬於什麼作用域,下面我們就通過一張簡單的表格來看看各大作用域的資訊共享範圍:    第一個作用域是page,他只在當前頁面有效,也就是使用者請求的頁面有效,噹噹前頁面關閉或轉到其他頁面時,page物件將在響應回饋給客戶端後釋放

JSP(二):JSP九大內物件、四作用物件

jsp的九大內建物件:        內建物件:            jsp檔案在轉譯成其對應的Servlet檔案的時候自動生成

JSP九大內物件及四作用

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

20171013 JSP九大內物件及四作用

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

jsp頁面9中隱含物件4作用物件

JSP的隱含物件:不需要new,就可以直接使用的一組物件。tomcat自動建立,只能使用在表示式指令碼<%= %>和普通指令碼<% %>中。 1、request【重點】型別:javax.servlet.http.HttpServletRequest方法:request.getParam

JSP頁面中九物件作用

JSP中內建物件也叫隱含物件,就是不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用。 而這樣的內建物件在JSP中一共有九個以及四個作用域。 所謂“作用域”就是“資訊共享的範圍”,也就是說一個資訊能夠在多大的範圍內有效。4個JSP內建物件的作用域分別為:applicat

javaWeb學習日記_22:JSP的九大內物件動作

九個內建物件 out --> jsp的輸出流,用來向客戶端響應  page --> 當前jsp物件! 它的引用型別是Object,即真身中有如下程式碼:Object page = this;  config --> 它對應真身中的Ser

jsp 九大內物件作用詳解

   JSP中一共預先定義了9個這樣的物件,分別為:request、response、session、application、out、pagecontext、config、page、exception 1、request物件 request 物件是 javax.servlet.httpServletRequ

JSP九大內物件EL表示式中的隱含物件

雖然現在基本上使用SpringMVC+AJAX進行開發了Java Web了,但是還是很有必要了解一下JSP的九大內建物件的。像request、response、session這些物件,即便使用其他框架也是會經常用到的。因此十分有了解的必要。 這些物件可以在JSP

JSP之3大指令、9大內物件4物件、動作標籤

Jsp之3大指令、9大內建物件、4大域物件 工程結構: Jsp3大指令: 格式:<%@指令名 屬性名1=”屬性值1” 屬性名2=”屬性值2” %> page指令:主要是告訴jsp引擎如何解析jsp檔案 常用屬性: import 用來

JSP9大內物件

JSP共有以下9種基本內建元件 1、request物件  (HttpServletRequest) 客戶端請求,此請求會包含來自GET/POST請求的引數通過它才能了                   解到客戶的需求,然後做出響應。 2、response物件  (Http

jsp 九大內物件 四大作用的區別

  JSP中一共有九個內建的物件,分別是:request、response、session、application、out、pagecontext、config、page、exception 1.request   該物件代表了客戶端的請求資訊,主要用於接受通過HTTP協

JSP九大內置對象作用

直接 contex rep ges word 管理 緩沖區 狀態 開發者 現在我們先來說一下四個作用域,以便描述各大對象都分屬於什麽作用域,下面我們就通過一張簡單的表格來看看各大作用域的信息共享範圍: 第一個作用域是page,他只在當前頁面有效,也就是用戶請求的頁

JavaWeb(三)JSP之3指令、6動作、9內置對象4作用

不用 context 請求 判斷 自定義 except -c 一次 導航欄 前言   前面大概介紹了什麽是JSP,今天我給大家介紹一下JSP的三個指令、6個動作以及它的9大內置對象。接下來我們就直接進入正題 一、JSP的3個指令 JSP指令(directive)是為J

jsp九內置對象作用的個人理解

服務 應對 有效 bsp 一個用戶 返回 out ica page jsp中九大內置對象和四個作用域:(application,應用程序對象session,會話對象request,請求對象response,響應對象page,當前頁面對象pageContext,頁面上下文對象

servlet的三大作用物件jsp的九大內物件及其四大作用物件

  servlet的三大作用域物件: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomcat啟動時建立,tomcat關閉時銷燬,整個web的生命週期只有一個

JSP的三九四(三大指令、六大標籤、九大內物件、四大作用

JSP的基本構成:HTML檔案+Java片斷+JSP標籤 三大指令:page指令、include指令、taglib指令。 page指令: 1.language屬性:設定當前頁面中編寫JSP指令碼使用的語言,預設值為java。         &

JavaScript基礎函式詞法分析以及常用的內物件使用方法(4

day52 參考:https://www.cnblogs.com/liwenzhou/p/8004649.html 函式 函式定義 JavaScript中的函式和Python中的非常類似,只是定義方式有點區別。 function foo(a, b) { console.log("a:"

jsp九大內物件及常用方法詳細方法

• application: javax.servlet. ServletContext 的例項,該例項代表JSP 所屬的Web 應用本身,可用於JSP 頁面,或者Servlet 之間交換資訊。 常用的方法有: getAttribute(String attNarne