Java servlets are small Java programs that run on a web server and respond to requests from a client browser. Servlets receive HTTP requests from the browser, generate dynamic content, and return HTTP responses. When the server first loads a servlet, it calls the servlet's init() method to initialize it. The servlet then handles requests via its service() method, building responses using server resources. When the server removes a servlet, it calls the servlet's destroy() method to perform cleanup. Servlets allow dynamic web content and interaction between clients and server resources like databases.