7

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

4

1 回答 1

18

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

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

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

于 2008-09-27T10:53:22.133 回答