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

КОМЕНТАРІ • 18

  • @Bobocode
    @Bobocode  2 роки тому +1

    👉 Навчання від Bobocode: bit.ly/3IRrJhj

  • @viktors.4844
    @viktors.4844 2 роки тому +2

    Дякую за відео 😊 з нетерпінням чекаю на головне, на Спрінг.

  • @Bobocode
    @Bobocode  2 роки тому +1

    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?

  • @user-nq4bt9lm2d
    @user-nq4bt9lm2d Рік тому

    Дякую за відео!

  • @feoktant
    @feoktant 2 роки тому +1

    Заняття дуже класне, позгадував старі часи, дякую)
    Писав сервлети коли вони конфігурувалися в xml. ІМХО, не зовсім вдале АПІ: окрім HttpServlet великого розповсюдження не отримало, та й HttpServlet обгорнули і забули. Потоконебезпечні. Без сервлет контейнеру запустити неможливо, питання тестів відкрите. Абстракція, що request і response одразу мають у собі io виглядає як порушення принципів SOLID... Дуже багато складості( Замість бінес логіки думаєш чи є фільтр перед сервлетом. Але це основа сьогоднішньої Java.
    Ідея, що веб сервер можна абстрагувати до функції HttpRequest -> HttpResponse без IO потім сильно травмує.

    • @viktors.4844
      @viktors.4844 2 роки тому +1

      Декілька років тому також конфігурував через XML. Потрібно було зробити концігурацію проекту та змапувати в XML наші запроси на наші класи, кожен клас щось там наслідував й потрібно було перегрузити ґет і пост запроси. Один клас на один юрл. І все це на JSP - Java server page. Це вже після того як я дізнався що існує Томкат, а до цього мучився з ґлассфіш (який майже по документації неможна було натягнути на мою ІДЄ) і Пайяра. Як згадаю яка біль, одна за іншою а потім ще..
      Як людям повезло коли є хтось(ментор) що бодай скаже "читай туди".

    • @feoktant
      @feoktant 2 роки тому +3

      @@viktors.4844 Make jar, not war!)

  • @vermilinguas
    @vermilinguas 2 роки тому

    Привіт! Порекомендуй, будь-ласка, книгу, яка допоможе краще розібратись з WeB в java (як працюють http запити, і т.п.).

    • @Bobocode
      @Bobocode  2 роки тому +1

      Як варіант: amzn.to/3OH8PMI

    • @vermilinguas
      @vermilinguas 2 роки тому

      @@Bobocode вдячний :)

  • @feoktant
    @feoktant 2 роки тому +1

    HttpServletRequest - ось тут Річ Хікі дуже круто тролить його) ua-cam.com/video/aSEQfqNYNAc/v-deo.html

  • @Beetle_in_the_Anthill
    @Beetle_in_the_Anthill Рік тому

    Жаль класичну Java ee інструмент це хороший в деяких моментах навіть цікавіший ніж Spring але маємо, що маємо

    • @Bobocode
      @Bobocode  Рік тому

      Є багато цікавого. Ми не можемо все розбирати 😉

    • @Beetle_in_the_Anthill
      @Beetle_in_the_Anthill Рік тому

      @@Bobocode я в загальному з часом ринок топче те що дало в певний момент слабину

  • @rostyslavb1569
    @rostyslavb1569 Рік тому +1

    Цікаві уроки!

  • @NikitaMalov
    @NikitaMalov Рік тому

    Привіт! Не можу відправити 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, то все працює.

    • @Bobocode
      @Bobocode  Рік тому +1

      Можете взагалі не читати відповідь, щоб спростити свій код. А до запиту треба додати header Content-Length, бо сервер не розуміє доки читати ваше повідомлення. Винесіть JSON в стрінг jsonBody, а в Content-Length вкажіть jsonBody.length().

    • @NikitaMalov
      @NikitaMalov Рік тому

      @@Bobocode Дякую!