Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Web-приложение на Java

Замечание 1

Web-приложение на Java — это специальная программа, написанная на языке программирования Java и основанная на принципе работы по типу клиент-сервис.

Введение

Было время, когда язык программирования Java смог существенно укрепить свои позиции благодаря тому, что его разработчики выбрали в качестве приоритетного направления web-приложения. Изначально создатели Java все время пытались найти свой путь. В начале были предложены апплеты, которые смогли предоставить целый набор возможностей разработчикам, занимающихся созданием динамического контента, то есть, содержимого, на статических HTML страницах. Тем не менее апплеты не смогли оправдать ожиданий по целому ряду причин, таких как, обеспечение безопасности, накладные расходы и другие.

Тогда разработчиками языка Java была предложена альтернатива в виде Servlet API, которая оказалась правильным решением. Servlet API является спецификацией, на которой может быть создано любое web-приложение на языке Java. Это может быть приложение с web-интерфейсом или web-сервис, возвращающий информацию в соответствии с поступившим запросом. Это означает, что для понимания работы web-приложений на Java следует прежде всего изучить Servlet API.

Web-приложение на Java

Servlet API представляет собой web-компонент, который основан на Java-технологии и способен создавать динамический контент, то есть, содержимое. Фразу «основан на Java-технологии» следует понимать так, что Servlet является классом Java, который скомпилирован в байт-код.

Сервлеты должны управляться контейнером сервлетов, который иногда называют Servlet Engine. Сервлет контейнер является расширением web-сервера, предоставляющим функциональность сервлетов. В свою очередь сервлеты способны обеспечить взаимодействие с клиентом по типу запрос и ответ, которое и осуществляется при помощи сервлет-контейнера.

«Web-приложение на Java» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Servlet Container является частью web-сервера или сервера приложений, который способен предоставить сетевые сервисы. Сетевые сервисы должны выполнять отправку запросы и ответов, формировать и обрабатывать MIME-based запросы и ответы. Помимо этого, сервлет контейнеры служат для управления жизненным циклом сервлетов, то есть, они определяют, когда их следует создать, удалить и тому подобное. Каждый сервлет контейнер обязан осуществлять поддержку протокола HTTP, для того чтобы получать запросы и отправлять ответы. MIME является стандартом и спецификацией, которая определяет, как следует кодировать информацию и форматировать сообщения, для того чтобы их можно было переслать по сети интернет.

Web-сервером является сервер, принимающий HTTP-запросы от клиентов и отправляющий им HTTP ответы (обычно вместе с HTML страницей, изображением, файлом или иными данными). Запрашиваемые ресурсы должны обозначаться URL-адресами. Одним из наиболее известных web-серверов с поддержкой Servlet API может считаться Apache Tomcat. Практически все web-серверы представляют собой сложные механизмы, состоящие из разных элементов, каждый из которых исполняет определенные функции. К примеру, Connectors:

  1. На входе имеются Connectors, то есть, коннекторы, которые осуществляют прием входящих запросов от клиентов.
  2. HTTP коннектор в Tomcat выполнен с использованием элемента «Coyote». Коннекторы должны принимать данные от клиентов и отсылать их далее в Tomcat Engine.
  3. Servlet Container, то есть, Tomcat Engine в свою очередь выполняет обработку полученных от клиентов запросов с помощью элемента «Catalina», который представляет собой сервлет контейнер.

Известны и другие web-серверы, которые поддерживают спецификацию Servlet API. К примеру, это «Jetty» или «Undertow». Их архитектурная организация аналогична, поэтому если понять принцип работы с одним сервлет контейнером, то можно переключаться на работу с другим.

Web application, то есть, web-приложением, является совокупность сервлетов, HTML страниц, классов и иных ресурсов, составляющих законченное приложение на web-сервере. Web-приложение может быть заархивировано в Web ARchive, то есть, в архив, имеющий расширение WAR.

Работу с современными Java-приложениями уже нельзя представить без применения систем автоматической сборки проектов. Наиболее известными системами считаются Maven и Gradle. Для того чтобы создать новое приложение можно использовать, например, встроенный в Gradle плагин «Build Init Plugin». Для формирования Java-приложения следует задать следующую команду:

gradle init --type java-application

После того как создан проект, может потребоваться отредактировать файл build.gradle. Это так называемый Build Script. В этом файле описано, каким образом нужно осуществлять сборку проекта и другие особенности работы с Java проектом.

В блоке plugins описано, какие именно «Gradle плагины» следует применять для текущего Gradle проекта. Плагины способны расширить возможности создаваемого проекта. К примеру, по умолчанию используется плагин «java», который должен всегда использоваться, если пользователю требуется поддержка Java. Таким образом, можно указать следующие плагины:

plugins {

id 'java'

id 'war'

}

Так же в «War Plugin Default Settings» указывается, что каталог со всем содержанием web-приложения должен быть «src/main/webapp», там должен находиться тот самый каталог WEB-INF, в котором располагается web.xml.

Выполним создание такого файла. В блоке «dependencies» следует указать зависимости формируемого проекта, то есть, те библиотеки, без которых не сможет функционировать создаваемое приложение. В данном случае, поскольку формируется web-приложение, то оно не может работать без Servlet API:

dependencies {

providedCompile 'javax.servlet:javax.servlet-api:3.1.0'

testCompile 'junit:junit:4.12'

}

ProvidedCompile сообщает о том, что зависимость не следует включать в создаваемый WAR архив web-приложения, поскольку она требуется только для компиляции.

Дата написания статьи: 30.11.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot