java – Jetty authentication architecture – Stack Overflow

Почему пристань?

Ну, потому что он намного быстрее, чем обычно используемый нами Websphere AS, и он действительно хорошо поддерживает быструю (или, скажем так, гибкую :-)) разработку благодаря быстрому изменению. И потому что это просто круто печатать

2 Что можно настроить в Jetty

В этом разделе будет представлена ​​наиболее часто используемая конфигурация Jetty.

2.1 Основные примеры применения

Стандартное приложение Jetty, есть папка demo-base, вы не можете запустить Jetty под $ JETTY_HOME, выполните следующую команду в папке demo-base:

> cd $JETTY_HOME/demo-base/
> java -jar $JETTY_HOME/start.jar

Успешная операция выдаст следующую информацию:

1.2 Введение в проект Jetty

Введение во все лучшие каталоги Jetty:

Таблица 2.1. Содержание

LocationDescription

license-eplv10-aslv20.html

Файл лицензии Jetty

README.txt

Полезная стартовая информация

VERSION.txt

Информация о версии

bin/

Скрипт оболочки хранится в системе Unix

demo-base/

Базовый каталог серверов Jetty, на котором можно запускать примеры веб-приложений.

etc/

Конфигурационный файл Jetty

lib/

Jar-файлы, необходимые для запуска Jetty

logs/

журнал

modules/

Различные модули

notice.html

Лицензионная информация и др.

resources/

Содержит новые файлы конфигурации, добавленные в classpath, такие как log4j.properties

start.ini

Хранить информацию о запуске

start.jar

Jar работает Jetty

webapps/

Каталог для хранения веб-приложений Jetty, работающих в конфигурации по умолчанию

Создание основного класса

Основной класс приложения будет содержать функцию main – так называемую точку входа, с которой начинается работа программы. Функция main включит инициализацию, настройку и запуск встроенного сервера Jetty.

Для создания основного класса приложения кликнем правой кнопкой на наименовании проекта в панели Project Explorer, в контекстном меню выберем New и далее Class. В название класса введём Main. Установим флажок для создания статической функции main и кликнем кнопку Finish.

Так же как и в случае сервлета создаётся и открывается в текстовом редакторе соответствующий файл.

2 Как выбрать версию Jetty

Jetty9 является последней версией Jetty и значительно улучшена по сравнению с предыдущей версией. Одним из улучшений является то, что все функции Jetty были отражены в документации Jetty9. Поэтому для многих пользователей, использующих старую версию Jetty, мы рекомендуем использовать Jetty9, и мы также сказали, что будем активно поддерживать эту версию в течение следующих нескольких лет.

Таблица 1.1 Версия Jetty

3 Веб-спецификации Jetty и Java EE

Спецификация Java EE, реализованная Jetty, в основном является спецификацией сервлета. Последняя платформа Java EE представляет новую веб-спецификацию. Рекомендуется, чтобы разработчикам была нужна только часть большинства технологий. Тем не менее, Jetty не реализует все технологии, указанные в спецификации Web, Jetty спроектирован как контейнер и может свободно расширять нужные функции с помощью плагинов.

3.1 Веб-спецификация Java EE 7

В спецификации Java EE7 были обновлены некоторые важные функции и добавлены некоторые новые:

Таблица 1.2 Веб-профиль JavaEE7

JSRИмяВключает ли Jetty-9.1.xПлагин поддержки

JSR 340

Servlet Specification API 3.1

Yes

 

JSR 344

Java Server Faces 2.2 (JSF)

No

Yes, Mojarra or MyFaces

JSR 245 / JSR 341

Java Server Pages 2.3/Java Expression Language 3.0 (JSP/EL)

Yes

Yes

JSR 52

Java Standard Tag Library 1.2 (JSTL)

Yes

Yes

JSR 45

Debugging Support for Other Languages 1.0

Yes (via JSP)

Yes (via JSP)

JSR 346

Contexts and Dependency Injection for the 

JavaEE Platform 1.1 (Web Beans)

No

Yes, Weld

JSR 330

Dependency Injection for Java 1.0

No

Yes as part of a CDI implementation, Weld

JSR 316

Managed Beans 1.0

No

Yes, as part of another technology

JSR 345

Enterprise JavaBeans 3.2 Lite

No

 

JSR 338

Java Persistance 2.1 (JPA)

No

Yes, eg Hibernate

JSR 250

Common Annotations for the Java Platform 1.2

Yes

Partially (for non-core Servlet Spec annotations)

JSR 907

Java Transaction API 1.2 (JTA)

Yes

Yes

JSR 349

Bean Validation 1.1

No

Yes as part of another technology eg JSF, or 

a stand-alone implementation such as Hiberate Validator

JSR 339

Java API for RESTful Web Services 2.0 (JAX-RS)

No

 

JSR 356

Java API for Websocket 1.0

Yes

No

JSR 353

Java API for JSON Processing 1.0 (JSON-P)

No

Yes, eg JSON-P reference implementation

JSR 318

Interceptors 1.2

No

Yes as part of a CDI implementation

3.2 Jetty EE 6 Web Profile

Ниже описывается веб-профиль JavaEE6 и его связь с Jetty

Таблица 1.3 Веб-профиль Java EE 6

JSRNameIncluded with jetty-9.0.xPluggable

JSR 315

Servlet Specification API 3.0

Yes

 

JSR 314

JavaServer Faces 2.0 (JSF)

No

Yes, for example, Mojarra or MyFaces

JSR 245

JavaServer Pages 2.2/Java Expression

Language 2.2 (JSP/EL)

Yes

Yes

JSR 52

Java Standard Tag Library 1.2 (JSTL)

Yes

Yes

JSR 45

Debugging Support for Other Languages 1.0

Yes (via JSP)

Yes (via JSP)

JSR 299

Contexts and Dependency Injection for

the Java EE Platform 1.0 (Web Beans)

No

Yes, Weld or OpenWebBeans

JSR 330

Dependency Injection for Java 1.0

No

Yes as part of a CDI implementation, Weld

JSR 316

Managed Beans 1.0

No

Yes, as part of another technology.

JSR 318

Enterprise JavaBeans 3.1

No

Yes, OpenEJB

JSR 317

Java Persistance 2.0 (JPA)

No

Yes, Hibernate

JSR 250

Common Annotations for the Java Platform

Yes

Partially (for non-core Servlet Spec annotations)

JSR 907

Java Transaction API (JTA)

Yes

Implementations are pluggable, such as Atomikos, JOTM, 

Jencks (Geronimo Transaction Manager)

JSR 303

Bean Validation 1.0

No

Yes as part of another technology (JSF), or a stand-alone 

implementation such as Hiberate Validator

4.1 Maven координаты

Jetty находится в центре Maven с самого начала, поэтому координаты Maven также изменились в последние годы. Когда Jetty управляется на основе SourceForge, Maven’s groupId равен org.mortbay.jetty. Когда Jetty 7 приходит к затмению, groupId изменилось.

Похожее:  Не работает почта Gmail: почему и что делать?

POM координаты Jetty являются следующими

4.2 Обновление журнала в Maven Center

Журналы обновлений Jetty разных версий записываются в файл с именем VERSIONS.txt, который также можно найти в Центре Maven, координаты которого следующие

2 Запустить причал

Выполните следующий код, Jetty будет работать на порту по умолчанию 8080

cd $JETTY_HOME
java -jar start.jar

Если выполнение выполнено успешно, будет выведена следующая информация

2.2 Создать новый базовый каталог Jetty

Каталог demo-base – это базовый каталог jetty.base, недавно добавленный в версию Jetty 9.1. Базовый каталог Jetty позволяет отдельно развертывать конфигурацию и веб-приложения, что упрощает обновление системы. Конфигурация Jetty по умолчанию основана на двух свойствах:

jetty.home: это свойство определяет путь к Jetty, пакет jar, модуль по умолчанию и конфигурацию xml по умолчанию (обычно start.jar, lib и т. д.)

jetty.base: этот атрибут представляет путь к определенному приложению-службе Jetty, включая его журналы, конфигурацию и веб-приложения (обычно start.ini, start.d, logs и webapps)

2.6 Дополнительные параметры работы start.jar

Работа start.jar используется для перевода содержимого командной строки. Каталоги start.ini и start.d (включая файлы * .ini) генерируют среду classpath. Различные атрибуты и конфигурации могут быть настроены с использованием соответствующего XML-файла Jetty. Дополнительные методы использования могут быть использованы с помощью команд.

> java -jar $JETTY_HOME/start.jar --help

3 Развертывание веб-приложений

