Java на стороні сервера. Глибоко про Servlet API та обробку HTTP запитів 🔥
Вставка
- Опубліковано 14 чер 2024
- 👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
Patreon: / bobocode
GitHub: github.com/bobocode-projects
Telegram: t.me/bobocode
LinkedIn: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
13-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Нарізка основних моментів
03:09 - Початок
03:30 - Платформи для бек-енд розробки
04:56 - Що таке Java EE (Jakarta EE)?
08:09 - Основні інструменти для типових задач
13:20 - Як порівнювати і вибирати технології?
17:06 - Що будуть використовувати в майбутньому?
18:00 - Сервлети
18:09 - Servlet API vs. Servlet Container
20:00 - Обробка HTTP запитів на Servlet API
22:46 - Обробка GET запиту
24:00 - Як задеплоїти код в Tomcat?
29:10 - Завдання 1: послати HTTP-запит вручну через Java сокет
32:18 - Як працює сервлет контейнер під капотом?
34:08 - Рішення до Завдання 1
37:39 - Як прочитати HTTP херед через Servet API?
38:58 - Завдання 2: додати до запиту хедер
42:26 - Рішення до Завдання 2
47:58 - Як створити сесію через Servlet API?
53:00 - 🔥 Завдання 3: вручну реалізувати логіку сесії при відправці HTTP запиту
58:32 - Рішення до Завдання 3
01:01:04 - Деталі роботи сесії в серветах
01:01:52 - Як прочитати cookie через Servlet API?
01:04:00 - Як додати cookie до відповіді?
01:09:32 - Як прочитати тіло POST запиту?
01:12:02 - HTTP клієнт в Intellij IDEA
01:18:42 - Для чого вчити Servlet API?
#opensource #java #education
👉 Навчання від Bobocode: bit.ly/3IRrJhj
Дякую за відео 😊 з нетерпінням чекаю на головне, на Спрінг.
00:00 - Нарізка основних моментів
03:09 - Початок
03:30 - Платформи для бек-енд розробки
04:56 - Що таке Java EE (Jakarta EE)?
08:09 - Основні інструменти для типових задач
13:20 - Як порівнювати і вибирати технології?
17:06 - Що будуть використовувати в майбутньому?
18:00 - Сервлети
18:09 - Servlet API vs. Servlet Container
20:00 - Обробка HTTP запитів на Servlet API
22:46 - Обробка GET запиту
24:00 - Як задеплоїти код в Tomcat?
29:10 - Завдання 1: послати HTTP-запит вручну через Java сокет
32:18 - Як працює сервлет контейнер під капотом?
34:08 - Рішення до Завдання 1
37:39 - Як прочитати HTTP херед через Servet API?
38:58 - Завдання 2: додати до запиту хедер
42:26 - Рішення до Завдання 2
47:58 - Як створити сесію через Servlet API?
53:00 - Завдання 3: вручну реалізувати логіку сесії при відправці HTTP запиту 🔥
58:32 - Рішення до Завдання 3
01:01:04 - Деталі роботи сесії в серветах
01:01:52 - Як прочитати cookie через Servlet API?
01:04:00 - Як додати cookie до відповіді?
01:09:32 - Як прочитати тіло POST запиту?
01:12:02 - HTTP клієнт в Intellij IDEA
01:18:42 - Для чого вчити Servlet API?
Дякую за відео!
Заняття дуже класне, позгадував старі часи, дякую)
Писав сервлети коли вони конфігурувалися в xml. ІМХО, не зовсім вдале АПІ: окрім HttpServlet великого розповсюдження не отримало, та й HttpServlet обгорнули і забули. Потоконебезпечні. Без сервлет контейнеру запустити неможливо, питання тестів відкрите. Абстракція, що request і response одразу мають у собі io виглядає як порушення принципів SOLID... Дуже багато складості( Замість бінес логіки думаєш чи є фільтр перед сервлетом. Але це основа сьогоднішньої Java.
Ідея, що веб сервер можна абстрагувати до функції HttpRequest -> HttpResponse без IO потім сильно травмує.
Декілька років тому також конфігурував через XML. Потрібно було зробити концігурацію проекту та змапувати в XML наші запроси на наші класи, кожен клас щось там наслідував й потрібно було перегрузити ґет і пост запроси. Один клас на один юрл. І все це на JSP - Java server page. Це вже після того як я дізнався що існує Томкат, а до цього мучився з ґлассфіш (який майже по документації неможна було натягнути на мою ІДЄ) і Пайяра. Як згадаю яка біль, одна за іншою а потім ще..
Як людям повезло коли є хтось(ментор) що бодай скаже "читай туди".
@@viktors.4844 Make jar, not war!)
Привіт! Порекомендуй, будь-ласка, книгу, яка допоможе краще розібратись з WeB в java (як працюють http запити, і т.п.).
Як варіант: amzn.to/3OH8PMI
@@Bobocode вдячний :)
HttpServletRequest - ось тут Річ Хікі дуже круто тролить його) ua-cam.com/video/aSEQfqNYNAc/v-deo.html
Жаль класичну Java ee інструмент це хороший в деяких моментах навіть цікавіший ніж Spring але маємо, що маємо
Є багато цікавого. Ми не можемо все розбирати 😉
@@Bobocode я в загальному з часом ринок топче те що дало в певний момент слабину
Цікаві уроки!
Привіт! Не можу відправити body через socket. Витратив вже не одну годину. Буду вдячний за будь-яку допомогу.Ось код
try(Socket socket = new Socket(InetAddress.getLocalHost().getHostAddress(),8080);
PrintWriter bufferedWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
Stream lines = new BufferedReader(new InputStreamReader(socket.getInputStream())).lines();
)
{
bufferedWriter.println("POST /message HTTP/1.1");
bufferedWriter.println("Content-type: application/json");
bufferedWriter.println("Host: " + InetAddress.getLocalHost().getHostAddress());
bufferedWriter.println();
bufferedWriter.println("{\"name\" :\"Nikita\",\"message\": \"porosetko\"}");
// bufferedWriter.println("name=Nikita&message=porosetko");
bufferedWriter.println();
bufferedWriter.flush();
lines.forEach(System.out::println);
} catch (IOException e) {
throw new RuntimeException(e);
}
На сервері отримую пусте тіло запросу. Якщо відправляти запрос через IDEA, то все працює.
Можете взагалі не читати відповідь, щоб спростити свій код. А до запиту треба додати header Content-Length, бо сервер не розуміє доки читати ваше повідомлення. Винесіть JSON в стрінг jsonBody, а в Content-Length вкажіть jsonBody.length().
@@Bobocode Дякую!