国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

jsp中的九大隱含對象和EL中的隱含對象

2019-11-06 07:16:54
字體:
來源:轉載
供稿:網友

jsp隱含對象是JSP容器為每個頁面提供的java對象,開發者可以直接使用它們而不用顯式聲明。JSP隱含對象也被稱為預定義變量。

JSP所支持的九大隱含對象:

對象描述
requestHttpServletRequest類的實例
responseHttpServletResponse類的實例
outPRintWriter類的實例,用于把結果輸出至網頁上
sessionHttpSession類的實例
applicationServletContext類的實例,與應用上下午有關
configServletConfig類的實例
pageContextPageContext類的實例,提供對JSP頁面所有對象以及命名空間的訪問
page類似于Java類中的this關鍵字
Exception

Exception類的對象,代表發生錯誤的JSP頁面中對應的異常對象

request對象

request對象是javax.servlet.http.HttpServletRequest 類的實例。每當客戶端請求一個JSP頁面時,JSP引擎就會制造一個新的request對象來代表這個請求。

request對象提供了一系列方法來獲取HTTP頭信息,cookies,HTTP方法等等。

response對象

response對象是javax.servlet.http.HttpServletResponse類的實例。當服務器創建request對象時會同時創建用于響應這個客戶端的response對象。

response對象也定義了處理HTTP頭模塊的接口。通過這個對象,開發者們可以添加新的cookies,時間戳,HTTP狀態碼等等。

out對象

out對象是 javax.servlet.jsp.JspWriter 類的實例,用來在response對象中寫入內容。

最初的JspWriter類對象根據頁面是否有緩存來進行不同的實例化操作。可以在page指令中使用buffered='false'屬性來輕松關閉緩存。

JspWriter類包含了大部分java.io.PrintWriter類中的方法。不過,JspWriter新增了一些專為處理緩存而設計的方法。還有就是,JspWriter類會拋出IOExceptions異常,而PrintWriter不會。

下表列出了我們將會用來輸出boolean,char,int,double,Srtring,object等類型數據的重要方法:

方法描述
out.print(dataType dt)輸出Type類型的值
out.println(dataType dt)輸出Type類型的值然后換行
out.flush()刷新輸出流

session對象

session對象是 javax.servlet.http.HttpSession 類的實例。和Java Servlets中的session對象有一樣的行為。

session對象用來跟蹤在各個客戶端請求間的會話。

application對象

application對象直接包裝了servlet的ServletContext類的對象,是javax.servlet.ServletContext 類的實例。

這個對象在JSP頁面的整個生命周期中都代表著這個JSP頁面。這個對象在JSP頁面初始化時被創建,隨著jspDestroy()方法的調用而被移除。

通過向application中添加屬性,則所有組成您web應用的JSP文件都能訪問到這些屬性。

config對象

config對象是 javax.servlet.ServletConfig 類的實例,直接包裝了servlet的ServletConfig類的對象。

這個對象允許開發者訪問Servlet或者JSP引擎的初始化參數,比如文件路徑等。

以下是config對象的使用方法,不是很重要,所以不常用:

config.getServletName();

它返回包含在<servlet-name>元素中的servlet名字,注意,<servlet-name>元素在 WEB-INF/web.xml 文件中定義。

pageContext 對象

pageContext對象是javax.servlet.jsp.PageContext 類的實例,用來代表整個JSP頁面。

這個對象主要用來訪問頁面信息,同時過濾掉大部分實現細節。

這個對象存儲了request對象和response對象的引用。application對象,config對象,session對象,out對象可以通過訪問這個對象的屬性來導出。

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

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

其中一個重要的方法就是removeArribute(),它可接受一個或兩個參數。比如,pageContext.removeArribute("attrName")移除四個scope中相關屬性,但是下面這種方法只移除特定scope中的相關屬性:

pageContext.removeAttribute("attrName", PAGE_SCOPE);

page 對象

這個對象就是頁面實例的引用。它可以被看做是整個JSP頁面的代表。

page 對象就是this對象的同義詞。

exception 對象

exception 對象包裝了從先前頁面中拋出的異常信息。它通常被用來產生對出錯條件的適當響應。

JSP的Scope作用域

【1】page范圍代表當前jsp頁面(默認值)【2】request范圍只能過轉發才能獲取屬性,代表同一個對象【3】session范圍可以通過轉發或者重定向獲取屬性,代表一次會話(即瀏覽器打開到瀏覽器關閉)【4】application范圍可以通過轉發或者重定向獲取屬性,代表一個用戶(瀏覽器重啟也可獲取屬性)綜上:范圍從小到大:page < request < session < application

JSP EL隱含對象

JSP EL支持下表列出的隱含對象:

隱含對象描述
pageScopepage 作用域
requestScoperequest 作用域
sessionScopesession 作用域
applicationScopeapplication 作用域
paramRequest 對象的參數,字符串
paramValuesRequest對象的參數,字符串集合
headerHTTP 信息頭,字符串
headerValuesHTTP 信息頭,字符串集合
initParam上下文初始化參數
cookieCookie值
pageContext當前頁面的pageContext

您可以在表達式中使用這些對象,就像使用變量一樣。接下來會給出幾個例子來更好的理解這個概念。


pageContext對象

pageContext對象是JSP中pageContext對象的引用。通過pageContext對象,您可以訪問request對象。比如,訪問request對象傳入的查詢字符串,就像這樣:

${pageContext.request.queryString}

Scope對象

pageScope,requestScope,sessionScope,applicationScope變量用來訪問存儲在各個作用域層次的變量。

舉例來說,如果您需要顯式訪問在applicationScope層的box變量,可以這樣來訪問:applicationScope.box。


param和paramValues對象

param和paramValues對象用來訪問參數值,通過使用request.getParameter方法和request.getParameterValues方法。

舉例來說,訪問一個名為order的參數,可以這樣使用表達式:${param.order},或者${param["order"]}。

接下來的例子表明了如何訪問request中的username參數:

<%@ pageimport="java.io.*,java.util.*"%><%    String title ="accessing Request Param";%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align="center"><p>${param["username"]}</p></div></body></html>

param對象返回單一的字符串,而paramValues對象則返回一個字符串數組。


header和headerValues對象

header和headerValues對象用來訪問信息頭,通過使用 request.getHeader方法和request.getHeaders方法。

舉例來說,要訪問一個名為user-agent的信息頭,可以這樣使用表達式:${header.user-agent},或者${header["user-agent"]}。

接下來的例子表明了如何訪問user-agent信息頭:

<%@ pageimport="java.io.*,java.util.*"%><%    String title ="User Agent Example";%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align="center"><p>${header["user-agent"]}</p></div></body></html>

運行結果如下:

jsp-expression-language

header對象返回單一值,而headerValues則返回一個字符串數組。


上一篇:JSP內置對象session

下一篇:jsp基礎語法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威海市| 奇台县| 宜黄县| 榆中县| 顺平县| 赤水市| 阳谷县| 霸州市| 枣阳市| 龙岩市| 鲁甸县| 两当县| 大连市| 沙坪坝区| 始兴县| 麻栗坡县| 永济市| 佛山市| 连南| 巴马| 那坡县| 新余市| 邢台县| 晴隆县| 界首市| 黔西| 锡林郭勒盟| 巴彦淖尔市| 桦川县| 延安市| 五寨县| 唐海县| 锦州市| 久治县| 同德县| 凤台县| 桂东县| 北票市| 明溪县| 屏南县| 株洲县|