天天看点

《Servlet、JSP和Spring MVC初学指南》——1.6 ServletConfig

本节书摘来自异步社区《servlet、jsp和spring mvc初学指南》一书中的第1章,第1.6节,作者:【加】budi kurniawan(克尼亚万) , 【美】paul deck著,更多章节内容可以访问云栖社区“异步社区”公众号查看

当servlet容器初始化servlet时,servlet容器会给servlet的init方法传入一个servletconfig。servletconfig封装可以通过@webservlet或者部署描述符传给servlet的配置信息。这样传入的每一条信息就叫一个初始参数。一个初始参数有key和value两个元件。

为了从servlet内部获取到初始参数的值,要在servlet容器传给servlet的init方法的servletconfig中调用getinitparameter方法。getinitparameter的方法签名如下:

<code>java.lang.string getinitparameter(java.lang.string name)</code>

此外,getinitparameternames方法则是返回所有初始参数名称的一个enumeration:

<code>java.util.enumeration&lt;java.lang.string&gt; getinitparameternames()</code>

例如,为了获取contactname参数值,要使用下面的方法签名:

<code>string contactname = servletconfig.getinitparameter("contactname");</code>

除getinitparameter和getinitparameternames外,servletconfig还提供了另一个很有用的方法:getservletcontext。利用这个方法可以从servlet内部获取servletcontext。关于这个对象的深入探讨,请查阅本章1.7节。

下面举一个servletconfig的范例,在app01a中添加一个名为servletconfigdemoservlet的servlet。这个新的servlet如清单1.7所示。

清单1.2 servletconfigdemoservlet类

如清单1.2所示,在@webservlet的initparams属性中,给servlet传入了两个初始参数(admin和email):

利用下面这个url,可以调用servletconfigdemoservlet:

<code>http://localhost:8080/app01a/servletconfigdemo</code>

其结果类似于图1.4。

《Servlet、JSP和Spring MVC初学指南》——1.6 ServletConfig

图1.4 servletconfigdemoservlet效果展示

另一种方法是,在部署描述符中传入初始参数。在这里使用部署描述符,比使用@webservlet更容易,因为部署描述符是一个文本文件,不需要重新编译servlet类,就可以对它进行编辑。

部署描述符将在本章后续“使用部署描述符”小节以及第13章中详细讲解。