Московский государственный университет имени М.В.Ломоносова
Опубликован: 20.12.2005 | Доступ: свободный | Студентов: 3142 / 371 | Оценка: 4.22 / 3.86 | Длительность: 12:03:00
ISBN: 978-5-9556-0068-0
Лекция 14:

Создание серверных приложений

< Лекция 13 || Лекция 14: 1234567

Компонент IXPAGEPRODUCER

Для реализации доступа к данным можно использовать компоненты страницы InternetBeans палитры компонентов.

На вкладке Design окна редактора следует добавить в окно структуры компонент IxPageProducer со страницы InternetBeans палитры компонентов.

Объект ixPageProducer1 будет помещен в секцию Other окна структуры (рис. 14.2).

Компонент IxPageProducer страницы InternetBeans

Рис. 14.2. Компонент IxPageProducer страницы InternetBeans

При этом в код модуля добавляется строка:

IxPageProducer ixPageProducer1 = new IxPageProducer();

Для определения связи с модулем данных установите значения следующих свойств объекта ixPageProducer1:

  • свойство dataModule должно указывать используемый модуль данных (например, DataModule11 );
  • свойство htmlFile должно определять имя HTML-файла, содержащего шаблон.

Обратите внимание, что свойство rootPath автоматически будет установлено равным полному пути к указанному имени HTML-файла.

Одновременно с этим в код модуля будет добавлен вызов метода ixPageProducer1.setHtmlFile("C:\\ File1.html");.

Компонент IXCONTROL

Компонент IxControl позволяет устанавливать связь между элементом управления HTML-страницы и полем набора данных.

На вкладке Design окна редактора следует добавить в окно структуры компонент IxControl со страницы InternetBeans палитры компонентов.

Объект ixControl1 будет помещен в секцию Other окна структуры.

Одновременно с этим в код модуля добавляется следующая строка:

IxControl ixControl1 = new IxControl();

Для связывания элемента управления с полем набора данных установите значения следующих свойств объекта ixControl1:

  • свойство dataset должно указывать используемый набор данных (например, customer );
  • свойство columnName должно определять имя поля набора данных;
  • свойство pageProducer должно указывать компонент типа IxPageProducer (например, ixPageProducer1 );
  • свойство controlName должно определять элемент управления формы и устанавливается равным атрибуту name тега input.

Для каждого поля набора данных следует добавить свой компонент типа IxControl.

Обработка событий

Компонент IxControl может выполнять обработку событий. Так, если данный компонент связан с командной кнопкой Submit, то для обработки события следует перейти на вкладку Events и создать обработчик события submitPerformed.

Например:

ixControl2.addSubmitListener(new 
com.borland.internetbeans.SubmitListener() {
      public void submitPerformed(SubmitEvent e) {
        ixControl2_submitPerformed(e);
      }
    });
:
void ixControl2_submitPerformed(SubmitEvent e) {

  }

Вставьте в тело метода обработчика события submitPerformed следующий код:

// Запрос текущего модуля данных:
    DataModule1 dm = (DataModule1) ixPageProducer1.getSessionDataModule(e.getSession());
// передача и сохранение данных, введенных пользователем, 
// в источнике данных, определенным модулем данных:
    dm.getCustomer().post();
    dm.getCustomer().saveChanges();
// Метод getCustomer - это автоматически сформированный метод модуля 
//данных DataModule1.java, возвращающий объект типа QueryDataSet

Методы post и saveChanges класса QueryDataSet используются для передачи и сохранения изменений в базе данных.

Компонент IXTABLE

Компонент IxTable определяет динамически генерируемый набор данных.

Для определения набора данных установите значения следующих свойств объекта IxTable:

  • свойство pageProducer должно указывать объект типа IxPageProducer ;
  • свойство dataset должно определять набор данных;
  • свойство elementId определяет таблицу HTML-файла и устанавливается равным атрибуту id тега table.

Методы DOPOST и DOGET

Методы doPost и doGet кода сервлета используются для обработки HTTP-запроса и формирования возвращаемой HTML-страницы.

При использовании компонента IxPageProducer в тело метода doGet следует вставить только одну строку:

ixPageProducer1.servletGet(this, request, response);

Метод servletGet класса IxPageProducer выполняет следующие начальные действия по обработке GET HTTP-запроса:

  • создает для запроса пользователя новый объект типа HttpSession ;
  • при необходимости устанавливает тип запроса, соответствующий шаблону;
  • предоставляет страницу с динамическим содержанием, записываемую в поток вывода.

При использовании компонента IxPageProducer в тело метода doPost могут быть вставлены следующие строки:

//  Получение объекта модуля данных:
DataModule1 dm = (DataModule1) 
       ixPageProducer1.getSessionDataModule(request.getSession());
    ixPageProducer1.servletPost(this, request, response);
// Отображение данных, переданных из формы
    doGet(request, response);

Метод doPost в данном примере используется для обработки параметров запроса. Для динамического формирования HTML-документа вызывается метод doGet.

Метод servletPost класса IxPageProducer выполняет начальные действия по обработке POST HTTP-запроса и, если была нажата кнопка submit, то вызывает обработчик события submitPerformed.

< Лекция 13 || Лекция 14: 1234567