1. 程式人生 > >JSP指令碼的9個內建物件(二)——config物件

JSP指令碼的9個內建物件(二)——config物件

本文摘自:李剛 著 《輕量級 Java EE企業應用實戰 Struts2+Spring+hibernate整合開發》

        config 物件代表當前JSP 配置資訊,但JSP 頁面通常無須配置,因此也就不存在配置資訊。該物件在JSP 頁面中非常少用,但在Servlet 則用處相對較大。因為Servlet 需要配置在web.xml 檔案中,可以指定配置引數。

        看如下JSP 頁面程式碼,該JSP程式碼使用了config 的一個方法getServletName():

<%@ page language="java" contentType="text/html; charset=gb2132"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>測試config內建物件</title>
</head>
<body>
<!-- 直接輸出config的getServletName的值 -->
<%=config.getServletName()%>
</body>
</html>

        上面程式的第11行程式碼輸出了config的getServletName()的返回值,所有的JSP都有相同的名字:jsp,所以此行程式碼將輸出jsp。

        實際上,我們也可以在web.xml檔案中配置JSP,只是很少用,這樣就可以為JSP頁面指定配置資訊,並且為JSP頁面另外設定一個URL。

        config物件是ServletConfig的例項,該介面用於獲取配置資訊的方法是getInitParameter(String paramName)

        下面的程式說明了如何在頁面中使用config獲取JSP頁面的配置資訊:

<%@ page language="java" contentType="text/html; charset=gb2132"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>測試config內建物件</title>
</head>
<body>
<!-- 輸出該JSP中名為name的引數配置資訊 -->
name配置引數的值:<%=config.getInitParameter("name")%><br/>
<!-- 輸出該JSP中名為age的引數配置資訊 -->
age配置引數的值:<%=config.getInitParameter("age")%>
</body>
</html>

        前面提到的配置JSP頁面其實也是在web.xml檔案中的進行,JSP被當成Servlet配置為Servlet配置引數使用init-param元素,該元素可以接受param-name和param-value分別指定引數名和引數值。

        在web.xml檔案中增加一下程式碼即可將JSP頁面配置在web應用中:

<servlet>  
        <!--指定servlet的名字-->
        <servlet-name>config</servlet-name>  
        <!--指定哪一個JSP頁面配置成Servlet-->
        <jsp-file>/configTest2.jsp</jsp-file>
        <!--配置名為name的引數,值為yeeku-->
        <init-param>  
            <param-name>name</param-name>  
            <param-value>yeeku</param-value>  
        </init-param>  
        <!--配置名為age的引數,值為30-->
        <init-param>  
            <param-name>age</param-name>  
            <param-value>30</param-value>  
        </init-param>  
    </servlet>  
<servlet-mapping> 
        <!--指定將config Servlet配置到/config路徑--> 
        <servlet-name>config</servlet-name>  
        <url-pattern>/config</url-pattern>  
</servlet-mapping>  

        上面的配置檔案片段中的</init-param>為該Servlet(其實是JSP)配置了兩個引數:name和value。上面的配置片段將configTest2.jsp頁面配置成名為config的Servlet,並將該Servlet對映到/config處。這就允許我們使用/config來訪問該頁面。

大笑

大笑

        注意:如果希望JSP頁面可以獲取web.xml配置檔案中的配置資訊就必須通過為該JSP頁面在web.xml檔案中分配的路徑來訪問頁面,因為只有這樣訪問JSP頁面才會讓配置檔案起作用。