2011-10-14 6 views
6

GenericServlet implementa l'interfaccia ServletConfig che significa che tutte le funzioni dell'interfaccia possono essere richiamate dalla funzione init() di GenericServlet. Dato questo contesto, perché il contenitore Servlet invia l'oggetto ServletConfig al metodo init()? Vorrei anche sapere se l'oggetto ServletConfig passato a GenericServlet.init(ServletConfig) diverso dall'oggetto GenericServlet.Perché ServletConfig è passato a init() di GenericServlet quando la classe implementa l'interfaccia?

saluti, Ravi

risposta

3

Il GenericServlet implementa i metodi ServletConfig semplicemente delegando all'oggetto config passato al metodo init. Quindi implementa ServletConfig semplicemente per comodità, quindi semplicemente delega. Quindi, invece di chiamare getServletConfig().getInitParameter() puoi chiamare getInitParameter()

+0

Grazie Bozho. Se un GenericServlet implementa ServletConfig, in genere ci sarebbe un consumatore che conosce GenericServlet solo come oggetto ServletConfig. Poiché gli sviluppatori di servlet non considerano gli oggetti GenericServlet come oggetti ServletConfig, ho ipotizzato che alcuni moduli Servlet Container abbiano un riferimento ServletConfig a GenericServlet. Qualunque parte delle mie presunzioni è valida? –

+0

il contenitore servlet ha un'altra implementazione di ServletConfig che è l'effettiva implementazione utilizzata. passa semplicemente al servlet generico – Bozho

Problemi correlati