1. Pre-translated: Before the JSP file has been compiled and translated into the Servlet.
2. Translated: The JSP file has been compiled and translated as a Servlet.
3. Initialized: Prior to handling the requests in the service function the container calls the jspInit() to initialize the Servlet. Invoked only once per Servlet instance.
4. Servicing: Services the client requests. Container invokes the _jspService() function for each request.
5. Out of service: The Servlet resource is out of service. The container invokes the jspDestroy() function.
Could you have your JSP-generated servlet subclass your own servlet instead of the default HttpServlet?
Your JSP started servlet may extend your own servlet with the directive:
<%@ page extends="com.CRMServlet"%>
But, you have to be very careful when having your JSP pages added your own servlet class. By doing so you can lose any advanced optimization that can be given by your JSP engine. If you do have a compelling problem to do so then your own superclass servlet has to fill the aspect with the JSP engine by:
1. Providing the HttpJspPage interface for JspPage interface or HTTP protocol. If you do not then you will have to prepare that all your super-class servlet functions are defined as final.
2. Implementing your super-class servlet functions as given:
- The service() method has to call the _jspService() function.
- The init() method has to call the jspInit() function.
- The destroy() method has call jspDestroy() function.
If the above conditions are not present, then a translation error may be given by your JSP engine.