JSP API :-


All classes and interfaces of JSP technology is derived from the following packages -
1- javax.servlet.jsp - It containes classes and interfaces for Core JSP.
2- javax.servlet.jsp.el - It containes classes and interfaces for JSP expression language. This will be discussed later.
3- javax.servlet.jsp.tagext - It containes classes and interfaces for JSP tag library.This will be discussed later.

javax.servlet.jsp -

It consist of the following interfaces and classes -
Interfaces -
1- JspPage.
2- HttpJspPage.

Classes -
1- JspWriter.
2- JspContext.
3- PageContext.
4- ErroData.
5 - JspEngineInfo.
6- JspFactory.

Exception classes -
1- JspException.
2- JspTagException.
3- SkipPageException.

JspPage and HttpJspPage interfaces -

JspPage interface -

JspPage interface must be implemented by all the JSP Servlet classes. It inherits javax.servlet.Servlet interface.
JspPage defines the following two methods -
1- jspInit() - It is similar to init() method of servlet and used to do some initialization work during intialization of JSP pages. jspInit() method gets executed only once during life cycle of JSP page. You can override this method.
2- jspDestroy() - It is similar to Servlet destroy() method, and called just before JSP Servlet class destroyed. It allows us to do some work that we want to do before JSP Servlet class destroyed (for example closing a stream).After destroy(), JSP Servlet class becomes eligible for garbage collection. You can override this method.

HttpJspPage Interface -

HttpJspPage interface inherits JspPage interface and provide only one method named _jspService().
_jspService() - It is similar to service() method of Servlet and gets invoked each time when a request came in for JSP page. JSP container automatically define this method to generate the content of JSP pages. It has the following syntax -
public void _jspService(HttpServletRequest request, HttpServletResponse response)
                                            throws ServletException, IOException        

Note the underscore(_) sign before jspService() method, that indicates that we cannot override this method. It is automatically generated by JSP container.