Введение в разработку веб-приложений
В этом документе представлены базовые аспекты разработки веб-приложений в среде IDE NetBeans. Также здесь рассматриваются способы создания простого веб-приложения, его развертывания на сервере и просмотра в обозревателе. В этом приложении будет создана страница JavaServer Pages™ (JSP) с запросом на ввод имени пользователя. Для сохранения введенного имени в рамках сеанса HTTP и повторения имени на другой странице JSP будет применяться компонент JavaBeans™.
Содержание

Для работы с этим руководством требуются программное обеспечение и ресурсы, перечисленные ниже.
Примечания
- Вариант установки "Web and Java EE" позволяет дополнительно установить сервер приложений GlassFish 2.1 и контейнер сервлетов Apache Tomcat 6.0.x. Для продолжения работы с этим учебным курсом следует установить один из этих продуктов.
- Для использования функциональных возможностей Java EE 5 в среде IDE NetBeans используйте сервер приложений, который является полностью совместимым со спецификацией Java EE 5, например, сервер приложений GlassFish 2.1 UR2. В случае использования другого сервера ознакомьтесь с разделами Заметки о выпуске и Часто задаваемые вопросы для получения сведений об известных проблемах и их решениях. Для получения подробной сведений о поддерживаемых серверах и платформе Java EE см. заметки к выпуску.
- Если необходимо сравнить проект с рабочим решением, можно загрузить демонстрационное приложение.
Настройка проекта веб-приложения
- Выберите в главном меню "File" > "New Project" (Ctrl+Shift+N). В области "Categories" выберите "Java Web". В области "Projects" выберите "Web Application" и нажмите кнопку "Next".
- В экране 2 введите HelloWeb в текстовом поле "Project Name".
- В поле "Project Location" укажите любой каталог на компьютере. В данном учебном курсе этот каталог будет называться $PROJECTHOME.
- (Дополнительно) Установите флажок "Use Dedicated Folder for Storing Libraries" и укажите местоположение папки библиотек. Для получения дополнительных сведений об этой возможности обратитесь к разделу Совместное использование библиотек проекта.
- Нажмите кнопку "Next". Откроется панель сервера и параметров настройки. Выберите версию Java EE, которую требуется использовать для приложения.
- Выберите сервер, на котором требуется выполнить развертывание приложения. В списке представлены только те серверы, которые зарегистрированы в среде IDE. Обратите внимание, что для поля "Context Path" (например, на сервере) устанавливается значение /HelloWeb в основе которого находится имя проекта, указанное при выполнении предыдущего действия.
- Нажмите кнопку "Далее". На экране "Frameworks" нажмите кнопку "Finish" для создания проекта.
В среде IDE будет создана папка проекта $PROJECTHOME/HelloWeb. Папка проекта содержит все исходные файлы и метаданные проекта, например сценарий сборки Ant. После этого проект "HelloWeb" откроется в среде IDE. В главном окне редактора исходного кода будет представлена страница приветствия index.jsp. Структуру файлов проекта можно просмотреть в окне "Files" (Ctrl+2), а его логическую структуру – в окне "Projects" (Ctrl+1).

Создание и изменение исходных файлов веб-приложения
Наиболее важной функцией IDE является создание и изменение исходных файлов. Именно эти операции при разработке являются основными. Среда IDE предоставляет широкий спектр средств, подходящих под личный стиль любого разработчика, как сторонника кодирования вручную, так и разработчика, предпочитающего предоставить среде IDE создание крупных блоков кода.
Создание пакета Java и исходного файла Java
- В окне "Projects" разверните узел "Source Packages". Обратите внимание, что узел "Source Packages" содержит только пустой узел пакета по умолчанию.
- Щелкните узел "Source Packages" правой кнопкой мыши и выберите "New" > "Java Class". Введите NameHandler в текстовом поле "Class Name" и org.mypackage.hello в поле списка "Package". Нажмите кнопку "Finish". Новый файл NameHandler.java будет открыт в редакторе исходного кода.
- Объявите в редакторе исходного кода переменную String, введя непосредственно под объявлением класса следующую строку:
String name;
- Добавьте следующий конструктор к классу:
public NameHandler()
- Добавьте следующую строку в конструктор NameHandler():
name = null;
Создание методов получения и установки
- Щелкните правой кнопкой мыши поле name в редакторе исходного кода и выберите "Refactor" > "Encapsulate Fields". Откроется диалоговое окно "Encapsulate Fields", в котором имеется поле name. Обратите внимание, что для параметра "Visibility" полей по умолчанию установлено значение "private", а для средств доступа – значение "public", что указывает на то, что модификатор доступа для объявления переменной класса будет определен как "private", в то время как методы получения и установки будут созданы с модификаторами public и private, соответственно.

