Робота з Сервлетами для чайників. 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-коді.
Ви можете допомогти і перевести трохи коштів на розвиток сайту