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()%>
- </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>
-
- name配置参数的值:<%=config.getInitParameter("name")%><br/>
-
- age配置参数的值:<%=config.getInitParameter("age")%>
- </body>
- </html>
前面提到的配置JSP页面其实也是在web.xml文件中的进行,JSP被当成Servlet配置,为Servlet配置参数使用init-param元素,该元素可以接受param-name和param-value分别指定参数名和参数值。
在web.xml文件中增加一下代码即可将JSP页面配置在web应用中:
- <servlet>
-
- <servlet-name>config</servlet-name>
-
- <jsp-file>/configTest2.jsp</jsp-file>
-
- <init-param>
- <param-name>name</param-name>
- <param-value>yeeku</param-value>
- </init-param>
-
- <init-param>
- <param-name>age</param-name>
- <param-value>30</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
-
- <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来访问该页面。