- Нажмите кнопку "Refactor". Для поля name создаются методы получения и установки. Модификатор для переменной класса определяется как private, в то время как методы получения и установки создаются с модификаторами "public". Класс Java должен теперь выглядеть следующим образом.
package org.mypackage.hello;
/**
*
* @author nbuser
*/
public class NameHandler {
private String name;
/** Creates a new instance of NameHandler */
public NameHandler() {
name = null;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Изменение файла JavaServer Pages по умолчанию
- Активируйте файл index.jsp, перейдя на вкладку, отображаемую в верхней части редактора исходного кода.
В палитре (Ctrl+Shift+8), расположенной справа от редактора исходного кода, разверните узел "HTML Forms" и перетащите элемент "Form" в позицию, находящуюся в редакторе исходного кода непосредственно после тегов <h1>.
Появится диалоговое окно "Insert Form".
- Установите следующие значения:
- Action: response.jsp;
- Method: GET;
- Name: Name Input Form.
Нажмите кнопку "OK". К файлу index.jsp добавляется форма HTML.

- Перетащите элемент "Text Input" в позицию непосредственно перед тегом </form>, затем установите следующие значения:
Нажмите кнопку "OK". Между тегами <form> будет добавлен тег HTML <input>.
- Перетащите элемент "Button" в позицию непосредственно перед тегом </form>. Установите следующие значения:
Нажмите кнопку "OK". Между тегами <form> будет добавлена кнопка HTML.
- Введите Enter your name: непосредственно перед первым тегом <input>, затем измените текст по умолчанию Hello World!, расположенный между тегами <h1>, на Entry Form.
- Щелкните правой кнопкой мыши в редакторе исходного кода и выберите "Format" (Alt+Shift+F) для переформатирования кода. Файл index.jsp должен теперь выглядеть следующим образом:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Страница JSP</title>
</head>
<body>
<h1>Форма ввода</h1>
<form name="Name Input Form" action="response.jsp">
Введите имя:
<input type="text" name="name" />
<input type="submit" value="OK" />
</form>
</body>
</html>
Создание файлов JavaServer Pages
- В окне "Projects" щелкните правой кнопкой мыши узел проекта "HelloWeb" и выберите "New" > "JSP". Откроется мастер "New JSP File". Назовите файл response и нажмите кнопку "Finish". Обратите внимание на то, что узел файла response.jsp отображается в окне "Projects" под файлом index.jsp, а новый файл открывается в редакторе исходного кода.
-
На палитре справа от редактора исходного кода разверните узел "JSP" и поместите элемент "Use Bean" непосредственно под тегом <body> в редакторе исходного кода. Откроется диалоговое окно "Insert Use Bean". Укажите значения, как показано на следующем рисунке.
- ID: mybean;
- Class: org.mypackage.hello.NameHandler;
- Scope: session.
Нажмите кнопку "OK". Обратите внимание на то, что под тегом <body> добавляется тег <jsp:useBean>.
- Перетащите элемент "Set Bean Property" из палитры и поместите его непосредственно перед тегом <h1>. Нажмите кнопку "OK". В появившемся теге <jsp:setProperty> удалите пустой атрибут value и измените его следующим образом: Eсли средой IDE был создан атрибут value = "", удалите его. В противном случае значение name, введенное в форме index.jsp, будет перезаписано.
<jsp:setProperty name="mybean" property="name" />
Как указано в документации <jsp:setProperty>, значение свойства можно установить различными способами. В этом случае вводимые пользователем данные из index.jsp становятся парой имя/значение, передаваемой в объект request. При установке свойства с помощью тега <jsp:setProperty> можно указать значение в соответствии с именем свойства, содержащегося в объекте request. Поэтому при определении property в качестве name можно получить значение, указанное пользователем при вводе.
- Измените текст между тегами <h1> следующим образом:
<h1>Hello, ! </h1>
- Перетащите элемент "Get Bean Property" из палитры в позицию непосредственно после запятой между тегами <h1>. Укажите следующие значения в диалоговом окне "Insert Get Bean Property":
- Bean Name: mybean;
- Property Name: name.
Нажмите кнопку "OK". Обратите внимание на то, что между тегами <h1> теперь добавлен тег <jsp:getProperty>.
- Щелкните правой кнопкой мыши редактор исходного кода и выберите команду "Format" (Alt+Shift+F) для переформатирования кода. Теперь теги <body> файла response.jsp должны выглядеть следующим образом:
<body>
<jsp:useBean id="mybean" scope="session" class="org.mypackage.hello.NameHandler" />
<jsp:setProperty name="mybean" property="name" />
<h1>Привет, <jsp:getProperty name="mybean" property="name" />!</h1>
</body>
Выполнение проекта веб-приложения
Для сборки и выполнения веб-приложений в среде IDE используется сценарий сборки Ant. Сценарий сборки создается средой на основе параметров, определенных в мастере создания проекта, а также в диалоговом окне проекта "Project Properties" (в окне "Projects" выберите "Properties" в контекстном меню узла проекта).
В окне "Projects" щелкните правой кнопкой мыши узел проекта "HelloWeb" и выберите "Run" (F6).
Примечание. По умолчанию проект создается с включенной функцией компиляции при сохранении, поэтому для выполнения приложения в среде IDE его предварительная компиляция не требуется. Для получения дополнительных сведений о функции компиляции при сохранении обратитесь к разделу "Компиляция при сохранении" учебного курса Создание, импорт и настройка проектов Java.
В обозревателе по умолчанию открывается страница index.jsp

Введите имя в текстовом поле и нажмите кнопку "OK". На экране появится страница response.jsp с простым приветствием.

Устранение проблем
Я создал и запустил проект. При нажатии кнопки "OK" для index.jsp на экране появляется страница ошибки, указывающая на то, что файл response.jsp недоступен.
Убедитесь в том, что используется версия пакета JDK 5 или выше. В главном меню выберите "Help" > "About" и проверьте версию пакета JDK, используемую в среде IDE. Убедитесь в том, что используется версия Tomcat 5.x или выше. Выберите "Tools" > "Servers" в главном меню. Выберите сервер, используемый проектом, и проверьте запись "Server Type", отображаемую в верхней части диалогового окна. Кроме того, можно загрузить демонстрационный проект и сравнить его с собственным проектом.
Я создал и выполнил проект, но имя не выводится на экран, отображается только "Привет, !"
В теге <jsp:setProperty> содержится атрибут value = ""? Он перезаписывает значение, введенное в форме index.jsp и заменяет его пустой строкой. Удалите атрибут value.
Дополнительные сведения
Это заключительный раздел учебного курса "Введение в разработку веб-приложений". В этом документе описано создание простого веб-приложения с использованием среды IDE NetBeans, его развертывание на сервере и просмотр в обозревателе. В нем также рассматривается использование технологий JavaServer Pages и JavaBeans в приложении для сбора, сохранения и вывода пользовательских данных.
Для получения более подробной информации о разработке веб-приложений в среде IDE NetBeans см. приведенные ниже материалы: