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.