THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Java Servlet - це програма на стороні сервера, написана на однойменному мовою програмування, яка отримує сигнали клієнта і відправляє йому відповіді назад. Це ключовий елемент, який формує типове Java EE, крім JSP, EJB, XML і інших пов'язаних технологій. Додаток може бути упаковано в файл WAR (Web AR chive) для розгортання на веб-сервері. Сервер, який може запускати Java-сервлет, називається контейнером. Програма, яка запускається на такому сервері може створювати динамічні веб-сторінки.

Java Servlet: основи

Найпопулярнішими і широко використовуваними контейнерами є Tomcat і JBoss. Технічно сервлет - це нормальний Java-клас, який має розширення для загального клієнт-серверного протоколу або HTTP. На практиці він застосовується для обробки запитів, через перевизначення HttpServlet GET і POST відповідно. Контейнер Java Servlet надає Http.ServletRequest і Http.ServletResponse - об'єкти, що працюють за схемою запит-відповідь. І зазвичай використовується в поєднанні з JSP для генерації динамічного контенту.

Типовий сценарій моделі:

  • JSP представляє користувачеві форму для введення даних.
  • Сервлет отримує вхідні дані, обробляє їх і відправляє відповідь.
  • Для якісної роботи він використовує спеціальні фільтри.
  • Java Servlet Filters - це спільні компоненти Java, які використовуються для перехоплення і обробки запитів до їх відправки сервлетам і відповіді після завершення його коду, і до того, як контейнер відправить відповідь клієнту.

    Загальні завдання, які виконують з фільтрами:

  • Реєстрування параметрів запиту для реєстрації файлів.
  • Аутентифікація і авторизація запиту ресурсів.
  • Форматування тіла запиту або заголовка перед відправкою його на сервлет.
  • Стиснення даних відповіді, відправлених клієнту.
  • Зміна відповіді, додавання деякі файлів cookie.
  • Інформація заголовка Java Servlet.
  • Фільтри підключаються і настроюються у файлі дескриптора розгортання (web.xml). Сервлети і фільтри не знають один про одного, тому можна додати або видалити фільтр, просто відредагувавши web.xml. Допускається мати кілька фільтрів для одного ресурсу або створити ланцюжок фільтрів для web.xml або запустити Java Servlet filters, реалізуючи javax.servlet.Filter інтерфейс.

    Паралельні запити на сервер обробляються потоками, що забезпечує важливі якості веб - многопоточность і паралелізм.

    Основні функції:

  • Портативність. Оскільки Java незалежна від платформи, те ж саме вірно і для сервлетів. Наприклад, можна створити його в операційній системі Windows, щоб розробники GlassFish використовували його в якості веб-сервера, а потім могли запустити його в будь-який інший ОС, такий як Unix, Linux з веб-сервером apache Java Servlet. Ця функція робить його стерпним, і це головна його перевага над CGI.
  • Ефективність і масштабованість. Як тільки Servlet розгортається і завантажується на веб-сервер, він може миттєво почати виконання запитів клієнтів. Він викликається легким потоком, тому кілька клієнтських запитів можуть заповнюватися одночасно, використовуючи функцію багатопоточності Java. На відміну від CGI, де сервер ініціює новий процес для кожного запиту клієнта.
  • Надійність. Наслідуючи верхні функції Java такі, як збір сміття, обробка виключень, диспетчер безпеки Java та інші, він менш схильний до проблем з управлінням і витокам пам'яті. Це робить розробку програми в ньому безпечної і безпомилкової.
  • Необхідність застосування динамічних веб-сторінок

    Існує чимало причин, за якими бізнес хотів би створювати динамічні веб-сторінки «на льоту», наприклад, коли дані на веб-сайті часто змінюються. Сайти новин і погоди зазвичай покладаються на CGI, щоб підтримувати свіжий контент, що не потребує постійної уваги розробників. Веб-сторінки електронної комерції, в яких перераховані поточні ціни і рівні запасів, використовують CGI для отримання цього контенту на вимогу, отримуючи його з внутрішньої інфраструктури компанії.

    Багато користувачів мають досвід використання технології Джава для створення веб-сервісів на базі CGI, але Java Servlets більш ефективні, могутніше, простіше у використанні і дешевше традиційних альтернатив CGI.

    Переваги Java Servlets:

  • Ефективність. У традиційному CGI кожен HTTP-запит запускає новий процес CGI. Навіть якщо його код відмінно реалізований, часто виникає значний обсяг накладних витрат не тільки при запуску процесу, а й під час його виконання. Коли використовуються сервлети, JVM залишається завантаженим в пам'яті, і кожен запит обробляється потоком Java. Як приклад Java Servlet, якщо в традиційній моделі CGI є кількість X одночасних запитів, це означає, що код для програми завантажується в пам'ять X раз. Це стає надмірним навантаженням на веб-сервер. Однак в середовищі сервлету є потоки X, де буде працювати тільки одна копія його класу. Результатом цього є підвищення ефективності і масштабованості на декількох платформах.
  • Зручність. При користуванні програмою, немає сенсу вивчати нову мову, наприклад, Perl, тільки для виконання функцій CGI. Крім того, сервлети мають велику інфраструктуру для багатьох завдань, пов'язаних з HTML, що значно прискорює процес розробки.
  • Потужність - на жаль, традиційні скрипти CGI залишають бажати кращого. Наприклад, звичайні їх програми не можуть безпосередньо розмовляти з веб-серверами, що означає, що необхідно створити весь інтерфейс. Сервлети можуть безпосередньо взаємодіяти з веб-серверами, спрощуючи операції, що вимагають прямого доступу до сховищ даних. Вони також унікальні, тому що можуть обмінюватися даними з іншими Сервлетами і підтримувати інформацію між запитами, що робить сеансовое відстеження надзвичайно простим.
  • Переносимість Джава поширюється безпосередньо на сервлети. Фактично майже кожен головний веб-сервер, який в даний час використовується, підтримує Java Servlets безпосередньо або через модуль.
  • Економність. З точки зору розробки, впровадження сервлетів набагато дешевше, ніж інші варіанти, які вимагають, щоб призначене для користувача кодування правильно взаємодіяв з веб-серверами. Java Servlet redirect готовий до роботи і може максимально знизити вартість бізнесу, не жертвуючи перевагами динамічного контенту.
  • Однією з найприємніших особливостей Java є її багатогранна природа. Звичайно, створення традиційних десктопних і навіть мобільних додатків - це здорово. Але що, якщо ви хочете піти з второваних доріжок і зайти на територію розробки web додатків на Java? Для вас є хороша новина: в комплекті з мовою йде повноцінний Servlet API, який дозволяє вам створювати надійні веб-додатки без особливого клопоту.

    Створення додатків на Java за допомогою Servlets

    Отже, ми вже створили конфігураційні файли програми. Однак в поточному стані воно буквально нічого не робить. Ми хочемо, щоб клієнти могли реєструватися за допомогою HTML-форми, тому наступне, що нам потрібно зробити, - це створити JSP-файли, які будуть відображати вищезгадану форму і дані клієнта після успішного завершення реєстрації. Цим ми зараз і займемося.

    Працюємо над зовнішнім виглядом

    Зовнішній вигляд програми буде визначатися двома JSP-файлами - в контексті MVC вони називаються уявленнями. Перший буде відповідати за відображення форми реєстрації та можливих помилок, викликаних після перевірки введених даних. Другий буде звичайною сторінкою вітання, в якій будуть показані дані, введені клієнтом, після успішного завершення процесу реєстрації.

    Ось перший JSP-файл:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Реєстрація

    Реєстрація

    $ (Violation).

    THE BELL

    Є ті, хто прочитали цю новину раніше вас.
    Підпишіться, щоб отримувати статті свіжими.
    Email
    ім'я
    Прізвище
    Як ви хочете читати The Bell
    без спаму