In chapter two we looked at the Container’s overall role in a servlet’s life—it creates the request and response objects, creates or allocates a new thread for the servlet, and calls the servlet’s service() method, passing the request and response references as arguments. Here’s a quick review...
User clicks a link that has a URL to a servlet.
The Container “sees” that the request is for a servlet, so the container creates two objects:
1) HttpServletResponse
2) HttpServletRequest
The Container finds the correct servlet based on the URL in the request, creates or allocates a thread for that request, and calls the servlet’s service() method, passing the request and response objects as arguments.
The service() method figures out which servlet method to call based on the HTTP Method (GET, POST, etc.) sent by the client.
The client sent an HTTP GET request, so the service() method calls the servlet’s doGet() method, passing the request and response objects as arguments.
The servlet uses the response object to write out the response to the client. The response goes back through the Container.
The service() method completes, so the thread either dies or returns to a Container-managed thread pool. The request and response object references fall out of scope, so these objects are toast (ready for garbage collection).
The client gets the response.
Get Head First Servlets and JSP, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.