— А ось і я. Як ти просив, зараз я розповім тобі, як написати першу програму для веб-сервера.
Веб-сервер – це як операційна система. Він цінний не сам по собі, а тому, що в ньому можна запускати спеціальні веб-програми – сервлети (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'>— Ага. Так і є. Круто!
— А тепер напиши у браузері посилання:
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Запит | Відповідь |
---|---|
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 такий текст:
<%@ 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-сторінок.
Велике тобі спасибі, Білаабо.
— І тобі спасибі, друже!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