Jetty поддерживает горячее развертывание и может автоматически развертывать элементы в каталоге веб-приложений. Стандартный файл war и файл конфигурации Jetty находятся в каталоге webapps, а горячее развертывание выполняется по следующим правилам

3.1 Пример веб-приложения Jetty

Проект в файле demo-base / webapps содержит следующее развертывание и дополнительные файлы:

ROOT /: эта папка содержит различные статические ресурсы. Содержит страницу приветствия Jetty, путь доступа по умолчанию – /

test.d: папка, содержащая дополнительные файлы конфигурации, используемая test.xml для добавления дополнительной конфигурации для test.war

test.xml: файл конфигурации контекста, используемый для настройки и развертывания test.war, включая дополнительную информацию о конфигурации в контексте и конфигурацию в test.d

test.war: образец веб-программы, настроенный в test.xml

async-rest.war: пример асинхронного веб-приложения

test-jaas.war: веб-приложение, использующее аутентификацию JAAS.

test-jaas.xml: файл конфигурации, используемый для настройки test-jaas.war

test-jndi.war: пример приложения с использованием JNDI

test-jndi.xml: файл конфигурации, используемый для настройки test-jndi.war

test-spec.war: пример приложения, использующего аннотации, спецификации ServletContainerInitializer и Servlet 3.0 / 3.1

test-spec.xml: файл конфигурации, используемый для настройки test-spec.war

xref-proxy.war: пример приложения, использующего прокси

example-Move.xml: пример приложения, которое демонстрирует использование перенаправления MovedContextHandler

1.1 Конфигурация Jetty POJO

Основным компонентом Jetty является POJO (простые старые объекты Java). Процесс настройки Jetty – это процесс создания и настройки POJO Jetty, который может быть реализован следующим образом:

  • Напишите Java-код для непосредственного создания и настройки объекта Jetty, который называется встроенным Jetty.
  • Используйте xml-файл конфигурации Jetty, который является режимом фреймворка управления, создайте экземпляр объекта Jetty из xml-файла. Файл конфигурации etc / jetty.xml является основным файлом конфигурации Jetty, но есть также много файлов типа etc / jetty -__ feature __. Xml, используемых Jetty
  • Используйте стороннюю платформу IOC, такую ​​как Spring, для создания экземпляра объекта Jetty в виде Spring Beans

Поскольку основным методом настройки Jetty является IoC, этот документ в основном представляет этот метод.

1.2 Файл конфигурации запуска Jetty

Jetty использует следующий файл конфигурации для создания экземпляра и запуска службы, обработанной start.jar

ini files:

Принцип запуска Jetty использует командную строку и использует файлы $ JETTY_BASE / start.ini и $ JETTY_BASE / start.d / *. Ini для создания допустимого параметра команды следующим образом:

  • Активный модуль — модуль = имя
  • Используйте name = значение для настройки свойств для IOC Jetty
  • XML files in Jetty IoC (or Spring) XML format
  • Стандартный файл свойств Java содержит дополнительные свойства запуска
  • Другие параметры start.jar (см. Java -jar start.jar –help)
  • Некоторые комбинации параметров JVM передаются через –exec, например -Xbootclasspath.

Подсказка

В Jetty9 редактируется только файл конфигурации под базовым путем Jetty, свойства будут изменены

mod files:

Файл $ JETTY_HOME / modules / *. Mod содержит определение каждого модуля, который может быть активирован командой –module = name, и каждый файл мода определяет:

  • Модуль зависит от того, как сортировать и активировать
  • Пакет jar, необходимый модулю и пути к классам
  • XML-файл, необходимый модулю, и содержимое будет выполнено
  • Файлы, необходимые для активированного модуля
  • Пример ini-файла, используемый при активации опции -add-to-start = name

Note

Общая информация о конфигурации модуля редко изменяется. * .Mod файлы обычно находятся в папке $ JETTY_HOME / modules /, но дополнительные или отредактированные файлы обычно помещаются в $ JETTY_BASE / module. Если модуль должен быть Изменить, лучший способ – скопировать * .mod из $ JETTY_HOME / modules / в $ JETTY_BASE / modules / перед изменением

XML files:  

XML-файл обычно используется с IoC и пружиной, используемыми в командной строке или определении модуля. Конфигурация в xml-файле будет внедрена в объект, описывающий сервис. Обычный способ изменить атрибуты – изменить соответствующий INI-файл. XML-файл обычно помещается в $ JETTY_HOME / etc /, но новый или отредактированный xml должен быть помещен в $ JETTY_BASE / etc /.

На следующем рисунке показана взаимосвязь между различными файлами конфигурации (ini, mod и XML).

1.3 Другие файлы конфигурации

В дополнение к файлам конфигурации, описанным выше, информация о конфигурации службы может использовать следующие файлы:

Context XML files:

1.4 Использование Jetty IoC XML

Чтобы понять использование Jetty IOC XML, как показано в следующем примере Java, экземпляр и конфигурация встроенного сервера Jetty

2.1 Сервис конфигурации

Экземпляр сервера является важной частью службы Jetty, он предоставляет службы и управление жизненным циклом для других компонентов Jetty. В стандартных приложениях Jetty информация о конфигурации ядра находится в файле etc / jetty.xml, но вы также можете добавить другие конфигурации в файл конфигурации, в том числе:

Похожее:  Онлайн-запись на прием в инспекцию | ФНС России

ThreadPool:

Экземпляр сервера предоставляет экземпляр ThreadPool по умолчанию для вызова других компонентов. Основными параметрами для настройки пула потоков являются максимальное и минимальное количество параметров, заданных в файле start.ini или файле start.d / server.ini.

Handlers:

2.3 Настройка контекста

Среда Jetty содержит набор процессоров для обработки запросов по указанным путям. Среда Jetty может содержать стандартные процессоры и пользовательские процессоры.

Note

Спецификация сервлета определяет веб-приложение. В спецификации Jetty стандартный веб-проект должен иметь стандартный файл WEB-INF / web.xml, который используется для настройки пути к классам, ресурсов, обработки сеанса, входа в систему и сервлета, jsp и статических ресурсов. Стандартные веб-приложения требуют несколько дополнительных файлов конфигурации.

Конфигурация общего контекста:

contextPath:

ContextPath – это префикс URL-адреса. Например, contextPath – это / foo, он будет обрабатывать такие запросы, как / foo, /foo/index.html, / foo / bar / и /foo/bar/image.png, но он не будет обрабатывать такие запросы, как /, / other /, или /favicon.ico запрашивает, если contextPath равен /, это корневой contextPath.

virtualHost:

  Настройте ip или имя хоста мониторинга, никакая конфигурация не будет отслеживаться.

classPath:

  Настройте classpath. Стандартными classpath являются WEB-INF / lib и WEB-INF / classes. Вы также можете добавить дополнительные пути к classpath.

attributes:

  Свойства конфигурации могут быть переданы в класс сущности, такой как свойство javax.servlet.context.tempdir, используемое для настройки временного каталога.

resourceBase:

  Конфигурировать ресурсы. Эта конфигурация представляет собой каталог, содержащий различную статическую информацию о ресурсах, которая может представлять собой изображения или HTML-страницы.

3.2.3.1 Настройка контекста через API

Во встроенном сервере пользователи могут настраивать контекст с помощью API ContextHandler, например:

2.4 Настройка веб-приложений

Спецификация сервлета определяет веб-приложение. Когда вызов упакован в файл WAR (архив веб-приложения), Jetty настраивается следующим образом:

  • Инициализируйте путь к классам в WEB-INF / lib и WEB-INF / classes.
  • Согласно стандарту WEB-INF / web.xml для анализа параметров инициализации, фильтров, прослушивателей, страницы приветствия и другой информации.
  • Файл WEB-INF / jetty-web.xml может содержать конфигурацию Jetty IoC.

3.2.4.1 Настройка contextpath

Можно добавить файл WEB-INF / jetty-web.xml для настройки пути к классам.

Jetty authentication architecture

This question is hard to answer as its very open ended / vague.

I’ll try the simple answer first.

First, the basics, what’s provided by the JVM:

Now the Jetty specifics:

Finally, how it ties together:

Во-вторых, использование jetty

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

Добавление импортируемых модулей

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

Добавление кода в метод doget


Метод doGet содержит код обработки GET–запросов. В этом методе последовательно добавим приведённые ниже фрагменты кода.

Приём параметров в соответствующие строковые переменные.

String str_a = request.getParameter("a");
String str_b = request.getParameter("b");
String str_op = request.getParameter("op");		

Объявление переменных для принятия декодированных из строковых переменных числовых параметров a и b.

double value_a = 0;
double value_b = 0;


Объявление переменной контроля возникновения ошибки noError.

boolean noError = true;

