Servlet构造函数和init()方法

时间:2008-09-27 10:39:02

标签: servlets init

为什么我们需要在servlet中使用init()方法?我们不能使用构造函数进行初始化吗?

1 个答案:

答案 0 :(得分:18)

因为Servlet是一个接口,而不是一个抽象类。无法在接口上指定构造函数参数,因此需要在普通方法签名上指定ServletContext。

这允许应用程序服务器知道如何正确初始化任何Servlet实现。

另一种解决方案是在编译时要求但不强制执行ServletContext的构造函数。然后,应用程序服务器将通过反射调用构造函数。但是,Servlet规范的设计者没有选择这条路径。