Java Servlet - это программа на стороне сервера, написанная на одноименном языке программирования, которая получает сигналы клиента и отправляет ему ответы обратно. Это ключевой элемент, формирующий типичное Java EE, помимо JSP, EJB, XML и других связанных технологий. Приложение может быть упаковано в файл WAR (Web AR chive) для развертывания на веб-сервере. Сервер, который может запускать Java-сервлет, называется контейнером. Программа, которая запускается на таком сервере может создавать динамические веб-страницы.
Java Servlet: основы
Вам будет интересно:Почему "Виндовс 10" тормозит: причины, способы устранения неполадок, порядок действий
Самыми популярными и широко используемыми контейнерами являются Tomcat и JBoss. Технически сервлет - это нормальный Java-класс, который имеет расширение для общего клиент-серверного протокола или HTTP. На практике он применяется для обработки запросов, через переопределения HttpServlet GET и POST соответственно. Контейнер Java Servlet предоставляет Http.ServletRequest и Http.ServletResponse - объекты, работающие по схеме запрос-ответ. И обычно используется в сочетании с JSP для генерации динамического контента.
Вам будет интересно:Как поменять язык в "Лайтруме": правила, алгоритм
Типичный сценарий модели:
Java Servlet Filters - это подключаемые компоненты Java, которые используются для перехвата и обработки запросов до их отправки сервлетам и ответа после завершения его кода, и до того, как контейнер отправит ответ клиенту.
Общие задачи, которые выполняют с фильтрами:
Фильтры подключаются и настраиваются в файле дескриптора развертывания (web.xml). Сервлеты и фильтры не знают друг о друге, поэтому можно добавить или удалить фильтр, просто отредактировав web.xml. Допускается иметь несколько фильтров для одного ресурса или создать цепочку фильтров для web.xml или запустить Java Servlet filters, реализуя javax.servlet.Filter интерфейс.
Основные функции Servlet
Вам будет интересно:Как использовать "Монитор ресурсов" в Windows 7 для диагностики
Параллельные запросы на сервер обрабатываются потоками, что обеспечивает важные качества веб - многопоточность и параллелизм.
Основные функции:
Необходимость применения динамических веб-страниц
Существует немало причин, по которым бизнес хотел бы создавать динамические веб-страницы «на лету», например, когда данные на веб-сайте часто меняются. Сайты новостей и погоды обычно полагаются на CGI, чтобы поддерживать свежий контент, не требующего постоянного внимания разработчиков. Веб-страницы электронной коммерции, в которых перечислены текущие цены и уровни запасов, используют CGI для получения этого контента по требованию, получая его из внутренней инфраструктуры компании.
Многие пользователи имеют опыт использования технологии Джава для создания веб-сервисов на базе CGI, но Java Servlets более эффективны, мощнее, проще в использовании и дешевле традиционных альтернатив CGI.
Преимущества Java Servlets:
Создание структуры каталогов
Вам будет интересно:QA - это...Описание, функции, особенности
Чтобы начать работу, создают следующую структуру каталогов.
Где в папке:
- Deploy - помещают созданный файл.
- Src - размещают исходные файлы Java в пакете net.codejava.servlet.
- WebContent - хранят страницы JSP и другие веб-ресурсы.
- WebContent WEB-INF - установлен дескриптор web.xml.
- WebContent WEB-INF - скомпилированные классы.
Далее создают исходный файл Java под названием QuickServlet.java в каталоге src net codejava servlet со следующим кодом.
Этот сервлет вызывает несколько методов из HttpServlet:
- init () - будет вызывать метод, когда он получает доступ первым клиентом. Обычно здесь вводится код инициализации.
- doGet () - срабатывает каждый раз, при HTTP-запросе GET.
Сервлет вводит два элемента:
Метод для реализации запросов клиента:
Написание JSP-страницы
Создают файл под названием index.jsp под каталогом WebContent со следующим содержанием.
На этой странице JSP:
Страница JSP будет выглядеть так.
Объявление и настройка Java web Servlet
Чтобы сервлет мог обслуживать запросы пользователей, необходимо объявить и настроить сопоставление его в файле дескриптора веб. Создают XML-файл с расширением web.xml ниже каталога WebContent WEB-INF со следующим кодом XML.
Очевидно, что сервлет объявляется с помощью элемента и его дочерних элементов, указывающих описательное имя для него и задающих полное имя класса. Он настроен на обслуживание запросов с использованием элемента и его дочерних частей, указывающих имя, объявленного с помощью элемента и шаблон URL, который должен быть сопоставлен с сервлетом. Шаблон может быть точным совпадением каталога.
Выполнение компиляции
Перед выполнением компиляции убеждаются, что задана переменная среда PATH, включающая каталог JDK_HOMEbin, чтобы можно было получить доступ в строке команд и иметь доступный файл, который, обычно, предоставляется контейнером сервлета.
При использовании Томкат файл помещается в TOMCAT_HOMElib и называется. Открывают служебную программу командной строки операционной системы и изменяют рабочий каталог на QuickServlet, как указано в структуре. Вводят следующую команду: javac -cp TOMCAT_HOME lib servlet-api.jar "-d CLASS_DIR SRC_DIR QuickServlet.java.
Заменяют имена TOMCAT.HOME, CLASS_DIR и SRC_DIR на значения: TOMCAT_HOME. Это установочный каталог на компьютере в программной папке. Если путь содержит пробелы, помещают его следующим образом: CLASS_DIR =WebContent WEB-INF classes SRC_DIR =src net codejava servlet.
Вам будет интересно:Загрузка Adobe Flash Player. Особенности установки онлайн и офлайн версий
Эта команда скомпилирует файл QuickServlet.java и разместит сгенерированный .class в WebContent WEB-INF classes.
Упаковка веб-приложения
Стандартный способ развертывания приложения Java EE заключается в его упаковке с расширением WAR. В командной строчке вводят команду, обязательно в конце указывается точка:
- jarcfvdeployQuickServletApp.war -C WebContent.
Программа jar поместит все в каталог в один архив zip-формата под названием Quick.ServletApp.war под каталогом. Теперь разворачивают файл Quick.ServletApp.war на сервере, копируют его в каталог Tomcat. Запускают программу, выполнив Tomcat 7.exe в каталоге. После входа в консоль видно, что файл Quick.ServletApp.war развернут и сервер прослушивает номер порта 8080.
Тестирование QuickServletApp
Теперь открывают веб-браузер и вводят следующий текст в адресную строку: HTTP: // локальный: 8080 / QuickServletApp. Поскольку не указывается конкретная страница, поэтому по умолчанию index.jsp загружается самостоятельно.
Чтобы проверить сервлет с запросом HTTP GET, нажимают на гиперссылку «Нажмите здесь, чтобы отправить запрос GET». Чтобы проверить его с запросом HTTP POST, нажимают кнопку возврата браузера и вводят два числа в ширину и высоту текстовых полей. Нажимают кнопку «Вычислить», и он вернет вычисленную область в результат.
Примеры Tomcat
Сервлет - это веб-компонент Java, управляемый своим контейнером, например, Tomcat, который генерирует динамический контент в ответ на запрос клиента. Контейнер или сервлет-движок является расширением веб-сервера, которое обеспечивает функциональность сервлета. Контейнер содержит и управляет сервлетами на протяжении всего жизненного цикла.
Servlet интерфейс - центральная абстракция API Java. HttpServlet - наиболее распространенный сервлет, который обрабатывает HTTP-запросы, является подклассом, GenericServlet, реализующий Servlet интерфейс. Servlet Интерфейс самостоятельно объявляет эти abstract методы.
Жизненный цикл сервлета: voidinit (настройка Servlet.Config) voiddestroy () voidservice (запрос Java Servlet request, ответ Servlet.Response)
Конфигурация сервлета и информация: Servlet.Config getServlet.Config () Строка getServlet.Info ().
Функции сервера Java
JSP - еще один эффективный способ создания динамического веб-контента с использованием Java. Самый простой способ объяснить разницу между ними - это признать, что сервлет - это HTML на Java, а JSP - Java в HTML. Оба метода эффективны и могут использоваться независимо, но есть несколько отличий:
Хотя автономные Java-приложения, достигли пика популярности несколько лет назад, но динамический веб-контент, построенный на технологии Java, по-прежнему пользуется большим спросом у компаний во всем мире.
Если пользователь в настоящее время не использует Java Servlets для создания динамического контента, он упускает интересное поле с неограниченными возможностями для карьерного роста.