Question

Why do we need an init() method in servlet? Can't we use the constructor to initialization?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top