Попытка декодирования числовых параметров a и b из соответствующих строковых переменных. При ошибке декодирования переменная noError принимает значение “ложь”.

try {
	value_a = Double.parseDouble(str_a);
	value_b = Double.parseDouble(str_b);
}
catch ( Exception ex ) {
	noError = false;
}

Открытие секции кода для случая, если при декодировании числовых параметров ошибка не возникла.

if ( noError ) {

Объявление числовой переменной result для хранения результата.

double result = 0;


Открытие секции try для включения кода вычисления и контроля ошибок. Секция необходима, так как при арифметических операциях может возникнуть ошибка операции с плавающей запятой.

try {

Для случая операции сложения, вызываем функцию functionSum, которую опишем позднее.

if (str_op.equals(" ")) result = functionSum( value_a, value_b );
else

Для случая операции вычитания, вызываем функцию functionDif, которую опишем позднее.

if (str_op.equals("-")) result = functionDif( value_a, value_b );
else


Для случая операции умножения, вызываем функцию functionMul, которую опишем позднее.

if (str_op.equals("*")) result = functionMul( value_a, value_b );
else

Для случая операции деления, вызываем функцию functionDiv, которую опишем позднее. Так как для типа double ошибка деления на ноль на современных платформах не возникает, ситуацию в которой делитель равен нулю мы контролируем вручную.

if (str_op.equals("/") && (value_b!=0)) result = functionDiv( value_a, value_b );
else

После проверки всех четырёх операций устанавливаем флажок отсутствия ошибки в “ложь”. Это делается для идентификации того, что арифметическая операция не идентифицирована.

noError = false;

Закрываем блок try с установлением флажка отсутствия ошибки в “ложь” в случае возникновения исключительной ситуации.

}
catch ( Exception ex ) {
	noError = false;
}


В случае если ошибки не возникло, отсылаем результат методом doSetResult, который опишем ниже. Так как работа метода doGet на этом завершается, возвращаемся оператором return.

if ( noError ) {
	doSetResult( response, result );
	return;
}

Закрываем секцию, начатую оператором “if ( noError ) {“:

}

Так как при обработке запроса где-то произошла ошибка и функция doGet не возвратила управление с успешным вычислением, возвращаем сообщение об ошибке методом doSetError, который опишем ниже.

doSetError( response );

Добавление кода в метод main


Код метода main начинается с объявления переменной port и присваивания ей номера порта, который будет слушать сервер. Такой подход позволит быстро и легко изменить порт в случае необходимости в случае дальнейшего роста программы.

int port = 8080;

Создаем класс сервера.

Server server = new Server(port);

Указываем параметры, которые свяжут путь строки запроса с созданным выше сервлетом.

Похожее:  100 FREE HTML5 CSS3 Sign-in Registration Forms

Добавление ссылки на библиотеку jetty

Сразу после создания проект не содержит ссылку на библиотеку jetty. Подключённые библиотеки можно просмотреть в

Project Explorer

во вкладке

Java Resources

, в под-вкладке

Libraries

Кликнем правой кнопкой мыши на метку проекта и в контекстном меню выберем Build Path и далее Configure Build Path…. Во вкладке Java Build Path на страничке Libraries кликнем кнопку Add Library….

Задача

Рассмотрим создание калькулятора как веб-службу, реализующую простые арифметические действия с двумя числами. Веб-службу можно рассматривать так же как и удалённую функцию, принимающую входные параметры и выдающую результат. Поэтому её функциональность можно описать следующим образом:

Входные параметры:

Выходные параметры:

Запуск сервера

При запуске сервера Eclipse может предложить два варианта. Так как сервер содержит полноценный сервлет, то программа может быть запущена на сервере приложений, таком как к примеру Tomcat или самостоятельный Jetty. Однако так как мы встроили jetty в приложение, оно может работать самостоятельно – как Java Application.

После запуска приложение выдаёт соответствующие уведомления и строку Listening port: port, указывающую что наш сервер запущен и ждёт запросов.

Клиент – веб страница

Специализированная веб страница – простой тип клиентского приложения.

HTML код страницы можно найти в репозитории GitHub.

Клиенты сервера


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

Междоменные запросы

Междоменные запросы ( также такие запросы называются кроссдоменными / cross domain ) имеют место при запросах с веб страниц, расположенных вне сетевого домена обслуживающего сервера. Ответы на подобные запросы обычно блокируются для противостояния меж-доменным атакам. Для отключения блокировки в ответах сервера можно установить заголовок Access-Control-Allow-Origin:*.

Методы реализации арифметических операций

Архитектура рассматриваемого простого примера подразумевает разделение кода на функциональные части. Ввиду этого арифметические операции реализованы в виде отдельных функций, а не включены в тело метода doGet. Так как функции простые, их код комментировать не будем.

protected double functionSum( double a, double b ) {
	return a   b;
}

protected double functionDif( double a, double b ) {
	return a - b;
}

protected double functionMul( double a, double b ) {
	return a * b;
}

protected double functionDiv( double a, double b ) {
	return a / b;
}


Исходный код программы можно найти в

Настройка проекта

Общая конфигурация

Вам нужно добавить плагин Jetty в ваш pom.xml :

Определение источника данных

Предположим, что приложение использует источник данных, настроенный на сервере, и получает к нему обычный доступ через JNDI. Затем мы должны определить ссылку на источник данных в src / main / webapp / WEB-INF / web.xml :

Подсказка

В Jetty9 редактируется только файл конфигурации под базовым путем Jetty, свойства будут изменены

Посылка запросов посредством браузера

Наиболее простой способ проверить функциональность сервера – обратиться к нему посредством браузера.

Предупреждение

Пример веб-приложения не обязательно является абсолютно безопасным, поэтому его не следует развертывать в производственной среде.

Пример запроса/ответа – ошибка «деление на 0»


Запрос:

Пример запроса/ответа – ошибка «неверный формат числа»

Запрос:

Пример запроса/ответа — произведение

Запрос:

Пример запроса/ответа — разность


Запрос:

Пример запроса/ответа — сумма

Запрос:

Пример запроса/ответа — частное

Запрос:

Создание запускаемого модуля

Созданный сервер можно оформить как единый независимый запускаемый JAR-файл. Такой файл будет требовать только наличия установленной среды выполнения Java и запускаться из любой папки файловой системы. Для создания такого файла кликнем правой кнопкой мыши на наименовании проекта в панели

Project Explorer

, в контекстном меню выберем

Export

и далее

Export…

. В секции

Java

выберем

Runnable JAR file

и кликнем кнопку

Next

В настройках создаваемого JAR-файла указываем Launch configuration как Main-SCalculator, полное имя экспортируемого файла и флажок упаковки необходимых модулей в этот файл.

Запуск правильно созданного JAR-файла с именем SCalculator осуществляется простой командой (при запуске из той же папки, где он находится):

java -jar SCalculator.jar

Также возможен запуск сервера двойным кликом мыши на JAR-файле.

Создание проекта веб сервера


В меню

File/New

выберем

Dynamic Web Project

. В поле

Project

name введём SCalculator. Нажмём кнопку

Finish

Создание файла сервлета


Сервлет калькулятора будет содержать весь код декодирования входных данных, вычисления, и формирования ответа. Для создания сервлета кликнем правой кнопкой мыши на наименование проекта в панели

Project Explorer

, в контекстном меню выберем

New

и далее

Servlet

. В название класса введём SrvltCalculator и кликнем кнопку

Finish

В панели Project Explorer можно увидеть созданный файл SrvltCalculator.java. Его содержимое автоматически открывается в редакторе.

Ссылки

Подробнее о встраивании Jetty в приложение можно почитать по ссылке

Удаление лишнего кода

Для упрощения дальнейшего редактирования файлов удалим неиспользуемые конструктор сервлета SrvltCalculator и метод doPost.

Установка библиотек jetty

Jetty очень удобен для создания веб приложений. Использование его как встроенного сервера освобождает разработчика от развёртывания веб приложения на внешний сервер при каждом запуске. Также это не требует установку внешнего сервера приложений.

Для большинства случаев достаточно загрузить библиотеки сервера, зарегистрировать их в Eclipse как библиотеку пользователя и далее использовать ссылку на эту библиотеку. Этот подход прост для начинающих Java программистов так как не требует наличия и навыков инструментария автоматизации сборки, такого как Maven или Gradle.

Установить необходимые библиотеки Jetty в Eclipse можно следующим образом:

Итоги

Многие описанные в этом выпуске элементы были практически использованы при создании высоконагруженных серверов. Несомненно были использованы и более продвинутые приёмы, позволившие достигнуть высокого быстродействия и надёжности, такие как использование сервера NGINX в режиме обратного прокси.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector