0

I have now created a java servlet program,the servlet class which extends HttpServlet is named com.servlet.Main. As we all know , every servlet class has two functions: doGet() and doPost(),one for http get request and the other for http post request. My question is,JVM will create a new com.servlet.Main instance for each coming request or just maintain a singleton instance for all requests?

wuchang
  • 3,003
  • 8
  • 42
  • 66

2 Answers2

0

A Servlet container will only ever create one instance of your Servlet implementation for each declaration in the deployment descriptor. This is not a true singleton, only effectively a singleton relative to the ServletContext. Nothing prevents you from creating more instances.

Note, that the entry point of all Servlet applications is the Servlet#service(ServletRequest, ServletResponse) method. HttpServlet, an sub type of Servlet, implements this method to delegate to a number of methods which custom implementations should override. These are doGet, doPost, doPut, doDelete, doHead, etc.

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724
0

The servletcontainer reuses the same servlet instance for every request.
See this stackoverflow post

Community
  • 1
  • 1
Georgios Syngouroglou
  • 18,813
  • 9
  • 90
  • 92