/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jakarta.servlet.jsp;

import jakarta.servlet.Servlet;

The JspPage interface describes the generic interaction that a JSP Page Implementation class must satisfy; pages that use the HTTP protocol are described by the HttpJspPage interface.

Two plus One Methods

The interface defines a protocol with 3 methods; only two of them: jspInit() and jspDestroy() are part of this interface as the signature of the third method: _jspService() depends on the specific protocol used and cannot be expressed in a generic way in Java.

A class implementing this interface is responsible for invoking the above methods at the appropriate time based on the corresponding Servlet-based method invocations.

The jspInit() and jspDestroy() methods can be defined by a JSP author, but the _jspService() method is defined automatically by the JSP processor based on the contents of the JSP page.

_jspService()

The _jspService()method corresponds to the body of the JSP page. This method is defined automatically by the JSP container and should never be defined by the JSP page author.

If a superclass is specified using the extends attribute, that superclass may choose to perform some actions in its service() method before or after calling the _jspService() method. See using the extends attribute in the JSP_Engine chapter of the JSP specification.

The specific signature depends on the protocol supported by the JSP page.

public void _jspService(ServletRequestSubtype request,
                            ServletResponseSubtype response)
       throws ServletException, IOException;
/** * The JspPage interface describes the generic interaction that a JSP Page * Implementation class must satisfy; pages that use the HTTP protocol * are described by the HttpJspPage interface. * * <p><B>Two plus One Methods</B> * <p> * The interface defines a protocol with 3 methods; only two of * them: jspInit() and jspDestroy() are part of this interface as * the signature of the third method: _jspService() depends on * the specific protocol used and cannot be expressed in a generic * way in Java. * <p> * A class implementing this interface is responsible for invoking * the above methods at the appropriate time based on the * corresponding Servlet-based method invocations. * <p> * The jspInit() and jspDestroy() methods can be defined by a JSP * author, but the _jspService() method is defined automatically * by the JSP processor based on the contents of the JSP page. * * <p><B>_jspService()</B> * <p> * The _jspService()method corresponds to the body of the JSP page. This * method is defined automatically by the JSP container and should never * be defined by the JSP page author. * <p> * If a superclass is specified using the extends attribute, that * superclass may choose to perform some actions in its service() method * before or after calling the _jspService() method. See using the extends * attribute in the JSP_Engine chapter of the JSP specification. * <p> * The specific signature depends on the protocol supported by the JSP page. * * <pre> * public void _jspService(<em>ServletRequestSubtype</em> request, * <em>ServletResponseSubtype</em> response) * throws ServletException, IOException; * </pre> */
public interface JspPage extends Servlet {
The jspInit() method is invoked when the JSP page is initialized. It is the responsibility of the JSP implementation (and of the class mentioned by the extends attribute, if present) that at this point invocations to the getServletConfig() method will return the desired value. A JSP page can override this method by including a definition for it in a declaration element. A JSP page should redefine the init() method from Servlet.
/** * The jspInit() method is invoked when the JSP page is initialized. It * is the responsibility of the JSP implementation (and of the class * mentioned by the extends attribute, if present) that at this point * invocations to the getServletConfig() method will return the desired * value. * * A JSP page can override this method by including a definition for it * in a declaration element. * * A JSP page should redefine the init() method from Servlet. */
public void jspInit();
The jspDestroy() method is invoked when the JSP page is about to be destroyed. A JSP page can override this method by including a definition for it in a declaration element. A JSP page should redefine the destroy() method from Servlet.
/** * The jspDestroy() method is invoked when the JSP page is about to be * destroyed. * * A JSP page can override this method by including a definition for it * in a declaration element. * * A JSP page should redefine the destroy() method from Servlet. */
public void jspDestroy(); }