Спецификация Java Server Pages 1.2



         

JSP.8.2.3 Опущение Атрибута extends


Если атрибут extends директивы page (см. ) в JSP-странице не используется, JSP-контейнер может генерировать любой класс, удовлетворяющий контракту, описанному в Таблице JSP.8-1, если он трансформирует JSP-страницу.

В следующих примерах иллюстрирует общий/родовой HTTP-суперкласс, названный ExampleHttpSuper. В показан подкласс, названный _jsp1344, который расширяет ExampleHttpSuper и является классом, сгенерированным из JSP-страницы.


Используя отдельные классы _jsp1344 и ExampleHttpSuper, транслятор JSP-страницы не нуждается в поиске информации, содержит ли JSP-страница объявления с jspInit() или jspDestroy(). Это значительно упрощает реализацию.

Пример Кода 8.1 Общий HTTP-Суперкласс


imports javax.servlet.*;

imports javax.servlet.http.*;

imports javax.servlet.jsp.*;

/**

* Пример суперкласса для HTTP JSP-класса

*/

abstract class ExampleHttpSuper implements HttpJspPage {

private ServletConfig config;

final public void init(ServletConfig config) throws ServletException {

this.config = config;

jspInit();

public void jspInit() {

}

public void jspDestroy() {

}

}

final public ServletConfig getServletConfig() {

return config;

}

// Этот метод не является final, поэтому он может быть переопределён более точным методом

public String getServletInfo() {

return “Суперкласс для HTTP JSP”; // можно и получше?

}

final public void destroy() {

jspDestroy();

}

/**

* Точка входа в сервис.

*/

final public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException {

// количество отловленных исключений увеличится при наличии внутренней ошибки.

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;

_jspService(request, resonse);

/**

* Абстрактный метод, предоставляемый JSP-процессором в подклассе,

* обязан быть определён в подклассе.

*/

abstract public void _jspService(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException;




Содержание  Назад  Вперед