Costruttore servlet e metodo init ()
Domanda
Perché abbiamo bisogno di un metodo init () in servlet? Non possiamo usare il costruttore per l'inizializzazione?
Soluzione
Perché Servlet è un'interfaccia, non una classe astratta. Gli argomenti del costruttore non possono essere specificati su un'interfaccia, quindi ServletContext deve essere specificato su una normale firma del metodo.
Ciò consente al server delle applicazioni di sapere come inizializzare correttamente qualsiasi implementazione Servlet.
Un'altra soluzione sarebbe stata quella di richiedere, ma non imporre in fase di compilazione, un costruttore che prendesse ServletContext. Il server delle applicazioni chiamerebbe quindi il costruttore tramite reflection. Tuttavia, i progettisti della specifica Servlet non hanno scelto questo percorso.