В программировании на том или ином языке приходится учитывать огромное количество особенностей. Java – универсальный современный способ создания контента кроссплатформенного типа. Его достаточно легко освоить, а вот с применением возникают некие трудности. Особенно если нужно создавать серверные приложения.
В данной статье познакомимся с технологией под названием JSP. Она активно применяется при написании определенного типа веб-страничек. Освоить оную рекомендуется из-за того, что с ее помощью удастся довольно быстро делать HTML-сайты.
Что это такое
JSP расшифровывается как Java Server Pages. Это технология, которая позволяет разработчикам веб-контента создавать содержимое с динамическими и статическими компонентами. Странички JSP включают в себя текст разного типа. Первый вариант – статическая исходная информация. Она может быть представлена в:
- HTML;
- WML;
- XML;
- SVG.
Второй тип текста – JSP элементы. Они отвечают за создание динамического содержимого. Также допускается применение полноценной библиотеки JSP тегов и EL. Все это помогает внедрить Java-код в статичное содержимое JSP-страничек.
JSP – это некая платформенно-независимая технология, используемая для написания HTML динамического характера. Теги здесь применяются для того, чтобы извлекать информацию из БД, обмениваться имеющимися сведениями и так далее. Для запуска часто применяются среды IDE NetBeans или Eclipse.
Несколько слов о сервлетах
Говоря о HTML и серверных утилитах, стоит обратить внимание на такую особенность, как сервлет. Это специальный программный модуль, который используется для обработки запросов клиентов. Отвечает за реализацию интерфейса сервлета. Находится на серверной стороне.
Работает по принципу запрос-ответ. Используются преимущественно для расширения веб-servers. Принцип работы несколько напоминает JSP.
Чем Java Server Page лучше Servlets
Каждый программист при написании HTML странички должен решить, каким функционалом выбранного языка пользоваться. Первая рассматриваемая технология обладает рядом преимуществ перед сервлетами:
- Отвечает за возможность создания и управления HTML динамического типа. В данном случае процессы будут осуществляться более просто.
- Для работы не требуется загрузка дополнительного программного обеспечения или документов. Пример – можно обойтись без файла класса java и web.xml.
- Обработка ведется web-container для всех корректировок кода. Это приводит к тому, что JSP помогает избежать перекомпиляции.
А еще доступ здесь осуществляется напрямую. Сервлеты требуют предварительного проведения сопоставления с web.xml.
О важности технологии
Стоит обратить внимание на то, что JSP – это то, с чем должен ознакомиться каждый программер. Связано это с несколькими причинами. Для начала нужно рассмотреть возможности и сферы применения технологии. Она дает возможность:
- получения информации из HTML страницы в Java-коде;
- отправлять электронные материалы из Java на HTML;
- заниматься написанием Джава-кода непосредственно внутри HTML (но лучше не слишком часто пользоваться соответствующим приемом).
Знать упомянутую технологию важно по нескольким причинам. А именно:
- это одна из ключевых особенностей веб-технологий в Джаве;
- применяется в крупных компаниях и сложных проектах;
- хорошо интегрируется с сервлетами Джавы внутри контейнера сервлетов.
JSV – база для тех, кто планирует заниматься HTML и серверными утилитами. Облегчает и ускоряет работу любого программера.
Цикл жизни
Следующий момент, достойный внимания – это жизненный цикл JSP. Он полностью повторяет servlet, но имеет один дополнительный шаг. Во время него происходит компиляция рассматриваемой технологии в сервлет.
На представленной схеме можно наглядно увидеть, как выглядит соответствующий жизненный цикл. Каждый этап обладает собственными нюансами.
Перевод – самое начало
Это – первый этап. Здесь происходит следующее:
- Контейнер переводит JSP документ в код Джавы. Он выступает сервлетом.
- Перевод проводится в автоматическом режиме через веб-сервер.
- Последний находит и проверяет достоверность, а затем производит запись сервлета для JPS page.
Здесь никаких проблем с пониманием быть не должно.
Компиляция – шаг два
После описанных ранее действий контейнер JSP будет компилировать исходный Java-код. Это необходимо для того, чтобы создавать следующие servlets и сгенерированный классовый файл.
Загружаем и инициализируем – шаг три
Третий этап предусматривает следующее:
- JSP Container загружает ранее созданный servlet.
- Если процесс прошел правильно, будет создан экземпляр класса сервлета.
- Важно учесть, что здесь используется конструктор, не имеющий никаких аргументов.
- Контейнер JSP проводит инициализацию экземпляра объекта через вызов метода init. Он реализуется container посредством обращения к jspInit().
Элемент кода выше наглядно демонстрирует, каким образом осуществляется инициализация экземпляра.
Выполнение – шаг четыре
Теперь, когда основные этапы позади, происходит не менее важный момент – выполнение. Здесь технология JSP вызовет метод _jspService(). У него два параметра:
- httpServletRequest;
- HttpServletResponse.
Вызывается рассматриваемый метод всего один раз для каждого отдельного запроса.
Упомянутый метод будет отвечать за генерацию ответов на посланный запрос.
Разрушение – логическое завершение
На данном этапе целесообразно говорить о прекращении жизненного цикла.
При разрушении контейнер будет удалять JSP при помощи jspDestroy(). Как это происходит, указано на наглядном примере выше.
Первый проект – tutorial
Для того, чтобы лучше разобраться в HTML и динамических страницах, созданных через рассматриваемую технологию, рекомендуется создать первый проект. Приведенный пример будет реализован через Eclipse.
Чтобы воспользоваться первым приложением JSP, необходимы следующие «компоненты»:
- Java;
- JSP;
- Apache Tomcat 8;
- Eclipse IDE.
Разобраться с соответствующей технологией HTML не составляет никакого труда, если действовать последовательно.
Создание проекта
Для того, чтобы создавать страницы JSP и подобного рода приложения, можно действовать следующим образом:
- Создать новый проект динамического характера.
- Добавить имя разработки. Пусть будет RankWebApplication.
- Нажать на кнопку Next.
- Далее предстоит осуществить настройку проекта. Шаг рекомендуется пропустить, так как в примере речь идет лишь о демонстрационной разработке.
- Создавать web.xml не нужно. Этот факт требуется подтвердить в настройках веб-модуля.
- Щелкнуть по кнопке с надписью «Готово».
- Составить структуру каталогов имеющегося проекта.
- Нажать ПКМ по каталогу «Веб Контент» и добавить новый файл JSP в разработку.
- Назвать файл как NewRankFile.jsp.
- Подтвердить операцию.
- Установить шаблон JSP.
- После того, как описанные действия останутся позади, произойдет создание нового файла. В «листинг 1» необходимо добавить html body, предложенное ниже. Он отвечает за выведение рейтинга команд по крикету.
- Запустить проект, кликнув ПКМ по оному. Далее предстоит щелкнуть по надписи «Запуск от имени».
- Выбрать «Запустить на сервере». После этого необходимо собственноручно определить новый сервер Tomcat. Это необходимо для первого проекта в Эклипсе. Требуется поставить отметку около «Всегда использовать данный server для этого проекта». При подобных обстоятельствах не придется осуществлять повторный выбор.
- На экране появится рейтинги UCC и время обновления HTML. Оно будет сгенерировано через JSP выражение. Выходной ссылкой выступает http://localhost:8080/RankWebApplication/NewRankFile.jsp.
По итогу на экране появится картинка, представленная выше. Это – первый ознакомительный проект, наглядно показывающий принцип работы JSP.
Директивы
Теги директивного типа – средства создания указаний направления и инструкций. Оные должны использоваться тогда, когда происходит перевод жизненного цикла JSP. Они оказывают воздействие полностью на структуру класса сервлета.
Обычно обладают весьма простым синтаксисом:
При желании можно объединить установку нескольких имеющихся атрибутов для одной директивы:
Директивы бывают нескольких типов:
- page;
- include;
- taglib.
Каждый вариант предусматривает собственную область применения и особенности. Далее они будут рассмотрены в полной мере.
Директивы страницы
Тег, который предусматривает инструкции и указания для переводчика в момент перевода жизненного цикла JSP для HTML. Включается в любом место. Разработчики имеют негласное правило – тег директивы страницы устанавливается в самом верху кодификации.
Синтаксис представлен на элементе кода выше. А ниже – аналог в XML.
В качестве примера можно описать атрибут в виде импорта. Он включается в самом верху странички. Запись имеет следующую форму:
<%@ page import="java.util.Date" %>.
Атрибуты
Перед тем, как работать с директивами странички JSP, необходимо выучить возможные атрибуты. Они представлены в таблице ниже.
Имя | Характеристика |
Language | Отвечает за определение языка, который применяется в криптлетах JSP файлов, выражениях или иных документах, включаемых к коду оттранслированного типа. |
Page Import | Определение пакетов, которые были импортированы. |
Extends | Установка суперкласса для сервлета, который будет сгенерирован. Использовать крайне осторожно. |
Session | Если значение true – переменная session, которая была заранее определена, привязана к сессии при наличии таковой. В противном случае будет создаваться новая сессия. К ней осуществится непосредственная привязка. Если же значение false – сессии не используются. При обращении к переменной session возникает ошибка трансляции JSP страничек в сервлеты. |
Buffer | Установка размера буфера для JSPWriterOut. |
autoFlush | Отвечает за определение того, нужно ли будет проводить автоматическую очистку буфера при ошибках или переполненности. |
isThreadSafe | При параметре true устанавливается нормальная работа сервлета. Множественные запросы будут обрабатываться одновременно через один экземпляр. False показывает, что сервлет должен наследовать однопоточную модель. Здесь все запросы будут обрабатываться отдельными экземплярами класса. |
errorPage | Страница, которая будет выводиться при ошибках, приводящих к исключениям. |
Info | Отвечает за определение строки информации о странице. Она доступа посредством метода getServletInfo(). |
isErrorPage | Может ли HTML применяется для обработки ошибок иных JSP страничек. Изначально – нет. |
pageEncording | Определение кодировки символов JSP. Изначально установлен charset из contentType. |
contentType | Определение кодировки для страницы JSP и ответа, а также MIME-тип ответа JSP. |
Это лишь основы, которые должен знать каждый уважающий себя программер. Запоминать атрибуты и выучивать наизусть их вовсе не обязательно. Можно заглянуть в любой специализированный учебнику по изучаемой технологии. Там обязательно будут атрибуты тегов страницы.
Включение директивы
Тег include тоже применяется во время перевода жизненного цикла JSP. Необходим для включения файла. Отвечает за объединение содержимого еще нескольких файлов. Директива включения входит в любое место на HTML (странице).
<%@ include file="path/url" >
Выше приведен пример синтаксиса. Обладает всего одним атрибутом – file.
Тег Taglib
Этот вариант применяется для того, чтобы определить библиотеку пользовательских тегов. Дает возможность использования связанных тегов на одной страничке.
Выше пример синтаксиса. Если контейнер не смог обнаружить библиотеку тегов, возникает фатальная ошибка передачи (трансляции).
Скриптовые теги
Изучая tutorials по HTML и JSP, стоит обратить внимание на скриптовые теги. Они относятся к сценариям. Дают возможность добавления кода сценария в кодификацию Джавы для сгенерированной странички. Она создается переводчиком.
Бывает нескольких типов:
- Сценария. Отвечает за реализацию функциональности метода _jspService через написание кода Джавы. Применяется для создания соответствующей кодификации на JSP Page. Имеет вид:
- Декларативный. Применяется, чтобы объявлять переменные класса и реализацию методов класса jspInt и jspDestroy:
- Выражение тега. Применяется для того, чтобы создавать Джава-выражения. Его нельзя заканчивать точкой с запятой, поставленные непосредственно в теге:
Эти основы помогут на первых порах разобраться с директивами JSP.
Языки выражения
Для того, чтобы получать доступ к информации приложения, которая хранится в JavaBeans, нужно использовать специальный язык. Он предусматривает разнообразные компоненты, которые даже у начинающего программера не вызовут никаких затруднений.
Операторы
Операторы могут быть:
- арифметическими;
- отношений;
- логическими.
Тут ситуация точно такая же, как и в случае с обычной математикой. Чтобы разобраться в оных, достаточно взять учебник по информатике.
Неявные объекты
Напрямую используются в EL выражении. Юзерам предоставляется возможность применения соответствующих элементов для того, чтобы извлекать атрибуты из тех или иных областей и значений параметров.
Выше представлены некоторые типы неявных объектов.
Методы
Не стоит забывать о методах. Огромную роль играют методы, которые доступны в классе Throwable.
Вот некоторые из них. Оные считаются самыми важными и используемыми на практике.
О получении полного спектра знаний – что лучше выбрать
Основы программирования поможет освоить любой учебник, посвященный данной тематике. Но пользователи, которые решили полноценно работать с JSP и HTML, должны изучить направление более развернуто. В данном случае предстоит выбрать грамотный подход:
- Обучение в ВУЗе. Ученик узнает, что такое input type и изучит основы программирования на Джаве. Долгий подход, зато по выпуску человеку будет выдан диплом.
- Самообразование. Никаких подтверждений наличия знаний не будет. Вариант хорош для тех, кто хочет быть самоучкой и не претендует на звание опытного разработчика в крупной компании.
- Обучение в техникуме. В России найти среднее профессиональное образование по направлению Java проблематично. Но такой вариант сгодится, если хочется продолжить после обучение в ВУЗе.
Лучший выход out of situation – это прохождение узкоспециализированных курсов с выдачей сертификатов. Можно учиться в любом месте и в любое время. Срок обучения – до года. Есть предложения и для новичков, и для опытных разработчиков.