自 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 {
}
但我不明白的是将初始化参数保存在与 servlet 相同的类中的用例。据我了解,这些参数应与类分开并放入部署描述符中。
在 @WebServlet
注释中指定初始化参数有哪些用例?
最佳答案
注释用于给出默认值。
在 JavaEE 中,部署属性也可以使用注释来提供。给定注解值后,部署描述符(即 web.xml)仍可用于覆盖注解提供的默认值。
在上面的示例中,可以通过在 web.xml
中配置具有匹配名称的 servlet
来覆盖 init-param
:
<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>
关于java - @WebInitParam 的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064518/