@WebInitParam用例

2022-09-03 06:09:23

由于 Servlet 3.0 规范,因此有可能将 servlet 映射元数据声明为 servlet 类上的注释:

@WebServlet(name="appInfoServlet", urlPatterns ="/appInfo", initParams = @WebInitParam(name="ocwd.deployer.email", value="admin@example.com"))
public class AppInfoServlet extends HttpServlet {

}

我不明白的是将 init 参数与 servlet 保持在同一类中的用例。据我所知,这些参数将与类分开,并放入部署描述符中。

在注释中指定初始化参数有哪些用例?@WebServlet


答案 1

批注用于提供默认值。

在 JavaEE 中,也可以使用注释来提供部署属性。给定注释的值,部署描述符(即 web.xml仍可用于覆盖注释提供的默认值。


在上面的示例中,可以通过在 中配置具有匹配名称的 来覆盖init-paramservletweb.xml

  <servlet>
    <servlet-name>appInfoServlet</servlet-name>
    <init-param>
        <param-name>ocwd.deployer.email</param-name>
        <param-value>noreply@example.com</param-value>
    </init-param>
  </servlet>

答案 2

我可以想到一个,从我的头顶:提供默认值(即由类设计师)。

如果此类的用户对默认值很好,则他不需要添加任何内容,只需使用它即可。如果他不是 - 他可以使用DD修改它。


推荐