Servlets are Java classes that extend functionality of a server. Servlets execute on a Java-enabled server and dynamically extend the server's functionality. Servlets process requests from clients and return results, usually in HTML form. All servlets extend classes like GenericServlet or HttpServlet and override the service() method to implement custom functionality that is called in response to client requests. Servlets also implement init() and destroy() methods for initialization and resource cleanup.