A JSP page is converted into a servlet at runtime. The servlet handles requests and responses, and incorporates the HTML, scriptlets, expressions, and other elements from the JSP page. The JSP lifecycle involves the container using directives to create an HttpServlet subclass, import statements, declaration statements, and build a _jspService() method that combines all the elements and runs the page. Elements like scriptlets and expressions are executed within the servlet and output is sent to the response.