Lesson 16 / 38
Servlets & HTTP
Understand the servlet lifecycle inside a container like Tomcat, why one shared instance serves many request threads, and how doGet / doPost handle HTTP.
Lifecycle
A servlet container (Tomcat, Jetty) creates one servlet instance and calls init() once, then service() — dispatching to doGet, doPost etc. — concurrently on many request threads, then destroy() at shutdown. Because instances are shared, keep no per-request mutable state in fields.
A minimal servlet
Read from HttpServletRequest, write to HttpServletResponse. Sessions, filters, and listeners are layered on top.
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
res.setContentType("text/plain");
res.getWriter().write("Hi " + req.getParameter("name"));
}
}