Робота з Сервлетами для чайників

Робота з Сервлетами для чайників. GET / POST +1

  • 01.08.17 08:20 •
  • xpendence •
  • # 334138 •
  • Хабрахабр •
  • Tutorial •
  • 6 •
  • 4000

- такий же як Forbes, тільки краще.

У минулій статті Створення сервлетів для чайників. Покрокове керівництво я описав, як створити сервлети і спробував пояснити, як це працює. У цій статті ми навчимо наші сервлети працювати з UI через HTTP-запити GET і POST.

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

  • простий об'єкт класу Bot, який матиме ім'я, серійний номер і id
  • сторінку, на яку ми будемо виводити дані об'єкта
  • сторінку, на якій ми будемо міняти дані об'єкта
  • сервлет, який буде обробляти відповідні запити

Створюємо Сінглтон-клас Bot з трьома полями, а також, Геттера, сетерами і перевантаженим toString ():


Помітимо сервлет в xml-документі web.xml:


Пишемо ось таку сторінку bot.jsp (поки просто копіюємо, потім розберемо):


Ця сторінка виводить нам дані бота.


обробляє аргумент «bot», при чому ми даємо зрозуміти, що це об'єкт класу Bot. $ І інші подібні - це змінні, які ми беремо з отриманого в аргументі об'єкта (це буде в сервлет).

Також, у нас буде сторінка, яка відправляє змінені дані бота (update.jsp):


Ми також отримуємо дані бота і вставляємо їх у поля, міняємо їх і відправляємо змінені дані в POST-запиті. Відзначимо, що POST-запит ініціюється через надсилання форми

Розберемо для наочності одне поле форми:


При натисканні кнопки Save всі введені дані будуть відправлені в метод doPost () нашого сервлету. У даній сходинці, ми задаємо новий id.

Ім'я атрибута форми: «id» (name = "id"), значення, яке ми передамо - поле id об'єкта bot ($), також, ми вносимо в поле наявне значення, отримане в атрибуті «bot» (placeholder = "$) .

Оскільки завданням цієї статті є опис роботи POST- і GET-запитів, я пояснюю сенс коду рядків побіжно. Більш докладно атрибути сторінок можна вивчити в Довіднику по HTML.

Ну і давайте додамо саму примітивну сторінку index.html, що містить єдину посилання на сторінку bot:


Ми закінчили з jsp / html і можемо перейти, нарешті, до мого улюбленого Java-коду.


Сервлет містить 3 методу: init (), doGet () і doPost ().

init () - викликається при першій ініціалізації сервлету і одного разу виконує написаний в ньому код. У нашому випадку, створюється екземпляр класу Bot.

doGet () - обробляє запит GET.

doPost () - обробляє запит POST.

Тепер ми по ланцюжку пройдемо логіку виконання програми та розберемо, що як працює.


- додаємо атрибут з об'єктом bot і ключем «bot» і відправляємо все це на сторінку /update.jsp

Метою статті є створення розуміння у початківців розробників JavaEE, як працюють запити в сервлетах і за якою логікою вибудовується робота з цими запитами в Java-коді.

Ви можете допомогти і перевести трохи коштів на розвиток сайту

Схожі статті