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頁面才會讓配置檔案起作用。