天天看點

《Servlet和JSP學習指南》一1.6 ServletConfig

在servlet容器初始化servlet時,servlet容器将servletconfig傳給servlet的init方法。servletconfig封裝可以通過@webservlet或者部署描述符傳給一個servlet的配置資訊。以這種方式傳遞的每一條資訊都稱作初始參數。初始參數有兩個組成部分:鍵和值。

為了從一個servlet内部擷取某個初始參數的值,應該在由servlet容器傳給servlet的init方法的servletconfig中調用getinitparameter方法。getinitparameter方法的簽名如下:

《Servlet和JSP學習指南》一1.6 ServletConfig

此外,getinitparameternames方法則是傳回所有初始參數名稱的一個enumeration:

《Servlet和JSP學習指南》一1.6 ServletConfig

例如,要擷取contactname參數值,利用這個:

《Servlet和JSP學習指南》一1.6 ServletConfig

除了getinitparameter和getinitparameternames之外,servletconfig還提供了另一個很有用的方法:getservletcontext。可以利用這個方法從servlet内部擷取servletcontext。關于這個對象的讨論,參見1.7節。

舉個servletconfig的例子。在app01a中添加一個servletconfigdemoservlet,這個新的servlet如代碼清單1-2所示。

《Servlet和JSP學習指南》一1.6 ServletConfig
《Servlet和JSP學習指南》一1.6 ServletConfig
《Servlet和JSP學習指南》一1.6 ServletConfig

如代碼清單1-2所示,在@webservlet的initparams屬性中給servlet傳遞了兩個參數(admin和email):

《Servlet和JSP學習指南》一1.6 ServletConfig

可以利用下面這個url調用servletconfigdemoservlet:

其結果應該如圖1-4所示。

《Servlet和JSP學習指南》一1.6 ServletConfig

還可以在部署描述符中傳遞初始參數。利用部署描述符來完成這項工作,比用@webservlet更容易些,因為部署描述符是一個文本檔案,不需要重新編譯servlet類就可以進行編輯。

關于部署描述符的讨論,可檢視1.11節,以及16.2節。