— А ось і я. Як ти просив, зараз я розповім тобі, як написати першу програму для веб-сервера.

Веб-сервер – це як операційна система. Він цінний не сам по собі, а тому, що в ньому можна запускати спеціальні веб-програми – сервлети (Servlet).

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

— А як вони опрацьовують запити? Як взагалі запустити свою програму всередині веб-сервера?

— Щоб написати свій сервлет, треба успадкувати клас від класу HttpServlet. Потім реалізувати там методи doGet() та doPost(). Коли від користувача прийде запит, веб-сервер створить об'єкт твого класу-сервлета і викличе у нього метод doGet(). Або doPost(), залежно від типу запиту з браузера.

— А як моя програма взагалі потрапить до web-server?

— Тут усе просто. Ти пишеш програму, компілюєш її та кладеш у спеціальну папку, в директорію, куди встановив Tomcat.

Сервлети – це велика окрема та цікава тема. Тому я не тобі сьогодні її розповідатиму. Я розповім тобі трохи про інше.

Є один дуже цікавий різновид сервлетів – це JSP. Чимось нагадує PHP.

Давай ми напишемо найпростішу веб-програму з використанням JSP, і запустимо її.

— Давай! Я готовий.

— Тоді розпочнемо. Тобі знадобляться: Intellij IDEA Ultimate та Apache Tomcat 9


Інструкція є актуальною для версії IDEA Ultimate 2020.2.3

Крок 1. Створи новий проект

— Є.

Крок 2. Вибери тип модуля (Java) та версію JDK

— Є.

Крок 3. Підключи бібліотеку — Servlet

"text-user">— Є.

Крок 4. Вкажи ім'я проекту та тисни Finish

class="text-user">— Є.

Крок 5. Створи файл index.jsp. Правий клік через webapp > New > JSP/JSPX. Назви файл index

— Ти маєш бачити новий створений порожній проект. У ньому буде один файл - index.jsp

Крок 6. Знайди jsp-файл у дереві проекту

— Знайшов.

— Чудово. Ось у ньому можна буде написати код нашого сервлета. Але давай спочатку трохи налаштуємо Intellij IDEA. Можна запускати сервлети в Tomcat’е прямо з Intellij IDEA. Дебажити їх, якщо треба. Загалом, це дуже зручно та круто. Ти це оціниш, коли настане час.

— Вірю. То що робити далі?

— Ми «навчимо» Intellij IDEA запускати наш webmodule (наше застосування) в Tomcat.

Крок 7. Зайди в меню Run, у вкладку EditConfiguration

— Готово.

Крок 8. Щоб створити нову конфігурацію, натисніть на плюсик. Вкажи, що саме потрібно запускати (TomcatServer, Local)

— Є.

Крок 9. Тепер пропишемо конфігурації запуску програми

Зеленим виділено порт, на якому запускатиметься сервлет з Tomcat’ом.

Треба ще вказати IntellijIDEA, де знаходиться наш Tomcat . Тисніть кнопку Configure…

Крок 10. Вкажи місце розташування Tomcat'а

— Готово.

— Має бути такий тип:

Крок 11. Результат налаштування буде виглядати так:

— Скільки треба зробити. Добре, що є така докладна інструкція.

— А то! Для друга ж намагаюся.

Крок 12. Тепер тисни кнопку Fix, і IDEA все зробить сама

— Є.

Крок 13. IDEA робить прив'язку проекту і Tomcat

— Готово.

— Чудово. Ще одне зауваження. Порт 8080 вже швидше за все зайнятий. Адже Tomcat запустився відразу після встановлення.

Intellij IDEA вміє «підкладати» сервлети до вже запущеного проекту, але зараз для простоти вона щоразу запускатиме новий Tomcat.

— Тобто. у нас буде кілька запущених Tomcat’ів?

— Ага. І кожному потрібний свій порт. Тому, давай-но в налаштуваннях проекту поміняємо порт 8080, на порт 8888.

— 4 вісімки – мені подобається.

Крок 14. Зміни порт на 8888

— Зробив.

— Чудово. З налаштуваннями ми покінчили.

— А що далі?

— Тепер давай трохи поміняємо наш index.jsp

Напиши там щось, наприклад «Вся влада – крабоподібним».

Крок 15. Зміни текст у файлі index.jsp, наприклад, таким чином:

— Ні, я краще «Вся влада роботам!» напишу.

— Чудово. Тепер залишилося зовсім небагато.

Крок 16. Запусти сервлет і Tomcat (Run 'WebApp')

Має бути лог працюючого Tomcat, без помилок і stackTrace.

Щось типу такого:

Крок 17. Лог запущеного Tomcat виглядає так: < /p>

При цьому IDEA повинна відкрити браузер з посиланням на твій сервлет.

Має вийти щось на кшталт такого:

< a href='https://cdn.javarush.com/images/article/cd9a8e08-8803-4572-a3b9-e423786180c7/original.jpeg' target='_blank'>run simple web application - 18

— Ага. Так і є. Круто!

— А тепер напиши у браузері посилання:

http://localhost:8888 /index.jsp

— Нічого не змінилося.

— Ну, не скажи. -id="be1fa916-81da-4b09-8f05-8e67c9b2d095" data-max-width="1024" alt="run simple web application - 19" src="https://cdn.javarush.com/images/article/ be1fa916-81da-4b09-8f05-8e67c9b2d095/original.jpeg">

Тут у браузері відображається той файл index.jsp, який ти бачив у IntellijIDEA.

— Який я змінював?

— Так.

Але якщо у запиті браузера вказано лише домен без решти запиту, то буде викликаний обробник за замовчуванням. У нашому випадку це index.jsp

Припустимо, у тебе є три файли: index.jsp, apple.jsp, google.jsp. Ось як будуть справи:

samsung.jsp
< td>http://localhost:8888/
Запит Відповідь
http://localhost:8888 index.jsp
http://localhost:8888/ index.jsp
http://localhost:8888/index.jsp index.jsp
http ://localhost:8888/apple.jsp apple.jsp
Повідомлення про помилку – сервлет не знайдено
http://localhost:8888/google.jsp google.jsp
http://localhost:8888/ index Повідомлення про помилку – сервлет не знайдено
< — Це я зрозумів.

Білаабо. Ти так довго розповідав, що JSP це круто. Але ж вони дуже схожі на звичайні HTML-сторінки. Все те саме.

— Ну не зовсім. Спробуй написати в JSP такий текст:

JSP-код
<%@ page contentType="text/html; charset=UTF-8" language="java" %>  <html> <head> <title>Привіт від Аміго</title> </head> <body> <%--це ще HTML--%> <% //А тут можна писати Java-код String s = "Вся влада роботам!"; for(int i=0; i<10; i++) { out.println(s); out.println("<br>"); } %> <%--а це вже знову HTML--%> < ;/body> </html>

Всередині JSP-сторінки можна робити вставки Java-коду і він буде працювати!< /p>

Java-код в JSP-сторінці називається скриптлетом і позначається двома «дужками - «<%» і «%> »

— Нічого собі.

Добре.Піду напишу пару своїх JSP-сторінок.

Велике тобі спасибі, Білаабо.

— І тобі спасибі, друже!