На главную страницу
Форум txt.version   




Статья :: Упаковка JSP-страниц

Приложение JSP.A

Упаковка (Архивирование)
JSP-Страниц


В этом приложении показано два примера упаковки JSP-страницы в WAR публикации в Web-контейнере.


В первом примере JSP-страница публикуется в исходной форме. Это самый общий пример.


Во втором примере JSP-страница компилируется в Servlet, который использует только вызовы API Servlet 2.3 и JSP 1.2; Servlet затем упаковывается в WAR с таким дескриптором публикации, что он выглядит для любого клиента как оригинальная JSP-страница.


Это приложение не является нормативным. В действительности, строго говоря, Это Приложение больше относится к возможностям Servlet 2.3, чем к возможностям JSP 1.2. Приложение дано здесь, потому что эти возможности могут представлять интерес для авторов JSP-страниц и создателей авторских утилит.

A.1 Простейшая JSP-Страница

Мы начинаем с простейшей JSP-страницы HelloWorld.jsp.
 

<%@ page info="Пример предварительно скомпилированной JSP" %>

<p>

Hello World

</p>

A.2 JSP-Страница, Упакованная как Источник/source в WAR-Файл

JSP-страница может быть упакована в WAR-файл простым помещением её в "/HelloWorld.jsp", где отображение расширения JSP-страницы по умолчанию будет её получать.

Web.xml тривиален:
 

<!DOCTYPE webapp

SYSTEM "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<webapp>

<session-config>

<session-timeout> 1 </session-timeout>

</session-config>

</webapp>

A.3 Сервлет/Servlet для Откомпилированной JSP-Страницы

В качестве альтернативы мы покажем, как можно откомпилировать JSP-страницу в Servlet-класс для запуска на прогон в JSP-контейнере.


JSP-страница компилируется в Сервлет с некоторым зависящим от реализации именем _jsp_HelloWorld_XXX_Impl. Servlet-код, зависящий только от API JSP 1.2 и Servlet 2.3, таков:
 

imports javax.servlet.*;

imports javax.servlet.http.*;

imports javax.servlet.jsp.*;

class _jsp_HelloWorld_XXX_Impl

extends_PlatformDependent_Jsp_Super_Impl {

public void _jspInit() {

// ...

}

public void jspDestroy() {

// ...

}

static JspFactory_factory= JspFactory.getDefaultFactory();

public void _jspService(HttpServletRequest request,

HttpServletResponse response)

throws IOException;

{

Object page= this;

HttpSessionsession= request.getSession();

ServletConfigconfig= getServletConfig();

ServletContextapplication = config.getServletContext();

PageContextpageContext

= _factory.getPageContext(this,

request,

response,

(String)NULL,

true,

JspWriter.DEFAULT_BUFFER,

true

);

JspWriterout= pageContext.getOut();

// контекст страницы создаёт начальный JspWriter "out"

try {

out.println("<p>");

out.println("Hello World");

out.println("</p>");

} catch (Exception e) {

pageContext.handlePageException(e);

} finally {

_factory.releasePageContext(pageContext);

}

}

}

A.4 Дескриптор Web-Приложения

Servlet начинает выглядеть как JSP-страница в следующем web.xml:
 

<!DOCTYPE webapp

SYSTEM "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<webapp>

<servlet>

<servlet-name> HelloWorld </servlet-name>

<servlet-class> _jsp_HelloWorld_XXX_Impl.class </servlet-class>

</servlet>

<servlet-mapping>

<servlet-name> HelloWorld </servlet-name>

<url-pattern> /HelloWorld.jsp </url-pattern>

</servlet-mapping>

<session-config>

<session-timeout> 1 </session-timeout>

</session-config>

</webapp>

A.5 WAR для Откомпилированной JSP-Страницы

Наконец, всё это упаковывается в WAR:
 

/WEB-INF/web.xml

/WEB-INF/classes/_jsp_HelloWorld_XXX_Impl.class


Заметьте, что, если класс Servlet, сгенерированный для JSP-страницы, зависел от некоторых классов поддержки, они также должны были быть включены в WAR.

Упаковка JSP-страниц

страницы в данном разделе 
 Упаковка JSP-страниц  ОТД и Схема для Синтаксиса XML
 ОТД Дескриптора Библиотеки Тэгов  ОТД для TLD JSP 1.1
 Приложение Е - Изменения.  Приложение F - Словарь.
 Содержание  Обзор
 Синтаксис Ядра и Семантика  Вопросы Локализации
 Стандартные Акции  Документы JSP
 Скриптинг  Расширения Тэгов
 JSP-Контейнер  Основной API
 API Развёртывания Тэгов  Содержание
 right-index   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста