config对象代表当前JSP配置信息, 但JSP页面通常无须配置,因此在JSP页面中比较少用,但是Servlet中则用处相对较大。
配置JSP也是在web.xml文件中,JSP被当成Servlet配置,Servlet的配置配置在init-param标签下,该标签下的param-name和param-value两个子标签分别表示配置项的名称的值。
例如如下的JSP配置,即Servlet配置信息:配置都放在servlet标签下,servlet-name标签下配置servlet名称为get_config,jsp-file标签配置servlet对应的页面是/jsp/get_config.jsp,即jsp目录下的get_config.jsp页面(注意文件名必须以/开头);两个init-param标签配置两个参数,一个参数名为name,值为Toby;一个参数名为age,值为32;servlet-mapping标签把名为get_config的servlet映射到url路径/get_config下,该路径下是相对于根url的路径。
<servlet>
<servlet-name>get_config</servlet-name>
<jsp-file>/jsp/get_config.jsp</jsp-file> <!-- 必须在/开头 -->
<init-param>
<param-name>name</param-name>
<param-value>Toby</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>32</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>get_config</servlet-name>
<url-pattern>/get_config</url-pattern>
</servlet-mapping>
get_config.jsp页面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>测试config内置对象</title>
</head>
<body>
Servlet名称: <%=config.getServletName() %><br />
name配置项值: <%=config.getInitParameter("name") %><br />
age配置项值: <%=config.getInitParameter("age") %><br />
</body>
</html>
在浏览器中访问/get_config,就可以看到/jsp/get_config.jsp页面的内容:
如果在浏览器中直接访问get_config.jsp页面,结果如下:
可见,如果希望JSP页面以获取web.xml配置文件中的配置信息,那么必须通过servlet-mapping标签配置的路径访问相应的JSP页面,这样才能让配置参数起作用,直接通过jsp文件访问得不到任何配置信息。