当我们定义一个Servlet时,我们可以通过Java注释来实现。例如:
@WebServlet
我们也可以定义初始化参数:
@WebInitParam(name="name", value="value")
一个初始化参数背后的概念是提供一种可通过位置是不同的运行时配置参数,其中解决方案已部署。例如,在一个系统上,初始化参数可能有:
name="passwordFile", value="/etc/mypasswords.txt"
而不同的系统上,我们可能有:
name="passwordFile", value="/tmp/test_passwords.txt"
我们不想硬编码这些值在我们的应用程序中,而是提供了一个可以在运行时被覆盖的默认值。
当我们构建动态Web应用程序以在Java EE上部署时,我们可以通过代码中的注释专门定义servlet,这是当前的首选样式。但是,在注释之前,通过名为web.xml的XML文件来定义动态Web项目(包括其servlet)的特征。在这个文件中,可以提供一大组配置参数,包括servlet和一个servlet的初始化参数。
看来web.xml技术仍然适用于我们,可以与Java注释结合使用。这意味着我们可以通过注释声明我们的Servlet和初始化参数,同时创建一个web.xml文件。如果通过注释找到值并且没有相应的web.xml值,则将使用该注释。但是,如果注释和web.xml定义都存在,那么web.xml定义将是实际使用的定义。由于web.xml是一个“暴露的”配置文件,所以在部署时,我们可以编辑web.xml以为我们希望覆盖的任何内容(包括初始化参数)设置所需的值。