在Servlet中,我通过web.xml的init param标签发送初始化数据。为什么我需要覆盖init方法来读取参数,我可以通过getServletConfig().getInitParameter("someName")
方法中的doGet
检索值!
此外,与config相同,我可以使用以下方法访问初始化参数:request.getServletContext().getInitParameter("xyz");
为什么我需要覆盖init方法,并确保设置超类配置对象等等?
答案 0 :(得分:0)
我认为它可以用于init资源或字段servlet,因为servlet init只在servlet加载和卸载时引起(这种情况很少发生)。它在代码中添加了一些与值参数相关的独立性,如果你只重写一次init-method你的init servlet,而不是每当有人向你的servlet发送请求时都不这样做,你就可以在代码中更改你的参数。
答案 1 :(得分:0)
您覆盖的init方法不是用于设置init参数,这是通过调用init方法的超类中的方法init(ServletConfig config)完成的,并由容器调用 -
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}
调用超类的init方法也没有意义,因为它是空的 -
public void init() throws ServletException {
}
如果您想在第一次请求之前执行其他一些代码,则可以覆盖init方法。例如 - 创建数据库连接,设置一些日志记录详细信息等。如果这不适用于您的代码,您可以忽略它。