JSP: основы и быстрая настройка

Java Server Pages, несмотря на то, что внешне являются обычными HTML-страницами, как и страницы PHP, на самом деле представляют себе программы, которые компилируются JIT-компилятором в особые модули, называемые сервлетами. Именно этим и объясняются показатели, отмеченные нами во введении, ведь в отличие от Java PHP является «чистым» интерпретатором, а движок JSP – частично компилируемым. Таким образом, несмотря на то, что оба являются виртуальными машинами, Java быстрее.

В настоящее время трудно себе представить, что изначально эта технология создавалась как альтернатива Active Server Pages, которые по многим причинам не удовлетворяли разработчиков. В частности, ASP не позволяла создавать компоненты для повторного использования, а также имела проблемы с утечками памяти и защитой от системных сбоев. Но ASP имела несколько важных преимуществ, которыми не обладали другие технологии [13].

 

ü Всегда намного проще поддерживать сайты, написанные на HTML, пусть даже с расширенным синтаксисом;

ü Для разработки можно использовать любые средства для разработки веб-сайтов (в настоящее время, кстати, практически все популярные веб-редакторы поддерживают расширенный синтаксис JSP);

ü Задачи веб-приложения можно решать прямо на уровне представления, не тратя времени на преобразование вывода в веб-форму.

 

Они же легли в основу JSP, однако, разработчики этой технологии добавили еще два требования, которых не было в исходной технологии:

 

ü Возможность для пользователя самостоятельно расширять синтаксис, и использовать внешние программные объекты (ASP тоже позволял это, но только в рамках COM-технологии);

ü Возможность разделять бизнес-логику и представление;

 

На практике это позволило резко упростить разработку приложений, так как пропадала необходимость в огромном количестве дублирующего кода в веб-страницах. Теперь можно было создать объект, инкапсулировать в него нужный функционал, оформить его как компонент (т. наз. JavaBean) и сопоставить ему тэг расширенного синтаксиса [13, 14]. Более того, это позволило использовать в разработке модель Model-View-Controller и поднять создание веб-приложений на качественно новый уровень.

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

 

Ø Установите JDK. Необязательно последней версии, но не ниже 1.5;

Ø Создайте переменную среды JAVA_HOME, и присвойте ей значение, указывающее на тот каталог, куда установлен JDK. Заметим: в зависимости от операционной системы метод создания такой переменной может варьироваться. Однако это выходит за рамки данной статьи;

Ø Скачайте сервер Jakarta Tomcat и распакуйте дистрибутив;

Ø В каталоге bin запустите скрипт catalina с параметром run;

Ø Зайдите в браузер и наберите http://localhost:8080/ Откроется тестовая страничка, как показано на рис. 1.

 

Рис. 1. Тестовая страничка сервера Apache Tomcat

 

На этом подготовительный этап для запуска JSP завершен. Больше никаких настроек не требуется, и можно пробовать различные примеры. Чтобы протестировать JSP, создадим простой документ, как на листинге 1:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>Test</TITLE>

</HEAD>

<BODY>

<H2>Test</H2>

We have a request of <I><%= request.getParameter("title") %></I>!

</BODY>

</HTML>

Листинг 1. Тестовая программа на JSP

В свою очередь, этот файл надо правильно разместить. В каталоге, в который был распакован Apache Tomcat, находится особый подкаталог webapps/ROOT. Это корневой каталог для сайта, который «администрируется» сервером. Именно в нем можно располагать свои jsp-файлы. При этом никакой тонкой настройки не требуется, достаточно поместить файл в подкаталог и открыть соответствующий ему путь в браузере. Есть очень простое правило, по которому можно создавать свою структуру сайта:

 

Таблица 2. Правила размещения JSP-файлов

Каталог Тестовый URL
/%tomcat%/webapps/ROOT http://localhost:8080/
/%tomcat%/webapps/ROOT/jsptest Недоступен, к содержанию каталогов Tomcat доступ не предоставляет
/%tomcat%/webapps/ROOT/jsptest/test.jsp http://localhost:8080/jsptest/test.jsp

 

Используя эти простые правила, можно сформировать практически любую структуру сайта, которую затем безболезненно перенести на любой хостинг, поддерживающий JSP.