Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Servlet constructor and init() method

Tags:

servlets

init

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

like image 544
coder Avatar asked Sep 27 '08 10:09

coder


1 Answers

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.

like image 176
Darron Avatar answered Jan 07 '23 23:01

Darron