Servlet构造函数和init()方法

时间:2020-03-06 14:49:20  来源:igfitidea点击:

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

解决方案

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

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

另一个解决方案是需要(但不是在编译时强制执行)采用ServletContext的构造函数。然后,应用服务器将通过反射调用构造函数。但是,Servlet规范的设计人员没有选择此路径。