создать приложение на джава
Создаём веб-приложение с 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. В нашем случае он будет выглядеть так:
Так как наше приложение будет использовать 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 являются обычными локаторами служб. Нельзя сказать, что это плохо, поскольку локаторы просто содержат данные. Однако нужно помнить, что эти реализации будут всегда привязаны к сервлету.
Быстрый старт в Java: от установки необходимого софта до первой программы
Авторизуйтесь
Быстрый старт в Java: от установки необходимого софта до первой программы
Как вы знаете, Java — один из самых популярных языков программирования в мире и его знание существенно увеличит вашу значимость как программиста. Итак, вы решили начать писать на этом языке. Вам понадобится поставить JDK для того, чтобы писать и запускать программы на Java. JDK — набор софта, разработанного Oracle, содержащий в себе компилятор (javac), среду выполнения (Java Runtime Environment), стандартную библиотеку языка, примеры и документацию. Прочитав эту статью, вы узнаете, как установить и настроить JDK на своей системе, что такое среда разработки и какие варианты IDE существуют для Java. Также вы напишете свою первую программу на Java.
Установка Java Development Kit
Итак, вы установили Java Development Kit, но это еще не всё. Необходимо настроить его для вашей системы.
Настройка JDK на примере Windows
После установки JDK и JRE не помешает установить на компьютер одну из IDE.
Установка IDE
Для начала разберёмся, что такое IDE.
IDE (Integrated Development Environment) — это комплекс программных средств, используемый программистами для разработки программного обеспечения. IDE позволяет с лёгкостью писать, запускать, отлаживать и тестировать код.
Для написания сложных программ целесообразно использовать IDE. Мы рассмотрим наиболее популярные.
Блокнот
Да, и в блокноте можно писать код! Для разработки вам потребуется всего лишь установить JDK и указать путь к ней. Пишете код в блокноте, компилируете с помощью командной строки. Тем не менее, для разработки сложных программ это не самый лучший вариант из-за отсутствия каких-либо дополнительных возможностей, присутствующих в продвинутых IDE.
NetBeans
NetBeans — выбор профессиональных Java-разработчиков. В ней есть уникальные возможности и инструменты, которые позволят вам сделать вашу программу кроссплатформенной, а код удобочитаемым. NetBeans поддерживает не только Java, но и другие языки программирования для десктоп- и веб-разработки. Она полностью бесплатна, скачать её можно с официального сайта. Вот лишь некоторые её возможности:
Eclipse
Eclipse, как и Netbeans — одна из наиболее популярных IDE. Она предоставляет впечатляющий интуитивно понятный интерфейс и производительную среду разработки, позволяющую комфортно разрабатывать приложения на Java. Скачать Eclipse можно бесплатно с официального сайта. Преимущества:
IntelliJ IDEA
IntelliJ IDEA — известная IDE для Java, написанная, как ни странно, на Java. Укомплектована уникальными инструментами и позволяет без проблем ориентироваться в программе. Нахождение ошибок и отладка кода никогда не были такими легкими, как с IntelliJ IDEA.
JCreator
JCreator — продвинутая и самая быстрая IDE для Java, написанная на C++.
Пишем свою первую программу
Итак, вы установили и настроили JDK, JRE и IDE для Java. Каков следующий шаг? Конечно же, написать программу, чтобы окончательно убедиться, что всё работает и вы готовы к изучению языка. Вы познакомитесь с базовой структурой кода на Java и создадите свою первую программу! Стоит отметить, что перед изучением Java следует ознакомиться хотя бы с самыми простыми принципами объектно-ориентированного программирования.
Структуру программы на Java можно представить так:
Структура программы на Java
В файле с исходным кодом содержится несколько классов — это части программы, имеющие определённые функции. Хорошей практикой считается разбиение программы на несколько файлов с исходным кодом, каждый со своим назначением. В классах содержатся методы — действия, которые могут выполнять объекты данного класса. В методе содержатся команды, с помощью которых вы можете получить желаемый результат.
Перед тем, как приступить к созданию программы, необходимо создать проект, а в нём и файл, в котором будет содержаться ваш код. Рассмотрим создание проекта на IDE Eclipse, но в остальных IDE процесс отличается не сильно. Cверху выберите «File», затем наведите курсор на «New», в открывшемся меню выберите «Java Project». В появившемся окне введите имя проекта и другие нужные вам настройки (если не уверены, что делать, то можно просто оставить все как есть) и нажмите «Next». Готово, вы создали проект! Осталось лишь создать в нём класс, в котором вы напишете свою первую программу. Щёлкните правой кнопкой мыши по вашему проекту (он должен появиться справа) и выберите «New» → «Class». Присвойте новому классу имя (в данном примере — это first ) и нажмите «Finish».
Приступим к написанию вашей первой программы. По традиции — это программа, выводящая на экран «Hello, world!».
Разберём по частям написанное нами:
Хорошо, вы написали вашу первую программу. Теперь её надо запустить. Для этого просто нажмите белую стрелочку в зеленом кружке на верхней панели (при наведении курсора на неё должно высветиться «Run»). После нажатия внизу откроется консоль, в которой вы увидите сообщение «Hello, world»! Поздравляю, вы написали вашу первую программу на Java и готовы погрузиться в увлекательный мир этого языка!
Полезные ссылки для дальнейшего изучения
Вот несколько ресурсов, которые помогут вам в изучении Java:
Apache NetBeans 12.5
В следующем кратком учебном курсе приведено пошаговое описание некоторых базовых шагов по разработке приложений Java SE в NetBeans IDE. Данный учебный курс предполагает наличие базовых знаний о разработке приложений на Java. Здесь представлены некоторые возможности среды IDE, которые позволяют упростить процесс разработки приложений.
В рамках данного руководства будет создано приложение для получения из нескольких исходных слов одного слова, содержащего по одной букве из каждого исходного слова. Про такое слово можно сказать, что оно имеет форму акронима (acrostic).
Изучение материала, представленного в этом руководстве, занимает приблизительно 30 минут. Если требуется более быстрое учебное руководство «Привет, мир» см. раздел Быстрое учебное руководство по Java IDE NetBeans.
Для работы с этим учебным курсом требуются программное обеспечение и материалы, перечисленные в таблице ниже.
Настройка проектов
Создаваемое приложение будет содержать два проекта:
проект библиотеки классов Java, в котором будет создан служебный класс;
проект приложения Java с главным классом, который реализует метод из служебного класса проекта библиотеки.
Примечание. Строго говоря, для такого простого приложения не требуется два проекта. В этом руководстве на примере двух проектов рассматриваются функции, которые могут потребоваться при создании более сложных приложений.
[[Создание проекта библиотеки классов Java]]
Выберите команду «Файл» > «Создать проект» (CTRL+SHIFT+N). В области «Категории» выберите «Java». В области «Проекты» выберите «Библиотека классов Java». Нажмите кнопку «Далее».
Примечание. Путь, указанный выше, должен отображаться как следующий в поле папки проекта мастера: / NetBeansProjects /MyLib/
Установите флажок «Использовать отдельную папку для хранения библиотек» и укажите местоположение папки библиотек (необязательно). Дополнительная информация об этой команде приведена в статье Предоставление доступа к библиотеке другим пользователям в документе Разработка приложений с помощью NetBeans IDE.
Нажмите кнопку ‘Готово’. Проект «MyLib» будет открыт как в окне «Проекты», так и в окне «Файлы».
[[Создание проекта приложения Java]]
Выберите команду «Файл» > «Новый проект». В области «Категории» выберите «Java». В области «Проекты» выберите «Приложение Java». Нажмите кнопку «Далее».
Установите флажок «Использовать отдельную папку для хранения библиотек» (необязательно).
Убедитесь, что установлен флажок ‘Создать основной класс’.
Нажмите кнопку ‘Готово’. Проект MyApp отображается в окне ‘Проект’ и Main.java открывается в редакторе исходного кода.
[[Настройка пути к классам для компиляции]]
Поскольку проект «MyApp» будет зависеть от класса в проекте «MyLib», необходимо добавить «MyLib» в путь к классам, указанный в «MyApp». Это также обеспечит возможность обращения классов в проекте «MyApp» к классам в проекте «MyLib» без ошибок компиляции. Кроме того, это позволит использовать функцию автозавершения кода в проекте «MyApp» для подстановки исходного кода на базе проекта «MyLib». В среде IDE путь к классам визуально представлен узлом «Библиотеки».
Для добавления служебных классов библиотеки в путь к классам проекта:
В окне ‘Проекты’, щелкните правой кнопкой мыши узел Libraries для проекта MyApp и выберите ‘Добавить проект’, как показано на рисунке ниже.
Нажмите кнопку «Добавить файлы JAR проекта».
Разверните узел «Библиотеки». Архив JAR проекта «MyLib» добавлен в путь к классам проекта «MyApp».
Создание и изменение исходного кода Java
Создание пакета Java и файла класса
В LibClass.java установите курсор на строке после объявления класса ( public class LibClass < ).
Введите или вставьте следующий код метода:
Если вставленный код отформатирован неправильно, нажмите сочетание клавиш ALT+SHIFT+F для переформатирования всего файла.
Для сохранения файла нажмите сочетание клавиш CTRL+S.
Изменение файла Java
Вместо этого комментария введите следующее:
Нажмите сочетание клавиш CTRL+ПРОБЕЛ для вызова окна автозавершения кода.
Появится небольшой список допустимых подстановок. Однако требуемого класса LibClass там может не оказаться.
Для просмотра расширенного списка возможных соответствий еще раз нажмите сочетание клавиш CTRL+ПРОБЕЛ.
Класс LibClass должен находиться в этом списке.
Выберите LibClass и нажмите ENTER. Оставшаяся часть имени класса будет автоматически подставлена в код средой IDE. Кроме того, для этого класса также автоматически создается оператор импорта.
Примечание. В IDE также открывается поле над полем завершения кода, в котором отображаются данные Javadoc для выбранного класса или пакета. Поскольку для этого пакета документация Javadoc отсутствует, в поле отображается сообщение «Не удалось найти сообщение Javadoc».
Введите точку с запятой (;).
Последняя строка должна выглядеть следующим образом.
Последняя строка должна выглядеть следующим образом.
Для сохранения файла нажмите сочетание клавиш CTRL+S.
Примечание. sout является одним из многих шаблонов кода, доступных в редакторе исходного кода. Чтобы найти и изменить список шаблонов кода, выберите «Средства > Параметры > Редактор > Шаблон кода».
Компиляция и выполнение приложения
Теперь для выполнения проекта необходимо указать главный класс и аргументы выполнения.
Примечание. По умолчанию проекты создаются с включенной функцией ‘Компилировать при сохранении’, поэтому пользователям не нужно сначала компилировать сначала собственный код для запуска приложения в IDE. Дополнительные сведения см. в статье Компиляция отдельного файла Java в документе Разработка приложений в IDE NetBeans.
Установка главного класса и аргументов выполнения
Выходные данные программы зависят от аргументов, передаваемых при выполнении программы. В качестве аргументов будет использоваться пять слов, на основе которых будет создан акроним «Hello». Получаемое слово будет состоять из первой буквы первого слова, второй буквы второго слова, третьей буквы третьего слова и т.д.
Добавление аргументов для IDE с целью использования при выполнении приложения:
Щелкните правой кнопкой мыши узел проекта «MyApp», выберите команду «Свойства», а затем выберите узел «Выполнить» в левой области диалогового окна.
Введите `However we all feel zealous ` в поле «Аргументы» и нажмите кнопку «ОК».
Запуск приложения
Приложение создано. Теперь с помощью аргументов выполнения можно протестировать работу приложения в среде IDE.
Выполнение приложения в среде IDE:
Щелкните узел проекта MyApp правой кнопкой мыши и выберите ‘Очистить и собрать’.
Выберите «Выполнение» > «Выполнить проект» (F6).
В окне «Вывод» должны отображаться выходные данные программы `Result = Hello ` (акроним фразы, переданной программе в качестве аргумента).
Тестирование и отладка приложения
Теперь создадим тест и протестируем проект с помощью JUnit, а затем запустим его в отладчике IDE для проверки на наличие ошибок. Тестирование LibClass в JUnit осуществляется путем передачи фразы в метод acrostic и сверки результата с предполагаемыми выходными данными программы.
Создание тестов JUnit
Щелкните правой кнопкой мыши узел LibClass.java в окне «Проекты» и выберите «Сервис > Создать тесты JUnit» (CTRL+SHIFT+U).
Если тесты JUnit в среде IDE создаются впервые, появится диалоговое окно выбора версии «Выберите версию JUnit». Нажмите ENTER для выбора JUnit 4.x и перейдите (кнопка «Продолжить») к диалоговому окну «Создать тесты».
Вместо удаленных строк введите или вставьте следующее:
Сохраните файл путем нажатия CTRL+S.
Выполнение тестов JUnit
Выберите узел проекта «MyLib», а затем выберите «Выполнить > Тестовый проект (MyLib)» (ALT+F6). В окне «Вывод» откроется вкладка ` MyLib (test)`. После этого производится компиляция и выполнение тестов JUnit. Результат тестирования JUnit показывает, что тест пройден.
Вместо тестирования целого проекта можно также запустить отдельный файл теста. Выберите вкладку LibClass.java в редакторе исходного кода, а затем выберите «Выполнить > Тестовый файл».
В среде IDE доступна документация по интерфейсу API JUnit. Выберите команду «Справка > Справочные сведения Javadoc > JUnit `VersionNumber`».
Дополнительные сведения о платформе JUnit приведены на странице http://www.junit.org.
Отладка приложения
В этом разделе с помощью отладчика последовательно выполняются все операции в приложении и рассматривается изменение значений переменных при создании акронима.
Выполнение приложения в отладчике
Выберите Отладка > Отладка проекта (Ctrl-F5). Среда IDE открывает окна отладки и выполняет проект в отладчике до достижения установленной точки останова.
Нажмите клавишу F7 (или выберите команду «Отладить» > «Войти») для перехода к программе и просмотра изменения переменной b по завершении создания акронима.
После завершения программы окна отладки закрываются.
Дополнительные сведения см в разделе Запись тестов JUnit в IDE NetBeans.
Сборка, выполнение и распространение приложения
Убедитесь, что приложение работает соответствующим образом, после чего можно перейти к подготовке приложения к развертыванию вне среды IDE. В этом разделе будет создан архив JAR приложения, который затем будет запущен из командной строки.
Сборка приложения
Примечание. Кроме того, существует команда ‘Собрать’, использование которой не приводит к удалению результатов предыдущей сборки. Эта команда отключена по умолчанию. Дополнительная информация приведена в статье Сборка проектов Java в документе Разработка приложений в IDE NetBeans.
Для сборки приложения выполните следующие действия.
Выберите Запуск > Очистить и собрать проект (Shift-F11).
Результат выполнения сценария сборки Ant должен появиться в окне ‘Результаты’. Если окно «Вывод» не отображается, его можно открыть вручную путем выбора команды «Окно > Вывод > Вывод».
При очистке и сборке проекта выполняются следующие действия:
Удаляются (‘очищаются’) папки результатов, созданные при предыдущей сборке. (В большинстве случаев это папки build и dist ).
В папке PROJECT_HOME/dist создается архив JAR, содержащий проект.
Обновляется файл манифеста в архиве JAR – в него включаются записи, обозначающие главный класс, и все библиотеки, которые расположены по пути к классам проекта.
(Дополнительные сведения о файлах манифеста приведены в этом разделе в учебном курсе по Java).
Запуск приложения вне среды IDE
Для запуска приложения вне среды IDE выполните следующие действия.
Вызовите командную строку или окно терминала.
В командной строке введите следующий оператор:
Далее приложение выполняется и возвращает следующие данные, как показано ниже:
Распространение приложения другим пользователям
После проверки корректности работы приложения вне среды IDE можно подготовить приложение к распространению.
Для распространения приложения выполните следующие действия.
Отправьте этот файл пользователям, которые будут работать с приложением. Предоставьте указания по распаковке файла ZIP, определяющие необходимость размещения файла MyApp.jar и папки lib в одной папке.
Также предложите пользователям выполнить действия в разделе Запуск приложения вне среды IDE.
Другие распространенные задачи
Работа с основной частью учебного курса завершена. При этом необходимо уделить внимание другим базовым задачам. В этом разделе рассматривается несколько таких задач.
Обеспечение доступности документации Javadoc в среде IDE
Для просмотра документации по API JavaSE в IDE NetBeans используйте команду ‘Исходный код > Показать документацию’ или выберите Окно > Другое > Документация Javadoc в главном меню. Документация по API открывается в отдельном окне.
Однако для некоторых сторонних библиотек документация по API недоступна. В этом случае ресурсы Javadoc необходимо связать со средой IDE вручную.
Обеспечение доступности документации Javadoc по API через команду «Просмотреть Javadoc»:
Загрузите исходные файлы документации Javadoc по API (дополнительные сведения можно найти на странице FaqJavaDoc).
Выберите ‘Служба’> ‘Платформы Java’.
Выберите вкладку «Javadoc».
Нажмите кнопку «Добавить архив ZIP/папку» и перейдите к файлу ZIP или к папке, содержащей документацию Javadoc по интерфейсу API в системе. Выберите файл с ZIP или папку и нажмите кнопку «Добавить архив ZIP/папку».
Выберите «Close» (Закрыть).
Создание документации Javadoc для проекта
Скомпилированную документацию Javadoc для проекта можно создать на основе комментариев Javadoc, добавленных к классам.
Для создания документации Javadoc для проекта:
Выберите проект «MyLib».
Выберите «Выполнить» > «Создать документацию Javadoc для MyLib» в главном меню среды IDE. Созданная документация Javadoc добавляется к папке dist проекта. Кроме того, в среде IDE открывается веб-браузер, в котором отображается документация Javadoc. Отправить отзыв по этому учебному курсу
Что дальше?
Дополнительные сведения об использовании IDE NetBeans для разработки приложений Java SE см. следующие ресурсы: