在servlet容器初始化servlet時,servlet容器将servletconfig傳給servlet的init方法。servletconfig封裝可以通過@webservlet或者部署描述符傳給一個servlet的配置資訊。以這種方式傳遞的每一條資訊都稱作初始參數。初始參數有兩個組成部分:鍵和值。
為了從一個servlet内部擷取某個初始參數的值,應該在由servlet容器傳給servlet的init方法的servletconfig中調用getinitparameter方法。getinitparameter方法的簽名如下:
此外,getinitparameternames方法則是傳回所有初始參數名稱的一個enumeration:
例如,要擷取contactname參數值,利用這個:
除了getinitparameter和getinitparameternames之外,servletconfig還提供了另一個很有用的方法:getservletcontext。可以利用這個方法從servlet内部擷取servletcontext。關于這個對象的讨論,參見1.7節。
舉個servletconfig的例子。在app01a中添加一個servletconfigdemoservlet,這個新的servlet如代碼清單1-2所示。
如代碼清單1-2所示,在@webservlet的initparams屬性中給servlet傳遞了兩個參數(admin和email):
可以利用下面這個url調用servletconfigdemoservlet:
其結果應該如圖1-4所示。
還可以在部署描述符中傳遞初始參數。利用部署描述符來完成這項工作,比用@webservlet更容易些,因為部署描述符是一個文本檔案,不需要重新編譯servlet類就可以進行編輯。
關于部署描述符的讨論,可檢視1.11節,以及16.2節。