jsp的config技术整理

来源:互联网 发布:广州赛意信息科技知乎 编辑:程序博客网 时间:2024/05/16 05:16

  config对象对应于javax.servlet.ServletConfig类,此类位于servlet-api.jar包中。

  web容器在初始化时使用一个ServletConfig(即config)对象向JSP页面传递信息,此配置信息包括初始化参数(在当前Web应用的应用部署描述文件web.xml中定义)以及表示Servlet或JSP页面所属Web应用的ServletContext对象。

  config对象的几个方法:

  (1)public String getParameter(String name);

  返回制定的名称name初始化参数的值,如果参数不存在则返回null。

  (2)public java.util.Enumeration getinitParameterNames();

  得到所有初始化参数名称的枚举。

  (3)public ServletContext getServletContext();

  返回Servlet或JSP页面所属的ServletContext的一个引用。

  (4)public String getServletName();

  返回Servlet实例或JSP页面的名称,此名称可以在Web应用部署描述文件中指定,对于一个未注册(也就是未命名)Servlet实例或JSP页面,将返回该Servlet类的类名。

 

一个config对象的教程

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

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

程序清单:codes/02/2.9/jspObject/configTest.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>测试config内置对象</TITLE>
</HEAD>
<BODY>
<!-- 直接输出config的getServletName的值 -->
<%=config.getServletName()%>
</BODY>
</HTML>

上面代码中粗体字代码输出了config的getServletName()方法的返回值,所有的JSP页面都有相同的名字:jsp,所以粗体字代码输出为jsp。

实际上,我们也可以在web.xml文件中配置JSP(只是比较少用),这样就可以为JSP页面指定配置信息,并可为JSP页面另外设置一个URL。

config对象是ServletConfig的实例,该接口用于获取配置参数的方法是getInitParameter(String paramName)。下面代码示范了如何在页面中使用config获取JSP配置参数。

程序清单:codes/02/2.9/jspObject/configTest2.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>测试config内置对象</TITLE>
</HEAD>
<BODY>
<!-- 输出该JSP名为name的配置参数 -->
name配置参数的值:<%=config.getInitParameter("name")%><br/>
<!-- 输出该JSP名为age的配置参数 -->
age配置参数的值:<%=config.getInitParameter("age")%>
</BODY>
</HTML>

上面代码中两行粗体字代码输出了config的getInitParameter()方法返回值,它们分别获取name、age两个配置参数的值。

配置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>

上面的配置文件片段中粗体字代码为该Servlet(其实是JSP)配置了2个参数:name和value。上面的配置片段把configTest2.jsp页面配置成名为config的Servlet,并将该Servlet映射到/config处,这就允许我们通过/config来访问该页面。在浏览器中访问/config看到如图2.20所示的界面。

 图2.20  输出JSP配置参数值

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

 图2.21  直接访问JSP页面将不能访问配置参数

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

 

原创粉丝点击