@WebInitParam的用例

Rob*_*anu 16 java annotations servlets java-ee

从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 {

}
Run Code Online (Sandbox Code Playgroud)

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

@WebServlet注释中指定init参数有哪些用例?

Ram*_*PVK 17

注释用于提供默认值.

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


在上面的示例中,init-param可以通过在以下位置配置servlet匹配名称来覆盖web.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>
Run Code Online (Sandbox Code Playgroud)