官术网_书友最值得收藏!

6.7 其他內(nèi)置對(duì)象

視頻講解:光盤(pán)\TM\lx\6\07其他內(nèi)置對(duì)象.mp4

除了上面介紹的內(nèi)置對(duì)象外,JSP還提供了pageContext、config、page和exception對(duì)象。下面對(duì)這些對(duì)象分別進(jìn)行介紹。

6.7.1 獲取會(huì)話范圍的pageContext對(duì)象

獲取頁(yè)面上下文的pageContext對(duì)象是一個(gè)比較特殊的對(duì)象,通過(guò)它可以獲取JSP頁(yè)面的request、response、session、application、exception等對(duì)象。pageContext對(duì)象的創(chuàng)建和初始化都是由容器來(lái)完成的,JSP頁(yè)面中可以直接使用pageContext對(duì)象。pageContext對(duì)象的常用方法如表6.4所示。

表6.4 pageContext對(duì)象的常用方法

說(shuō)明

pageContext對(duì)象在實(shí)際JSP開(kāi)發(fā)過(guò)程中很少使用,因?yàn)閞equest和response等對(duì)象均為內(nèi)置對(duì)象,如果通過(guò)pageContext來(lái)調(diào)用這些對(duì)象比較麻煩,都可以直接調(diào)用其相關(guān)方法實(shí)現(xiàn)具體的功能。

6.7.2 讀取web.xml配置信息的config對(duì)象

config對(duì)象主要用于取得服務(wù)器的配置信息。通過(guò)pageContext對(duì)象的getServletConfig()方法可以獲取一個(gè)config對(duì)象。當(dāng)一個(gè)Servlet初始化時(shí),容器把某些信息通過(guò)config對(duì)象傳遞給這個(gè)Servlet。開(kāi)發(fā)者可以在web.xml文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁(yè)面提供初始化參數(shù)。config對(duì)象的常用方法如表6.5所示。

表6.5 config對(duì)象的常用方法

6.7.3 應(yīng)答或請(qǐng)求的page對(duì)象

page對(duì)象代表JSP本身,只有在JSP頁(yè)面內(nèi)才是合法的。page對(duì)象本質(zhì)上是包含當(dāng)前Servlet接口引用的變量,可以看作是this關(guān)鍵字的別名。page對(duì)象的常用方法如表6.6所示。

表6.6 page對(duì)象的常用方法

【例6.24】創(chuàng)建index.jsp文件,在該文件中調(diào)用page對(duì)象的各方法,并顯示返回結(jié)果。(實(shí)例位置:光盤(pán)\TM\sl\6\8)

關(guān)鍵代碼如下:

        <%@page language="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
        <html>
        <head>
        <meta http-equiv="Content-Type"content="text/html;charset=UTF-8">
        <title>page對(duì)象各方法的應(yīng)用</title>
        </head>
        <body>
        <%! Object object;  //聲明一個(gè)Object型的變量        %>
        <ul>
        <li>getClass()方法的返回值:<%=page.getClass()%></li>
        <li>hashCode()方法的返回值:<%=page.hashCode()%></li>
        <li>toString()方法的返回值:<%=page.toString()%></li>
        <li>與Object對(duì)象比較的返回值:<%=page.equals(object)%></li>
        <li>與this對(duì)象比較的返回值:<%=page.equals(this)%></li>
        </ul>
        </body>
        </html>

運(yùn)行本實(shí)例,將顯示如圖6.13所示的效果。

圖6.13 在頁(yè)面中顯示page對(duì)象各方法的返回值

6.7.4 獲取異常信息的exception對(duì)象

exception對(duì)象用來(lái)處理JSP文件執(zhí)行時(shí)發(fā)生的所有錯(cuò)誤和異常,只有在page指令中設(shè)置isErrorPage屬性值為true的頁(yè)面中才可以被使用,在一般的JSP頁(yè)面中使用該對(duì)象將無(wú)法編譯JSP文件。exception對(duì)象幾乎定義了所有異常情況,在Java程序中,可以使用try...catch關(guān)鍵字來(lái)處理異常情況,如果在JSP頁(yè)面中出現(xiàn)沒(méi)有捕捉到的異常,就會(huì)生成exception對(duì)象,并把exception對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁(yè)面中,然后在錯(cuò)誤頁(yè)面中處理相應(yīng)的exception對(duì)象。exception對(duì)象的常用方法如表6.7所示。

表6.7 exception對(duì)象的常用方法

【例6.25】使用exception對(duì)象獲取異常信息。(實(shí)例位置:光盤(pán)\TM\sl\6\9)

(1)創(chuàng)建index.jsp文件,在該文件中,首先在page指令中指定errorPage屬性值為error.jsp,即指定顯示異常信息的頁(yè)面,然后定義保存單價(jià)的request范圍內(nèi)的變量,并賦值為非數(shù)值型,最后獲取該變量并轉(zhuǎn)換為float型。index.jsp文件的具體代碼如下:

        <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" errorPage="error.jsp"%>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
        <title>使用exception對(duì)象獲取異常信息</title>
        </head>
        <body>
        <%
        request.setAttribute("price", "12.5元");                                 //保存單價(jià)到request范圍內(nèi)的變量price中
        float price=Float.parseFloat(request.getAttribute("price").toString()); //獲取單價(jià),并轉(zhuǎn)換為float型
        %>
        </body>
        </html>

說(shuō)明

當(dāng)頁(yè)面運(yùn)行時(shí),上面的代碼將拋出異常,因?yàn)榉菙?shù)值型的字符串不能轉(zhuǎn)換為float型。

(2)編寫(xiě)error.jsp文件,將該頁(yè)面的page指令的isErrorPage屬性值設(shè)置為true,并且輸出異常信息。具體代碼如下:

        <%@ page language="java" contentType="text/html; charset= UTF-8"
            pageEncoding="UTF-8" isErrorPage="true"%>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
        <title>錯(cuò)誤提示頁(yè)</title>
        </head>
        <body>
        錯(cuò)誤提示為:<%=exception.getMessage() %>
        </body>
        </html>

運(yùn)行本實(shí)例,將顯示如圖6.14所示的效果。

圖6.14 顯示錯(cuò)誤提示信息

主站蜘蛛池模板: 岳阳市| 沅陵县| 酒泉市| 淮安市| 清水县| 金门县| 西吉县| 城市| 尼玛县| 呼图壁县| 巨野县| 新龙县| 边坝县| 衡阳市| 宜良县| 龙州县| 苍梧县| 武鸣县| 祁阳县| 大埔县| 利津县| 湘乡市| 商城县| 济阳县| 容城县| 汉源县| 云霄县| 神池县| 辰溪县| 甘德县| 贡觉县| 闽清县| 崇阳县| 吉木乃县| 长丰县| 堆龙德庆县| 德格县| 石河子市| 山东省| 巨野县| 舞阳县|