Why do we need an init() method in servlet? Can't we use the constructor to initialization?
Asked
Active
Viewed 4,260 times
1 Answers
18
Because Servlet is an interface, not an abstract class. Constructor arguments cannot be specified on an interface, so the ServletContext needs to be specified on a normal method signature.
This allows the application server to know how to initialize any Servlet implementation properly.
Another solution would have been to require, but not enforce at compile time, a constructor taking ServletContext. The application server would then call the constructor via reflection. However, the designers of the Servlet specification did not chose this path.

Darron
- 21,309
- 5
- 49
- 53