• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Why is ServletConfig obj passed to init() of GenericServlet when the class implements the interface?

 
Rajkumar Masanaiyan
Greenhorn
Posts: 24
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
GenericServlet implements ServletConfig interface which means all the interface functions can be invoked from init() function of GenericServlet. Given this context, why does the Servlet container sends ServletConfig object to init() method? I would also like to know if the ServletConfig object that is passed to GenericServlet.init(ServletConfig) different from GenericServlet object.

I know that GenericServlet is abstract but the above questions also apply to HTTPServlet.

Regards,
Ravi
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13045
6
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That is the only way the new servlet instance can get the correct version of the object which the server actually uses.

Bill
 
Rajkumar Masanaiyan
Greenhorn
Posts: 24
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
William Brogden wrote:That is the only way the new servlet instance can get the correct version of the object which the server actually uses.

Bill


Bill: Would you please explain how GenericServlet gets the object version? Would you also explain how this object version is important to Servlet lifecycle?

--Ravi
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64178
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
By "version" he meant instance.
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13045
6
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As Bear said, I should have used "instance" - as in the reference to the instance of ServletConfig passed in the

javax.servlet.Servlet init(ServletConfig s) method.

GenericServlet adds the convenience method init() with no ServletConfig - if you only implement that, the init(ServletConfig ) method in GenericServlet will be called and it will call your init(). See the javax.servlet.GenericServlet JavaDocs.

Bill
 
Rajkumar Masanaiyan
Greenhorn
Posts: 24
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bear Bibeault wrote:By "version" he meant instance.


Thank you Bear. I also learnt that GenericServlet implements ServletConfig interface methods by delegating to ServletConfig object passed by Servlet Container. That means getServletConfig().getInitParameterNames() is the same as getInitParameterNames().

I also got to know that originally GenericServlet didn't implement ServletConfig but later it started implementing for convenience. Do you know why?

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic