【发布时间】:2010-09-13 16:34:36
【问题描述】:
为什么我们在 servlet 中需要一个 init() 方法?不能用构造函数来初始化吗?
【问题讨论】:
为什么我们在 servlet 中需要一个 init() 方法?不能用构造函数来初始化吗?
【问题讨论】:
因为 Servlet 是一个接口,而不是一个抽象类。不能在接口上指定构造函数参数,因此需要在普通方法签名上指定 ServletContext。
这允许应用服务器知道如何正确初始化任何 Servlet 实现。
另一个解决方案是要求,但在编译时不强制,构造函数采用 ServletContext。然后应用程序服务器将通过反射调用构造函数。但是,Servlet 规范的设计者并没有选择这条路。
【讨论】: