Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

JAVA. Серверные приложения

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
Часть 1. Электронная коммерция 81
Уровень данных — на этом уровне содержатся данные в базах дан­ных, внешних файловых системах и других носителях. Уровень данных может находиться в любом месте и обычно доступ к нему осуществля­ется непосредственно через средний уровень.
Обычно первый уровень — это Web-браузер, такой, как Internet Exp­lorer, или Netscape Navigator, или любой другой. Второй, или средний, уровень традиционно включает Web-сервер (http-сервер), а также мо­жет включать сервер приложений (Application Server), например WEB­Sphere Application Server. Последующие звенья или уровни могут вклю­чать в себя внешние источники данных, такие, как корпоративные базы данных, транзакционные серверы и т. д., такие, как СУБД DB2 или CISC.
После выбора сценария и распределения ролей устанавливается то­пология выполнения приложения.
Приложение, использующие топологию 1, является отправной точ­кой создания любого e-commerсe приложения. В значительной мере развитию данной топологии способствовала хорошо продуманная топо­логия выполнения приложения. В топологии выполнения приложения указываются различные группы компонентов, сгруппированных для ре­шения различных задач по определенному принципу.
Используя графические формы, проектировщик описывает взаимо­действие компонентов системы на физическом уровне. Каждая тополо­гия выполнения может содержать несколько различных компонентов физической сущности, но одинаковых по логической. Это касается базы данных, кластеризации Application-серверов и т. д.
Узел Application Server физически может располагаться как на одной машине с одним DNS, так и на нескольких компьютерах. Application Ser­ver имеет встроенный Web-сервер, предназначенный для обработки http­запросов клиента. Данные, содержащиеся на этом уровне, предназначены для описания бизнес-логики и UI-логики. В данном узле описываются следующие ресурсы: HTML-страницы, изображения, мультимедиаком­поненты, скачиваемые клиентом. Далее располагаются JSP-страницы, приложения и апплеты, передаваемые клиенту по мере надобности.
Затем описывается узел DNS, предназначенный для физической ас­социации системы с сетевым адресом. Здесь описываются все URL, принадлежащие данному сетевому адресу.
Пользовательский узел содержит описание клиента. Клиентом могут являться различные устройства. Появившиеся с развитием сотовых технологий, обычно это представляет ручные компьютеры и сотовые те­лефоны, на один уровень выше стоят Web-браузеры, Java-клиенты. Основной этап разработки e-commerce приложений пока затрагивает только первый уровень, но недалек день использования передовых Ja­va-технологий для нулевого уровня, все пока зависит только от разра­ботчиков аппаратного обеспечения и принятия единых стандартов пере­дачи и отображения данных. Отсутствие таковых ставит разработчика перед сложной задачей реализации единого приложения, имеющего возможность работать с разными клиентами разных уровней.
Узел, обеспечивающий секретность и идентификацию клиентских транзакций.
82 Часть 1. Электронная коммерция
На данном узле содержатся компоненты, отвечающие за безопас­ность данных, используя различные способы сертификации организа­ции доступа к хранилищам.
Узел хранилища данных предназначен для хранения постоянных дан­ных, используемых клиентом, в данном случае не только системных, но и бизнес-данных. Основным занятием этого узла, кроме непосредственного хранения, является определение видов доступа к ресурсам базы данных.
В отличие от узла безопасности, узел внешней безопасности отвеча­ет за организацию доступа из внешних источников. Это первый уровень идентификации пользователя. В этом узле описываются используемые протоколы firewalls. Традиционно firewalls используются как внешние барьеры, обеспечивающие безопасный доступ к узлу DNS.
Диспетчер запросов предназначен для организации оптимального тра­фика, используется при кластеризации и в распределенных системах.
Узел внешнего кэша содержит часто используемые данные.
Узел перенаправления запроса необходим в случае сбоя системы це­ликом. Используются различные методы перенаправления запроса, от простого HTML «извинения» до незаметного для пользовательского за­проса перенаправления в дублирующую систему.
Все эти узлы в терминологии Java представляют собой пакеты клас­сов. Большая часть проблем уже решена в самом Application Server и используемой базе данных. За проектировщиком остается выбор необ­ходимых компонентов.
На логическом уровне выполнения эта топология должна обеспечивать синхронное взаимодействие всех компонентов в момент взаимодействия с клиентом и асинхронную обработку совместно используемых ресурсов.
Среднестатистический сценарий покупки в Web-магазине выглядит следующим образом:
1. Запрос поступает из Web-браузера клиента, покупатель взаимо­действует с продавцом при помощи коммерческого сайта продавца. На данном этапе клиент регистрируется в системе, и данные о регистрации сервер заносит в базу. Далее сервер осуществляет проверку вновь заре­гистрированного пользователя и производит либо операцию дальней­шей регистрации, либо отказ пользователю в регистрации. Без регист­рации у пользователя есть возможность работать в ограниченном режи­ме. Благодаря идентификационным параметрам, паролю, логину, присвоенному значению ID, а также части системной информации (но­мер порта, используемый протокол передачи, mail) и т. д., о пользовате­ле получают первичную информацию. Благодаря первичной информа­ции можно выяснить, сколько раз посещал данный клиент Web-магазин и чем больше всего интересовался или не интересовался.
2. После регистрации пользователь перенаправляется сервером на исходные страницы, сгенерированные в статические данные и динами­ческие запросы. Проходя первый этап регистрации пользователя в сис­теме и получения первичной информации, клиент вступает в стадию оформления заказа, на сервере ведется работа по генерации предложе­ний, основанная на первичной информации и бизнес-данных.
3. Осуществляется выбор понравившегося товара. Сервер сохраняет данные о пользовательской сессии в базе данных и генерирует cookies
Часть 1. Электронная коммерция 83
для отправки клиенту. Подробнее о cookies можно узнать из главы, опи­сывающей создание servlet.
4. После окончательного выбора товара или, наоборот, отказа от то­вара сервер пересылает заказ, даже в отсутствие такового, в бизнес-ба­зу данных для дальнейшей обработки. Зачем обрабатывать заказ, от ко­торого отказались? Для того, чтобы в дальнейшем пользователь полу­чил именно то, что искал.
5. Сервер, используя одну из возможных технологий JMS, JTS или EJB, перенаправляет заказ на соответствующий уровень обработки, на сервер службы доставки, на склад и т.д.
На этом клиентская часть заканчивается, дальше наступает время
работы только сервера.
Работа сервера связана в основном с обновлением бизнес-данных и
данных о клиенте.
О сервере как об основном звене будущего приложения необходимо
упомянуть отдельно.
Первая задача стоит за выбором программных продуктов используе­мых сервером. Проблемой большинства проектировщиков остается пол­ное незнание используемых программных продуктов. Архитектор сис­темы знает только о функциональных возможностях, не вдаваясь в де­тали. После быстрого ознакомления архитектор приступает непосредственно к проектированию, основываясь на знании старых вер­сий или интуиции. А потом получается так, что прекрасно работавшее приложение на одой платформе вдруг начинает вести себя очень стран­но на другой подобной платформе.
Создавать независимое приложение или строго ориентированное на одну платформу — это решение остается за проектировщиком. Тем бо­лее разговор можно вести только о действительно подобных системах. Сравнивать Windows-системы с UNIX-клонами бесполезно, для каждой используются свои собственные решения.
Первый выбор, стоящий перед архитектором, — это выбор платфор­мы, на которой будет работать e-commerсe приложение. Выбор плат­формы основывается на следующих критериях:
— Доступность как самой платформы, так и специалистов по обслу­живанию этой платформы.
— Необходимо учитывать специальные требования заказчика по ис­пользованию платформы.
— Web-клиенты должны получить доступ к ресурсам, размещенным на данной платформе.
Как самую распространенную можно рассмотреть ситуацию с испо­льзованием операционной системы Windows NT, соответствующих про­граммных продуктов фирмы IBM.
В самом простом случае необходимо использование двух копий опе­рационной системы, используется трехуровневая Web-архитектура. Первая копия размещается на сервере данных, другая на сервере, впо­следствии превращенного в Web-сервер.
Выбор операционной системы и базы данных — главная, но не основ­ная задача. Для прекрасной работы e-commerсe приложения требуется прекрасная работа всех компонентов системы. Говоря о выборе програм-
84 Часть 1. Электронная коммерция
много обеспечения, нельзя не упомянуть о выборе виртуальной машины Java. Например, для платформ Windows версия JVM 1.1.7 фирмы IBM оказалась значительно быстрее родной машины компании SUN версии
1.2. А на платформах самой IBM говорить о сравнении просто бесполез­но. Также не бесполезно будет узнать, каким JIT-компилятором осна­щен Web-сервер, реализующий созданное приложение. Другим важным компонентом является EJB-контейнер, если в приложении предполага­ется использовать EJB. Java является потоковым языком, и большин­ство серверных компонентов многопоточные, использование многопро­цессорных систем значительно ускоряет работу JVM. Некоторые опера­ционные системы предоставляют свои потоки для использования JVM.
На сервере данных используется СУБД DB2 компании IBM. Практи­чески кроме СУБД на данном сервере можно разместить дополнитель­ные компоненты, обеспечивающие дублирование, копирование, кэширо­вание и прочие операции обработки данных. На основном сервере, бази­рующемся на другой копии Windows NT, используются WEBSphere Application Server, IBM http-сервер, IBM JDK и диспетчер запросов Network Dispatcher, IBM SecureWay Firewall. При использовании про­кси-сервера, последние два продукта можно перенести на отдельную машину. Использование одноуровневой архитектуры в данном случае не оправданно, даже если используется многопроцессорная система, слиш­ком много операций производится по системной шине для базы данных и слишком медлительны встроенные компоненты. Вообще очень удиви­тельная ситуация складывается с взаимодействием программного «же­лезного» обеспечения. Заказчик, не жалеющий денег на дизайн, начина­ет «мяться» при необходимости использовать более совершенное железо.
Говоря о быстродействии базы данных, подразумевается правильно составленный запрос, в то время как использование flash-диска увеличи­вает производительность всей системы в целом, скорость особенно актуа­льна в Web-приложениях, работающих с мультимедиаданными. И каким бы оригинальным ни был запрос, обеспечить доступ со скоростью 500 Мб в секунду на стандартном оборудовании у запроса вряд ли получится, тем более что память в последнее время не так уж дорога. Именно испо­льзование flash-дисков, а не громадного количества ram оправданно при использовании Windows NT как основной операционной системы. Алго­ритм работы с памятью у Windows NT достаточно своеобразен — инфор­мация сбрасывается в файл подкачки, что влечет за собой увеличение тактов процессора для каждой операции чтения /записи.
Самым медленным программным компонентом можно назвать базу данных. Большое количество SQL запросов, часто используемые данные о продуктах и клиентах, разные блокировки значительно снижают про­изводительность всей базы данных. А такие тяжеловесные компоненты, как мультимедиа, загружают всю систему целиком. Выбор базы данных не столько необходим, сколько важен. По отношению к остальным базам данных DB2 фирмы IBM изначально создавалась как база данных для клиент-серверных приложений. Прекрасная способность к кластериза­ции добавляет еще один полюс использования DB2 в качестве источника данных на Web-серверах. DB2 обеспечивает работу различных таблиц одной базы данных на различных физических машинах, а что еще надо
Часть 1. Электронная коммерция 85
Web-приложению? Специальные расширители (extenders), поставляе­мые в версии 6.1 и выше, облегчают обработку больших объемов данных.
Одной из рекомендаций по повышению производительно всей систе­мы в целом является использование трехуровневой топологии.
Все это длинная история, предваряющая разговор об используемой Web-архитектуре.
Одноуровневая архитектура не требует детального рассмотрения, поскольку используется в основном создателями приложения.
Двухуровневая архитектура.
Один Web-сервер, один сервер данных. Обычно оба сервера находят­ся в одном сегменте сети. С точки зрения «железа» два компьютера, со­единенных локальной сетью. Трехуровневая архитектура определяет дополнительные компоненты, используются при создании больших сай­тов. В отличие от двухуровневой архитектуры, несколько Web-серверов обслуживают один сервер данных, сеть может несколько сегментов. Вы­бор данной архитектуры обычно íå ограничивается технологией WINTEL, а используется более мощное «железо» и программное обес­печение, такое, как AS/400 фирмы IBM.
Вообще о производительности системы в целом относительно e-com­merсe приложения можно судить по специальному параметру.
Отношение количества запросов к количеству проведенных транзак­ций, прекрасный параметр, указывающий пробелы в созданном прило­жении. В повседневной жизни это отношение лежит в пределах 95\5, что считается хорошим показателем. Все остальное требует детального рассмотрения.
Желательно весь мыслительный процесс начать именно до начала набора программистов, реализующих грандиозные планы системного архитектора. Если же с архитектором совсем плохо и не последнюю роль играет меркантильный интерес, то лучше сразу приобрести гото­вое решение. Позже можно представлять заказчику данное решение как сделанное собственными руками, но чуть переработанное ребятами из IBM, у вас с ними дружеские отношения.
Сводя воедино все вышесказанное, можно обрисовать картину созда­ния типичного e-commerсe приложения. От выбора Web-архитектуры до конечного создания приложения проект проходит несколько этапов:
1. Дизайн основного Web-приложения. Когда приложение представ­ляет собой просто один файл, говорить о построении компонентов бес­смысленно. Нормальное приложение использует большое количество разнородных сервисов и рабочих модулей. Приложение содержит мето­ды, описывающие взаимодействие между клиентом и сервером, часть методов предназначена для решения системных задач, другая часть бизнес-методы. На данном этапе описываются все компоненты системы. Описывается, какие клиенты будут использовать данное приложение, какие сервисы будут обслуживать запросы клиентов на сервере, какие ресурсы будут затребованы для выполнения запросов клиентов.
2. Построение компонентов приложения. Проектирование основной структуры e-commerсe распределяет роли между ресурсами. Использу­ют классическую систему MVC. Компоненты, описанные на первом эта­пе, теперь распределяются по ролям.
86 Часть 1. Электронная коммерция
3. Описание структуры приложения. Описание рабочей логики при­ложения, бизнес-методы. Рабочая логика приложения содержит мето­ды, описывающие отношение компонентов. Коммерческая сторона при­ложения состоит из описания бизнес-данных и методов по работе с ука­занными данными.
4. Определение роли контроллера. Описываются приложения, выпол­няющие роль контроллера. В большинстве случае именно servlet выпол­няет данную роль. Контроллер описывает реакцию системы на действия пользователя.
5. Описание UI и отображаемые данные. Существует два типа дан­ных, отображаемых в стандартной HTML-странице. Размещение графи­ческих компонентов и внешний вид данных, а также определение типа данных описываются на данном этапе.
6. Создание системных управляющих компонентов пользовательской сессией. На данном этапе проектируются элементы управления http­сессией при помощи различных данных клиентской сессии, cookie и т. д.
7. Безопасность системы. Описывает различные способы обеспечения секретности выполняемых действий, аутентификация, регистрация по­льзователя, сертификация и прочие операции обеспечения безопас­ности. Авторизация и аутентификация (идентификация) пользователя, два основных метода обеспечения безопасности.
8. Используемые модели e-commerсe приложения. В зависимости от решения e-commerсe приложение может строиться на различных отно­шениях между клиентом и поставщиком. На заключительном этапе мо­делируются различные бизнес-ситуации и то, как система реагирует на различные сценарии действий клиента.
Вся созданная система представляется в виде Web-компонентов, большая часть которых скрыта от клиента. На рис. 1.11 изображена стандартная модель сайта торговой площадки.
Welcome — основная страница, встречающая пользователя;
Catalog — страница, содержащая перечень товаров и услуг;
Logon — страница для подключения уже существующего пользо­вателя;
Register — регистрация нового пользователя;
Address book — пользовательская адресная книга;
Search — организация поиска;
Interest list — дополнительные ссылки и предложения по добавле­нию продуктов в пользовательскую корзину;
Order status — страница, возвращаемая пользователю. Подтверж­дает транзакцию;
Customer service — сервис для пользователя.
Первая страница является, с одной стороны, визитной карточкой компании, с другой — главным входом в «сокровищницу». На данной странице практически отсутствует бизнес-логика, и клиент получает доступ к другим ресурсам, используя обычные ссылки (якоря). Но бла­годаря этой странице можно получить первичную информацию как о самом клиенте, так и о некоторых системных ресурсах клиента. В даль­нейшем данная информация может помочь избавиться от ненужного дублирования опроса клиента по поводу используемых ресурсов.
Часть 1. Электронная коммерция 87
Рис. 1.11. Структура Web-приложения
По логике распространенных приложений следующая страница предлагает пользователю зарегистрироваться. Здесь включается первое обращение к базе данных. Клиентский запрос поступает на servlet, про­водящий проверку самостоятельно либо при помощи EJB. В результате servlet либо самостоятельно, либо используя JSP извещает посетителя о результатах проверки.
В зависимости от данных первичной регистрации, если клиент впер­вые попал на сайт, ему предлагают пройти процесс регистрации. Если он уже зарегистрированный пользователь, то автоматически переходит на основную страницу — каталог. Каталог содержит информацию о продуктах, продаваемых компанией. Доступ к каталогу можно обеспе­чить непосредственно из EJB, но, придерживаясь политики MVC, опять же запрос перенаправляется в servlet, будет это один и тот же или раз­ные servlet, все зависит от проектировщика. Посмотрев и убедившись, посетитель выбирает продукт, используя interest list. На данной страни­це реализован механизм хранения некоторого множества объектов. На­деемся, что посетитель купит не один продукт. Здесь обязательно сле­дует использовать пару servlet — EJB, поскольку клиент вызывает час­тичное обновление данных. Поиск можно организовывать либо с помощью JSP, либо с помощью servlet. Работа других страниц полно­стью зависит о логики приложения.
Для представления всех страниц и определяется роль e-commerсe приложения. Существует множество различных решений, основанных на разных технологиях. В дальнейшем будет рассмотрено использова­ние Java-объектов для создания e-commerсe приложения. В этом обзо­ре опущены конкретные реализации алгоритмов поиска, схемы таблиц базы данных, методы табличных отображений данных в презентацион­ной графике.
ЧАСТЬ 2 JAVA SERVER PAGE
Распространение HTML в Web-приложениях полностью выработало ресурс статических тегов, применяемых для формирования и передачи документа через Интернет. Генерируемые HTML-страницы, формируе­мые в момент клиентского запроса и содержащие динамические дан­ные, полностью заменили статические элементы разметки, предостав­ляемые HTML. Множество компаний предложили свои решения по оживлению HTML-страниц. Свободно распространяемый PHP, Cold Fu­sion фирмы Allaire, и ASP компании Microsoft — вот далеко не полный список технологий, предлагающих создание динамического контекста в Web-страницах. Наиболее распространенной технологией, в силу специ­фики маркетинговых решений, можно назвать Active Server Page (ASP) — технологию динамических страниц, основанную на языке про­граммирования Visual Basic компании Microsoft. Но данная технология имеет один большой недостаток или огромный плюс по сравнению с другими (мнение самой компании Microsoft) — ASP работает только на платформах самого создателя т. е. в операционной системе Windows и Web-сервере Интернет Information Server (IIS).
Рождение платформонезависимого языка Java привело компанию SUN к решению создания своего представления HTML-страниц. Скре­щивание Java и HTML в одном приложении способствовало созданию серверной технологии генерации динамических страниц.
Java Server Page (JSP) — серверная технология, позволяющая встра­ивать и использовать Java-код в статических Web-страницах, с испол­нением кода в момент обращения к данной странице. Одной из отличите­льных особенностей JSP является возможность совмещения на одной странице бизнес-логики приложения и графических элементов пользо­вательского интерфейса. JSP могут создавать как программисты, так и Web-дизайнеры. На данном этапе Java превращается из компилируемо­го языка в скриптовый, это превращение позволяет создавать динамиче­ские страницы без создания приложений и использования апплетов. Как и все Java-решения, JSP допускает использование других Java-объек­тов, таких, как приложения, апплеты, сервлеты, бобы (JavaBean) и EJB.
Как и обычная Web-страница, JSP представляет собой набор специ­фических тегов плюс дополнительные синтаксические конструкции, определяемые встроенным скриптовым языком. Самыми распростра­ненными скриптовыми языками для использования в Web-страницах по-прежнему остаются JavaScript и VBScript. Основная их черта в том, что они выполняются на клиентской стороне без какой-либо компиля-
Часть 2 Java Server Page 89
ции со стороны программиста, создавшего данную страницу. Хотя уже существуют версии JavaScript для исполнения на серверной части, до сих пор JavaScript использовался на стороне клиентского приложения. И хотя в названии JavaScript присутствует слово Java, практически ни­чего общего с данным языком программирования JavaScript не имеет, являясь в большей степени независимым языком программирования.
В JSP скриптовым языком является Java. JSP является серверным ресурсом. Для обработки встроенных конструкций требуется специаль­ный обработчик — jsp-engine. Данный обработчик поставляется сторон­ними поставщиками или является неотъемлемой частью Web-сервера или сервера приложений. Web Shpere Application Server (WAS), компа­нии IBM имеет встроенный обработчик JSP-страниц, поддерживающий все существующие версии JSP, 0.91 и выше.
Поскольку JSP является расширением Java, то одной из причин ис­пользования JSP являются платформонезависимость Java виртуальных машин. Другая причина поддержка широко распространенного языка программирования Java и использование HTML-тегов в Web-приложе­ниях. Основная особенность JSP — возможность легко встраивать Java­Beans и исполняемый Java-код в JSP.
JSP теги встраиваются в обычный HTML-файл. Совместное исполь­зование стандартных HTML-тегов, скриптов и тегов JSP позволяет ре­шить проблему создания действительно динамических страниц.
Возможность использования Java в JSP позволяет выбирать наиболее мощное и быстрое решение, а количество библиотек Java API делает эту возможность просто уникальной. Также плюсом можно считать способы оптимизации Java-кода, также применимые и для оптимизации JSP.
Существует несколько основных версий JSP. Первая имела номер
0.91 и была реализована в ранних версиях WEBSphere Apllication Server и SUN JavaWebServer. На настоящий момент основной версией считает­ся 1.1, к тому же компания IBM, как, впрочем, и другие поставщики про­граммного обеспечения, предлагает собственные теги расширения JSP для существующих версии 0.91 и версии 1.1 На настоящий момент все последние версии продуктов IBM семейства Web Sphere и VisualAge for Java, начиная с 3.02, поддерживают JSP всех стандартных версий.
JSP распространяется в виде специального расширения поставляе­мым компанией SUN в дополнительном наборе пакетов для приложений уровня предприятия — Enterprise Extension, платформа J2EE.
Основным источником информации по использованию JSP и появле­нию новых версий можно найти на официальном сайте компании SUN: http://www.java.sun.com/products/jsp/index.html, новые спецификации на JSP можно получить по адресу: http://www.java.sun.com/pro­ducts/jsp/index.html
Глава 7. Основные Java-классы по созданию и обработке JSP
Классы по работе JSP можно формально разделить на несколько ти­пов. Первые нужны для организации работы JSP в среде сервера, дру­гие отвечают за трансляцию, и, наконец, последние предназначены для создания JSP-элементов — тегов.
90 Часть 2 Java Server Page
Основные классы, необходимые для работы с JSP, помещены в jar­архив, поставляемый либо отдельно для каждого сервера, либо в рас­ширенной спецификации Java2 Enterprise Edition (J2EE). В пакете ja­vax.servlet.jsp, являющемся частью набора API J2EE, имеются четыре абстрактных класса, т. е. классов с не полностью описанными методами, и два интерфейса, при помощи которых можно получить информацию об исполняемой системе JSP. Для версии JSP 1.1 существует дополни­тельный пакет javax.servlet.tegext. по созданию и работе с пользовате­льским тегами. Сам транслятор страниц является обычным Java-прило­жением, находится в пакете com.sun jsp.copmiles или пакете, распро­страняемом вместе с Application Server, на котором выполняется генерация страниц. Для трансляции созданного кода сервер вызывает нужный класс jsp-транслятора, но при очень большой необходимости можно вручную транслировать созданную JSP-страницу. Для этого можно воспользоваться командной строкой: c:\>java com.sun.jsp.compi­ler.Main myJSPFile.jsp.
Ê сожалению, нельзя, просто указав â системной переменой CLASSPATH необходимые классы, получить исполняемые JSP-страни­цы, для каждого сервера, будь то Web-сервер или Application Server, необходимо произвести определенные настройки работы JSP –engine и Java Virtual Machine (JVM). Для получения более точной информации можно обратиться к документации на поставляемый сервер. Например, WEBSphere Application Server фирмы IBM поставляется с уже опти­мально настроенным jsp-engine и нет большой необходимости в на­стройке сервера для работы с JSP. В WEBSphere Application Server существуют свои компиляторы для каждой версии JSP. Для работы с версией 0.91 необходимо установить jar-архивы в системной перемен­ной CLASSPATH: ibmwebas.jar,servlet.jar, а для применения версии JSP 1.0 необходимо заменить файл ibmwebas.jar на новый архив jsp10.jar. После этого можно воспользоваться транслятором JSP, разра­ботанным фирмой IBM.
Для исполнения и компиляции созданного JSP-файла можно воспо­льзоваться командной строкой: X:\>java com.ibm.servlet.jsp.http.page­compile.jsp.tsx.batch.JspBatch myJSPFile.jsp для первых версий или для версии JSP 1.0: X:\> java com.sun.jsp.runtime.JspServlet myJSPFile.jsp
В обоих случаях JSP-компилятор является Java-классом, поэтому и вызывается при посредничестве JVM (первый аргумент командной строки).
В большинстве случаев разработчику не потребуется самостоятельно транслировать код исходной JSP-страницы. Поскольку специфика рабо­ты JSP несколько отличается от работы привычного приложения, необ­ходимость вручную вызывать JSP-транслятор, отпадает за ненадобно­стью.
Если посмотреть на JSP-файл с точки зрения создателя Web-прило­жения, то можно увидеть текстовой файл, содержащий стандартный HTML-теги, Java-код и теги самой JSP-страницы. Именование файла не имеет большого значения, в отличие от «pure Java» приложений, но расширение обязательно должно иметь трехбуквенное значение — JSP, определяющие, что данный файл является JSP-страницей.