Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么我们需要 servlet 中的 init() 方法?我们不能使用构造函数来初始化吗?
因为 Servlet 是一个接口,而不是一个抽象类。不能在接口上指定构造函数参数,因此需要在普通方法签名上指定 ServletContext。
这允许应用程序服务器知道如何正确初始化任何 Servlet 实现。
另一种解决方案是要求,但在编译时不强制执行采用 ServletContext 的构造函数。然后应用程序服务器将通过反射调用构造函数。然而,Servlet 规范的设计者并没有选择这条路。