日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP的隐含对象/隐藏对象/内置对象介绍

發布時間:2023/12/3 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP的隐含对象/隐藏对象/内置对象介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • out
    • JspWriter 和 PrintWriter 的區別
  • request
  • response
  • session
  • application
  • exception
  • config
  • pageContext
    • pageContext 的作用
      • 綁訂數據
      • 獲得其它幾個隱含對象
  • page
  • 四個 JSP 域對象
    • 訪問范圍比較

out

out 對象是 javax.servlet.jsp.JspWriter 類的實例,用來在 response 對象中寫入內容。
最初的 JspWriter 類對象根據頁面是否有緩存來進行不同的實例化操作。可以在 page 指令中使用 buffered='false' 屬性來輕松關閉緩存。
JspWriter 類包含了大部分 java.io.PrintWriter 類中的方法。不過,JspWriter 新增了一些專為處理緩存而設計的方法。還有就是,JspWriter 類會拋出 IOExceptions 異常,而 PrintWriter 不會。

功能:out 對象是一個字符輸出流對象,用于將數據寫入到 Response 對象中。

JspWriter 和 PrintWriter 的區別

PrintWriter 對象中的數據會先于 JspWriter 對象中的數據輸出到 Response 對象中,無論 response.getWriter() 的代碼是在前面還是在后面,服務器都會先將 PrintWriter 對象中的數據,寫入到 Response 對象中,最后才會將 JspWriter 對象中的數據寫入到 Response 對象中。

request

request 對象是 javax.servlet.http.HttpServletRequest 類的實例。每當客戶端請求服務端時,Web 容器就會創建一個新的 request 對象來代表這個請求,即 request 對象會封裝請求消息數據。

生命周期:服務器接收到請求時,服務器就會自動創建一個 request 對象來封裝請求消息的數據;當請求處理完畢即服務器把響應數據包發送給客戶端后,request 對象會被容器銷毀。

response

response對象是 javax.servlet.http.HttpServletResponse 類的實例。當服務器創建request對象時會同時創建用于響應這個客戶端的response對象。response對象用于把取得的數據返回到客戶端。
response對象也定義了處理HTTP頭模塊的接口。通過這個對象,開發者們可以添加新的cookies,時間戳,HTTP狀態碼等。

生命周期:Request 對象創建后,容器就會自動創建對應的 Response 對象,當服務器將響應數據發送給客戶端后,Request 對象和 Response 對象一起被銷毀。

session

session 對象是 javax.servlet.http.HttpSession 類的實例。和 Java Servlets 中的 session 對象有一樣的行為。session 對象用來跟蹤各個客戶端的訪問會話。

生命周期:

application

是 javax.servlet.ServletContext 類的實例。一個 web 應用中只有一個 ServletContext,整個應用內部所有組件都能訪問。

ServletContext 的實例還可以讀取初始化參數值。

生命周期:
web 服務器在啟動時,會為每一個已經部署的應用創建唯一的一個 ServletContext 實例,除非服務器關閉或者應用被刪除,否則 ServletContext 實例對象一直存在。

另說:當某個應用的首個請求到達服務器的時候,服務器才啟動該應用,并為其創建一個 ServletContext 對象。

exception

exception對象是Throwable的實例,當一個頁面設置了<%@page isErrorPage=“true”%>,則可以在該頁面當中,使用該隱含對象讀取錯誤信息。

config

config 對象是 javax.servlet.ServletConfig 類的實例,它包含了當前 JSP/Servlet 所在的 WEB 應用的配置信息。
通常開發者會通過這個對象訪問 Servlet 或者 JSP 引擎的初始化參數,比如文件路徑等。

生命周期:web 服務器在啟動時,會為每一個已經部署的應用創建唯一的一個 ServletConfig 實例,除非服務器關閉或者應用被刪除,否則一直存在。

pageContext

pageContext 對象是 javax.servlet.jsp.PageContext 類的實例,用來代表整個 jsp 頁面。這個對象主要用來訪問頁面信息,同時過濾掉大部分實現細節。服務器會為每一個 JSP 實例(指的是 JSP 對應的那個 Servlet 類的實例對象,該實例對象可以使用變量 page 引用)創建唯一的一個 PageContext 實例。只有 JSP 實例才能訪問 pageContext 對象。

pageContext 對象也包含了傳給 jsp 頁面的指令信息,包括緩存信息,ErrorPage URL,頁面 scope 等。

PageContext 類定義了一些字段,包括 PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。它也提供了40 余種方法,有一半繼承自 javax.servlet.jsp.JspContext 類。

生命周期:隨著 JSP 實例的創建而創建,隨著 JSP 實例的銷毀而銷毀。

pageContext 的作用

作用主要有兩個。

綁訂數據

讀寫屬性值和移除屬性。

setAttribute()
getAttribute()
removeArribute():它可接受一個或兩個參數。

pageContext.removeArribute("attrName"); // 移除四個scope中相關屬性 pageContext.removeAttribute("attrName", PAGE_SCOPE); // 這種方法只移除特定scope中的相關屬性

獲得其它幾個隱含對象

即在獲得了 pageContext 實例后,可以通過該實例,獲得其它 8 個隱含對象。

page

表示 JSP 實例本身,實際就是 JSP 對應的那個 Servlet 類的實例對象,在 service 方法中有這樣的代碼 Object page = this

生命周期:

在 web.xml 文件中的 <servlet> 標簽下通過 <load-on-startup> 標簽配置自然數值可以在服務器啟動時創建 Servlet 實例,值越小優先級越高,服務器會按從小到大的順序創建 Servlet 實例。負數則表示第一次訪問 Servlet 時創建實例,默認值是 -1。

服務器會根據一定算法查找沒有使用的 Servlet 實例,并將其銷毀,當然服務器關閉或者應用刪除了,Servlet 實例也會被銷毀。

四個 JSP 域對象

pageContext
只有對應的 JSP 實例自己可以訪問,生命周期從對應的 JSP 實例的創建到 JSP 對象的消亡。JSP 實例創建,容器會自動創建相關聯的 PageContex 對象,JSP 實例消亡,相關聯的 PageContex 對象也會被銷毀。

request
一次請求能訪問,生命周期在一起請求和響應期間。

session
一次會話期間能訪問,多次請求和響應期間都存在。

ServletContext
整個應用內部所有組件都能訪問,除非服務器關閉,否則一直存在。

訪問范圍比較

pageContext < request < session < application

總結

以上是生活随笔為你收集整理的JSP的隐含对象/隐藏对象/内置对象介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。