структура веб приложения java
Веб-платформа на Java за 30 минут
Опытные разработчики могут не читать дальше, так-как эта статья рассчитана скорее на новичков, но всё-же я был бы очень рад, если бы кто-нибудь оставил конструктивную критику в мой адрес или указал на ошибки.
В этой статье я бы хотел рассказать начинающим разработчикам, как можно с минимальными усилиями создать свою веб-платформу начального уровня.
В статье я расскажу, как практически с нуля можно, даже не владея огромным стеком технологий, развернуть на удаленном облаке свой собственный уютненький ресурс. Это может быть ваш личный блог, какой-то интересный сервис или просто ресурс о котором вы давно мечтаете. Что может быть приятнее, чем отправить другу ссылку на свой собственный ресурс и вместе обсудить какие-то интересные моменты или просто посмеяться.
Для предпринимателей или начинающих бизнесменов, или владельцев каких-либо площадок будет интересно узнать, что им в начале их бизнеса совсем не обязательно вкладывать большие деньги на «крутой» сайт, а достаточно воспользоваться открытыми библиотеками и единственное за что заплатить — это за то, чтобы взять в аренду виртуальный сервер.
В статье я покажу, как сделать простейший сайт, имеющий простую функциональность. Это скорее статья, посвященная именно тому, чтобы показать общую концепцию и помочь начинающим разработчикам сформировать понимание того, как именно создаются такие известные ресурсы, как Google, Facebook, Вконтакте.
Вы должны понимать, что все интернет-сервисы создаются по одному принципу, отличаются только детали и реализация каких-то уникальных и конкретных вещей, но суть остаётся единой.
Для тех, кто заинтересовался:
Подготовка
Установка того, что нам понадобиться:
Писать наш сервис мы будем на Java, как самом распространённом языке для веб-сервисов.
Проверьте, что на вашем компьютере установлена последняя версия Java, сейчас это 8 версия. Проверить это можно здесь проверить Java. В 97% случаях так оно и есть, но если это не так, то следуя инструкциями на этом сайте вы без труда исправите это, установив и настроив окружение.
Если же всё-таки это не удалось, сразу договоримся с вами так, первым делом вы пытаетесь решить проблему на этих сайтах:
Вообще, открою вам секрет, в программировании, когда у вас всё заработало с 1 раза — это означает только одно, что что-то не работает. Это неоспоримый факт. Куча ошибок, несовместимость версий, отсутствие в библиотеке классов и прочее — это нормальное явление.
Ваш покорный слуга сам просидел 3 недели с ошибкой, облазив такие закоулки интернета, что на какое-то время потерял связь с реальностью и пролежал несколько месяцев в психиатрической больнице, но не будем об этом… Это история для отдельной статьи.
Итак, Java стоит — всё хорошо.
Теперь нам нужен инструмент. Да, нам нужна идея. Качаем и ставим отсюда JetBrains.
Только учтите, что вам нужна именно Ultimate — версия. Простая версия не позволяет разрабатывать веб-приложения. Там есть бесплатный пробный период на 30 дней, думаю с этим не будет проблем.
Итак, среда разработки есть, Java есть.
Начнём
В своё время я перечитал кучу статей и прочего, и решил, что в этой статье я исключу по максимуму картинки и визуальную составляющую, обычно она только отвлекает, у меня может быть другая версия, другой порядок модулей и прочее.
Часто вижу вопросы от новичков про такие интересные вещи, как Spring и Hibernate (https://spring.io/, hibernate.org). В 96% случаях вам это пока что не надо, и без хорошей подготовки и хорошего скилла «solve problem» вы увязните там очень надолго и выбраться обратно будет очень тяжело.
Ваша альма-матер на первых порах — это 2 технологии:
«Application server». Что это такое? А вот, что Application server.
Концепция веб-ресурсов
Суть такая, сервер. Что такое сервер? Это программный код, который «зацикленно» крутиться в системе и слушает порты. Это тема отдельного разговора. Но в общем, рассмотрим 2 варианта того, что вообще сервер умеет делать, он умеет отдать данные (GET) — просто вернуть число, страницу, или ещё бог знает что. Но, есть ещё и POST — он тоже возвращает данные, но и принимает от клиента их перед этим.
Если ничего не понятно, читаем тут ru.wikipedia.org/wiki/REST.
Статья начинает слишком сильно расти. Теперь буду стараться писать более кратко.
Идём в мой репозиторий. Предполагаем, что человек совершенно не понимает, что такое система контроля версий, поэтому идём путём дилетанта, там есть кнопка («Download ZIP» — качаем и разархивируем).
В окне приветствия идеи есть кнопка «import project» — жмём. Выбираем скачанный и разархивированный проект.
Жмём далее, далее и далее, пока не откроется проект.
Первые сложности
Проект открыт, но вы не запустите сервер и не сможете открыть сайт. Почему? Потому что, идея не знает, что ей делать, она умна, но не настолько.
Объяснение того, как это сделать, заняло бы пару страниц и оказало бы вам «медвежью» услугу. Первые сложности — первые трудности. Это будет вашим «боевым крещением». Программировать — не пирожки печь. Ссылки сверху вам помогут. Потратить 1-2 часа на это — это нормально. Я знаю хороших и опытных программистов, которые сидели несколько дней, но так и не сумели правильно запустить сервер. Это не делает им чести — но факт — есть факт. Вперед. Запустите — возвращайтесь к чтению.
Не забудьте сообщить идее, что используем tomcat (как? ссылки вверху, по ним есть ответ).
Локальное тестирование сервиса
Получиться у вас должно примерно вот это:
Но есть проблема — не работает! Ну что же, этого следовало ожидать. У нас не создана таблица в базе данных. В проекте мы используем базу данных SQLite
Объяснить, что это такое будет с 0 не просто. Попробуйте почитать об этом на специализированных ресурсах.
Могу посоветовать хороший сервис: www.codecademy.com (там есть Java, SQL, Git, JavaScript и другие супер полезные вещи), поэтому милости прошу.
В итоге, нам нужно создать нашу таблицу, делаем это так:
Таблица создана. Можно проверить как работает наша система. Добавьте пару имён и посмотрите, как они будут вам возвращены уже из самой базы.
Разбор кода
Начнём смотреть, что же у нас в коде:
Так уж повелось, что в Java все конфигурации пишутся в xml-файлах, тут не исключение — файл web.xml контролирует, то, какой сервлет за что отвечает. Внимательно посмотрите на код и попробуйте поменять ссылку или имя сервлета.
Приложение у нас простое, поэтому у всего 2 класса (SQLiteClass и MainServlet).
Очевидно, думаю, что первый отвечает за работу с базой данных, а второй и есть наш пресловутый сервлет.
А вот и наши, упомянутые выше POST и GET запросы, эти функции являются обработчиками и задают поведение сервлета в ответ на запросы от клиента. Суть одна — данные пришли, данные ушли. Ничего сложного. Попробуйте поиграться с методами.
Переходим к классу, реализующему JDBC:
Здесь тоже всё просто, те же SQL запросы, только завёрнутые в Java-код. Небольшой совет — остерегайтесь всяких надстроек и фреймворков. Они хороши только в больших проектах, когда у вас миллионы записей, и сложные транзакционные операции. Но, настоящий контроль вы получите только, когда пишете именно вручную запрос, без таких вещей как сериализация жить намного проще (особенно поначалу).
Всё, с серверной частью закончим. Тут вам придётся посидеть, почитать специальные статьи и руководства. Без реальной практики тут никак.
Клиентская часть
Вот и пришло время взглянуть на то, что твориться у клиента в браузере. А ничего сверхъестественного. Но, скажу вам прямо, конечно всё зависит от проекта, но, клиентская часть обычно намного сложнее в реализации, чем серверная. И всё в основном из-за JavaScript-а. Очень быстро клиентский код превращается в набор «простыней», заплат, хардкода и прочих веселостей. JavaScript суров и беспощаден. На чистом нём писать очень тяжело. Поэтому мы используем JQuery. Есть куча других фреймворков и другого творения, но их касаться здесь не будем. Есть такая поговорка, что назови любое слово и это будет названием JS-фреймворка. Известен в узких кругах фреймфорк Mocha, я не представляю какие мысли посещали человека, когда он придумывал ему название, ну ладно, это было его право, конечно же.
Итак, что у нас там с клиентом?
Опять дам ссылку на отличнейший ресурс www.codecademy.com. Фронтенд там разобран очень хорошо и даёт необходимую базу для начинающих.
Тут рассмотрим только функцию
Что она делает? Правильно, шлёт тот самый POST — запрос и разбирает ответ. Всё просто, отдал данные и получил с сервера. По русски он говорит серверу «Дай мне имена всех, кто у тебя в базе» или «Занеси в базу это имя» и даёт ему имя.
Вот и вся клиентская часть.
Отправляем ресурс в настоящий мир
Как можно было заметить, наш сервис крутиться на локальном хосте. Другими словами на нашем же компьютере. Пришло время это исправить.
Тут я опишу лишь общий принцип сего действия. Это так или иначе потребует от вас денег на сервер, поэтому маловероятно, что кто-то действительно этим будет заниматься, особенно в самом начале своего программистского пути. Но понимать общую концепцию вы должны уже сейчас. Если кто решиться — знайте вы молодцы, вполне вероятно из вас может выйти толк.
И по традиции сразу несколько ссылок:
Читаем, что там написано, формируем в голове общую концепцию, того, как происходит взаимодействие программиста и удаленного сервера.
Сами сервера можно приобрести на amazone. Ссылку не даю, ибо реклама, можете сами поискать, это не сложно. Есть бесплатный тестовый период. НО! Будьте предельно осторожны, ваш покорный слуга сам слышал истории, как со счетов списывались тысячи долларов без ведома хозяина, ибо система сама умеет докупать себе мощности. Не попадитесь, я сам уже платил несколько раз за непонятные услуги, там всё на английском. Если не уверены, что делаете — лучше вообще не делайте.
Порядок действий таков:
На всякий случай я оставлю тут эти ссылки, вдруг, кто-то застопорился на каком-то моменте и решил спуститься в самый низ статьи, может помогут:
Заключение
Вот мы и добрались до кульминации нашего здесь обсуждения Джавы и веб-разработки на ней. Сложно? Да. Интересно? Да. Все, абсолютно все сервисы, будь то, поисковая система с миллиардами индексов, будь то видео-сервис с миллионами стрим-каналов — всё строиться по одному принципу. Отдать — забрать данные. Понимая эту концепцию вы сможете написать любую систему, сервис или платформу.
Я не стану лукавить и обманывать вас уважаемые читатели. Вряд ли вы за 2 или 3 недели станете супер профессионалами и будете свободно писать код. Этому можно научиться только потом и долгими ночами. Чем дальше вы будете залазить в дебри, тем больше вы будете понимать, что вы так мало знаете. Дорогу осилит идущий, вперед, дерзайте.
Вперед. Пришло время действовать. Стареющим Дурову и Брину пора уйти на покой, время их славы уже прошло, пришло время обновить учебники истории и списки Forbs. И кто знает, может эту статью читает тот, кто в своё время напишет отличнейшую платформу, которая затмит собой таких гигантов как Google, Facebook и других. Удачи, спасибо, что дочитали до конца.
Учебник по веб-приложениям Java для начинающих
Учебник по разработке веб-приложений Java для начинающих. Начните с веб-разработки Java в Eclipse, создав примеры проектов и загрузив их для игры.
Веб-приложение Java
Цель этой статьи-предоставить основные сведения о различных компонентах веб-приложения и о том, как мы можем использовать сервлет и JSP для создания нашего первого веб-приложения java.
Веб-сервер и клиент
Веб-сервер-это программное обеспечение, которое может обрабатывать запрос клиента и отправлять ответ обратно клиенту. Например, Apache является одним из наиболее широко используемых веб-серверов. Веб – сервер работает на некоторой физической машине и прослушивает запрос клиента на определенном порту.
Веб-клиент-это программное обеспечение, которое помогает в общении с сервером. Некоторые из наиболее широко используемых веб-клиентов-Firefox, Google Chrome, Safari и т.д. Когда мы запрашиваем что-либо с сервера (через URL), веб-клиент создает запрос и отправляет его на сервер, а затем анализирует ответ сервера и представляет его пользователю.
HTML и HTTP
Веб-сервер и веб-клиент-это два отдельных программного обеспечения, поэтому должен быть какой-то общий язык для общения. HTML является общим языком между сервером и клиентом и расшифровывается как H yper T ext M arkup L anguage.
Веб-серверу и клиенту необходим общий протокол связи, HTTP ( H yper T ext T ransfer P rotocol) – это протокол связи между сервером и клиентом. HTTP работает поверх протокола связи TCP/IP.
Некоторые из важных частей HTTP-запроса являются:
Некоторые из важных частей HTTP-ответа являются:
Тип MIME или Тип содержимого : Если вы видите выше пример заголовка HTTP-ответа, он содержит тег “Тип содержимого”. Это также называется типом MIME, и сервер отправляет его клиенту, чтобы сообщить ему, какие данные он отправляет. Это помогает клиенту в визуализации данных для пользователя. Некоторые из наиболее часто используемых типов mime-это текст/html, текст/xml, приложение/xml и т.д.
Понимание URL
URL-это аббревиатура Универсального локатора ресурсов, и он используется для определения местоположения сервера и ресурса. Каждый ресурс в Интернете имеет свой собственный уникальный адрес. Давайте рассмотрим части URL-адреса на примере.
https:// – Это первая часть URL-адреса и предоставляет протокол связи, который будет использоваться при взаимодействии сервера и клиента.
localhost – Уникальный адрес сервера, в большинстве случаев это имя хоста сервера, которое сопоставляется с уникальным IP-адресом. Иногда несколько имен хостов указывают на одни и те же IP-адреса, и виртуальный хост веб-сервера заботится об отправке запроса конкретному экземпляру сервера.
8080 – Это порт, на котором сервер прослушивает, это необязательно, и если мы не указываем его в URL, то запрос отправляется на порт протокола по умолчанию. Номера портов от 0 до 1023 являются зарезервированными портами для известных сервисов, например, 80 для HTTP, 443 для HTTPS, 21 для FTP и т.д.
FirstServletProject/jsp/hello.jsp – Ресурс, запрошенный у сервера. Это может быть статический html, pdf, JSP, сервлеты, PHP и т.д.
Зачем нам нужен сервлет и Jsp?
Веб-серверы хороши для статического содержимого HTML-страниц, но они не знают, как создавать динамический контент или как сохранять данные в базы данных, поэтому нам нужен другой инструмент, который мы можем использовать для создания динамического контента. Существует несколько языков программирования для динамического контента, таких как PHP, Python, Ruby on Rails, Java-сервлеты и JSP.
Сервлет Java и JSP-это серверные технологии, расширяющие возможности веб-серверов за счет поддержки динамического отклика и сохранения данных.
Веб-разработка на Java
Первое веб-приложение с сервлетом и JSP
Мы будем использовать “Eclipse IDE для разработчиков Java EE” для создания вашего первого приложения-сервлета. Поскольку сервлет-это технология на стороне сервера, нам понадобится веб-контейнер, поддерживающий технологию сервлетов, поэтому мы будем использовать сервер Apache Tomcat. Это очень легко настроить, и я оставляю эту часть на ваше усмотрение.
Для простоты разработки мы можем добавить настройку Tomcat с помощью Eclipse, это помогает в простом развертывании и запуске приложений.
Перейдите в настройки Eclipse и выберите Среды выполнения сервера и выберите версию вашего сервера tomcat, мой-Tomcat 7.
Укажите расположение каталога apache tomcat и информацию о JR для добавления среды выполнения.
Теперь перейдите в представление Серверы и создайте новый сервер, как показано на рисунке ниже, указывающем на добавленную выше среду выполнения.
Примечание : Если вкладка Серверы не отображается, вы можете выбрать Окно > Показать вид > Серверы, чтобы она была видна в окне Eclipse. Попробуйте остановить и запустить сервер, чтобы убедиться, что он работает нормально. Если вы уже запустили сервер с терминала, то вам придется остановить его с терминала, а затем запустить его с Eclipse, иначе он не будет работать идеально.
Теперь мы готовы с нашей настройкой создать первый сервлет и запустить его на сервере tomcat.
Выберите Файл > Создать > Динамический веб-проект и используйте изображение ниже, чтобы обеспечить время выполнения в качестве сервера, который мы добавили на последнем шаге, и версию модуля как 3.0 для создания нашего сервлета с использованием спецификаций сервлета 3.0.
Вы можете напрямую нажать кнопку “Готово”, чтобы создать проект, или нажать кнопки “Далее”, чтобы проверить наличие других опций.
Теперь выберите Файл > Создать > Сервлет и используйте изображение ниже, чтобы создать наш первый сервлет. Снова мы можем нажать кнопку Готово или проверить другие параметры с помощью кнопки далее.
Когда мы нажимаем на кнопку Готово, он генерирует наш скелетный код сервлета, поэтому нам не нужно вводить все различные методы и импорт в сервлете и экономит наше время.
Перед сервлетом 3 нам необходимо предоставить информацию о шаблоне URL-адреса в дескрипторе развертывания веб-приложения, но сервлет 3.0 использует аннотации java, которые легко понять, и вероятность ошибок меньше.
Теперь выберите “Выполнить” > “Запустить на сервере” в окне редактора сервлетов и используйте для параметров изображения ниже.
После нажатия кнопки Готово браузер откроется в Eclipse, и мы получим следующую HTML-страницу.
Вы можете обновить его, чтобы проверить, что дата динамична и продолжает меняться, вы можете открыть его за пределами Eclipse также в любом другом браузере.
Таким образом, сервлет используется для генерации HTML и отправки его в ответ, если вы посмотрите на реализацию doGet (), мы фактически создаем HTML-документ, записывая его в объект response PrintWriter, и мы добавляем динамическую информацию там, где она нам нужна.
Это хорошо для начала, но если ответ огромен с большим количеством динамических данных, он подвержен ошибкам и его трудно читать и поддерживать. Это является основной причиной введения JSP.
JSP-это также технология на стороне сервера, и она похожа на HTML с дополнительными функциями для добавления динамического контента там, где он нам нужен. JSP хороши для презентации, потому что их легко писать, потому что они похожи на HTML. Вот наша первая программа JSP, которая делает то же самое, что и вышеупомянутый сервлет.
Если мы запустим выше JSP, мы получим вывод, как показано на рисунке ниже.
Окончательная иерархия проекта выглядит так, как показано на рисунке ниже в Eclipse.
Скачать Первый Проект Сервлета
Мы рассмотрим сервлеты и JSP более подробно в будущих сообщениях, но прежде чем завершить этот пост, мы должны хорошо понять некоторые аспекты веб-приложений Java.
Веб-контейнер
Tomcat-это веб-контейнер, когда запрос поступает от клиента к веб-серверу, он передает запрос в веб-контейнер, и задача веб-контейнера-найти правильный ресурс для обработки запроса (сервлет или JSP), а затем использовать ответ от ресурса для генерации ответа и предоставления его веб-серверу. Затем веб-сервер отправляет ответ обратно клиенту.
Когда веб-контейнер получает запрос и если он предназначен для сервлета, контейнер создает два объекта HttpServletRequest и HttpServletResponse. Затем он находит правильный сервлет на основе URL-адреса и создает поток для запроса. Затем он вызывает метод servlet service() и на основе метода HTTP-метода service() вызывает методы doGet() или doPost (). Методы сервлета генерируют динамическую страницу и записывают ее в ответ. Как только поток сервлета завершен, контейнер преобразует ответ в HTTP-ответ и отправляет его обратно клиенту.
Некоторые из важных работ, выполняемых веб-контейнером, заключаются в следующем:
Структура каталогов веб-приложений
Веб-приложения Java упакованы в виде веб-архива (WAR) и имеют определенную структуру. Вы можете экспортировать приведенный выше динамический веб-проект в виде файла WAR и распаковать его, чтобы проверить иерархию. Это будет что-то вроде изображения ниже.
Дескриптор развертывания
web.xml файл является дескриптором развертывания веб-приложения и содержит сопоставление для сервлетов (до версии 3.0), страниц приветствия, конфигураций безопасности, параметров тайм-аута сеанса и т.д.
Это все для руководства по запуску веб-приложений Java, мы подробнее рассмотрим сервлеты и JSP в будущих публикациях.
Обновление : Следующий учебник в этой серии – Учебник по сервлетам Java
Создаём веб-приложение с Java Servlets
Авторизуйтесь
Создаём веб-приложение с Java Servlets
Одной из самых приятных особенностей Java является её многогранная природа. Конечно, создание традиционных десктопных и даже мобильных приложений — это здорово. Но что, если вы хотите уйти с проторенных дорожек и зайти на территорию разработки web приложений на Java? Для вас есть хорошая новость: в комплекте с языком идёт полноценный Servlet API, который позволяет вам создавать надёжные веб-приложения без особых хлопот.
Это статья для продолжающих. Если вы только начинаете знакомство с Java, советуем пройти быстрый старт, посмотреть видеокурс и выбрать одну из книг для новичков.
Создание приложений на Java с помощью Servlets
Встречайте сервлеты, особый тип Java-программ, выполняемый в пределах веб-контейнера (также называемый контейнером сервлетов, как, например, Tomcat и Jelly), которые позволяют обрабатывать запросы клиентов и ответы сервера просто и эффективно. Сейчас не время и не место дотошно объяснять вам, что из себя представляет сервлет. Достаточно сказать, что сервлеты создаются и уничтожаются их контейнерами, а не разработчиком, и действуют как промежуточный уровень между клиентами (как правило, веб-браузерами) и другими приложениями, запущенными на сервере (например, базами данных).
Сервлет — классная штука, которая помимо всего прочего может принимать данные от клиента, как правило через GET и POST-запросы, работать с cookie и параметрами сеанса. А ещё она обрабатывает данные через дополнительные уровни приложений и отправляет выходные данные клиенту как в текстовом, так и в бинарном форматах (HTML, XML, PDF, JPG, GIF и т.д.), во многих случаях используя Java Server Pages (JSP) файлы.
Лучше всего начинать работу с сервлетами через конкретный пример. Мы создадим простое веб-приложение, которое позволит клиентам регистрироваться с помощью простой HTML-формы. Данные, предоставленные клиентами, будут собираться сервлетом и проверяться валидаторами.
Разбираемся с конфигурационными файлами
Чтобы вы понимали структуру нашего будущего приложения, вот как она будет выглядеть:
Первым шагом к созданию приложения является определение так называемого дескриптора развёртывания. Он указывает, как приложение должно быть развёрнуто в определенной среде. Когда дело касается веб-приложений, дескриптор развёртывания представляет собой простой XML-файл, называемый web.xml и является частью стандартной спецификации Java EE. В нашем случае он будет выглядеть так:
27–28 ноября, Москва, Беcплатно
Так как наше приложение будет использовать Servlet API и Java Servlet Pages (JSP) для отображения данных клиента, нам нужно загрузить все необходимые JAR. Maven сделает за нас трудную работу, вот как будет выглядеть файл POM:
Если говорить просто, pom.xml определяет все зависимости, необходимые для работы с сервлетами: JSP, Java Standard Tag Library (JSTL) и Java Expression Language (JEL).
Итак, мы уже создали конфигурационные файлы приложения. Однако в текущем состоянии оно буквально ничего не делает. Мы хотим, чтобы клиенты могли регистрироваться с помощью HTML-формы, поэтому следующее, что нам нужно сделать, — это создать JSP-файлы, которые будут отображать вышеупомянутую форму и данные клиента после успешного завершения регистрации. Этим мы сейчас и займёмся.
Работаем над внешним видом
Внешний вид приложения будет определяться двумя JSP-файлами — в контексте MVC они называются представлениями. Первый будет отвечать за отображение формы регистрации и возможных ошибок, вызванных после проверки введённых данных. Второй будет обычной страницей приветствия, в которой будут показаны данные, введённые клиентом, после успешного завершения процесса регистрации.
Вот первый JSP-файл:
Скоро мы увидим, как сервлет связывается с URL processcustomer и как он взаимодействует с введёнными данными. А пока давайте посмотрим на JSP-файл, который отвечает за страницу приветствия:
Теперь, когда мы разобрались с отображением страниц, следующим шагом будет создание сервлета, ответственного за сбор данных клиента из POST-запросов и подтверждение данных простым способом.
Пишем контроллер
Написать сервлет, способный получить данные из формы регистрации, проще простого. Всё, что нам нужно сделать, — это написать подкласс для класса HttpServlet и реализовать его методы doGet() или doPost() (или оба, если надо). В данном случае сервлет будет взаимодействовать с данными, поступающими из POST-запросов.
Вот как он выглядит:
Валидаторы — это простые классы, которые проверяют определённые свойства, например, является ли строка пустой и выглядит ли email как email. На GitLab автора можно посмотреть на их реализацию.
Результат валидации влияет на дальнейший ход событий: если данные не валидны, клиент перенаправляется через объект RequestDispatcher на страницу регистрации, где отображаются соответствующие ошибки. Если всё в порядке, то отображается страница приветствия.
Итак, мы создали целое веб-приложение на Java, которое позволяет зарегистрировать клиентов с помощью HTML-формы, базового сервлета и нескольких JSP-файлов. Пора его запустить.
Запускаем приложение
Для запуска приложения нужно проделать следующие шаги:
Заключение
Итак, вы приобрели все навыки, необходимые для создания собственного веб-приложения на Java без необходимости прибегать к сложным фреймворкам. Всё, что вам нужно, — Servlet API, технология вроде JSP для отображения и встроенные средства Java. Здорово, правда?
Стоит отметить, что реализация класса CustomerController подчеркивает достоинства и недостатки сервлетов: с одной стороны, он вкратце показывает, насколько легко обрабатывать параметры запроса и отправлять ответы клиенту в разных форматах. Но эта функциональность имеет свою цену: обе реализации интерфейсов HttpServletResponse и HttpServletResponse являются обычными локаторами служб. Нельзя сказать, что это плохо, поскольку локаторы просто содержат данные. Однако нужно помнить, что эти реализации будут всегда привязаны к сервлету.