正如我们所知init()
在servlet的情况下,构造函数和destroy()
的工作与finalize方法相同,并且finalize()
方法中的构造函数和Servlet
方法没有任何害处1}}。
现在查询是:如果在Servlet中定义了构造函数和finalize()
方法,它们会被调用吗?是否像我们将在构造函数中初始化的内容将覆盖init()
中的那个,或者构造函数根本不会被调用?
答案 0 :(得分:0)
我很确定servlet会遵循正常的对象生命周期,并且会调用构造函数 。
init方法的存在意味着您可以包含依赖于已初始化的框架的其他部分的初始化代码。它在构造框架的过程中被称为。
完成 可能 被调用 - 它将与所有java onjects上的finalize相关的所有相同问题
答案 1 :(得分:0)
构造函数创建servlet的对象。 init()
用于初始化servlet对象。容器将ServletConfig
的引用传递给init(ServletConfig)
方法中的servlet对象,以便Servlet可以访问ServletConfig
和ServletContext
。您可以覆盖no-arg init()
方法来执行特定于Servlet的任何初始化代码。如果没有init()
方法,您的Servlet将无法访问其init参数。
由于destroy()
是容器用于清理Servlet所拥有的资源的方法,因此您应该使用它。 {/ 1}}方法应该被视为绝对的最后机会,因为一个对象被从内存中删除,而不是正常的例程清理方法。因为finalize()
被调用而Servlet容器仍有一个引用对于Servlet对象,它将在GC进程调用destroy()
之前被调用。