2.6.2 config对象

2.6.2 config对象

config对象代表当前JSP配置信息,但JSP页面通常无须配置,因此也就不存在配置信息,所以JSP页面比较少用该对象。但在Servlet中则用处相对较大,因为Servlet需要在web.xml文件中进行配置,可以指定配置参数。关于Servlet的使用将在2.7节介绍。

configTest.jsp

看如下JSP页面代码,该JSP代码使用了config的一个方法getServletName()

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>测试config内置对象</title>
<meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<!-- 直接输出config的getServletName的值 -->
<%=config.getServletName()%>
</body>
</html>

上面的代码:

1
<%=config.getServletName()%>

输出了configgetServletName()方法的返回值,所有的JSP页面都有相同的名字:jsp,所以粗体字代码输出为jsp
实际上,也可以在web.xml文件中配置JSP(只是比较少用),这样就可以为JSP页面指定配置信息,并可为JSP页面另外设置一个URL
config对象是ServletConfig的实例,该接口用于获取配置参数的方法是getInitParameter(String paranName)。下面的代码示范了如何在页面中使用config获取JSP配置参数

configTest2.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html>
<html>
<head>
<title>测试config内置对象</title>
</head>
<body>
<!-- 输出该JSP名为name的配置参数 -->
name配置参数的值:<%=config.getInitParameter("name")%><br/>
<!-- 输出该JSP名为age的配置参数 -->
age配置参数的值:<%=config.getInitParameter("age")%>
</body>
</html>

上面的代码中两行粗体字代码输出了configgetlnitParameter()方法返回值,它们分别获取nameage两个配置参数的值。
配置JSP也是在web.xml文件中进行的,JSP被当成Servlet配置,为Servlet配置参数使用init-param元素,该元素可以接受param-nameparam-value两个子元素,分别指定参数名和参数值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<servlet>
<!-- 指定Servlet名字 -->
<servlet-name>config</servlet-name>
<!-- 指定将哪个JSP页面配置成Servlet -->
<jsp-file>/configTest2.jsp</jsp-file>
<!-- 配置名为name的参数,值为川普 -->
<init-param>
<param-name>name</param-name>
<param-value>川普</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 URL-->
<servlet-name>config</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>

上面的配置片段中该Servlet(其实是JSP)配置了两个参数:mameage
上面的配置片段把configTest2.jsp页面配置成名为configServlet,并将该Servlet映射到/config处,这就允许通过/config来访问该页面。在浏览器中访间/config看到如图2.19所示的界面。

从图2.19中可以看出,通过config可以访问到web.xm文件中的配置参数。实际上,也可以直接访问configTest2.jsp页面,在浏览器中访问该页面将看到如图2.20所示的界面。

对比图2.19和2.20不难看出,如果希望JSP页面可以获取web.xml配置文件中的配置信息,则必须通过为该JSP配置的路径来访问该页面,因为只有这样访问JSP页面才会让配置参数起作用