49274 (Технологія WebSnap)

2016-07-28СтудИзба

Описание файла

Документ из архива "Технологія WebSnap", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49274"

Текст из документа "49274"

Лабораторна робота

Технологія Web Snap

Мета: отримання практичних навиків обміну даними між прикладенням C++ Builder і базою даних інформаційної системи в комп'ютерній мережі Internet з використанням технології WebSnap.

Завдання:

  • засобами C++ Builder із використанням технології WebSnap створити оригінальне (!) прикладення, яке складається з декількох html-сторінок;

  • використати панель навігації, адаптери і парольний доступ до сторінок, реалізовані засобами технології WebSnap;

  • забезпечити зв'язок прикладення з БД типу InterBase (або ін.): забезпечити можливість перегляду і редагування записів перетину таблиці БД за допомогою html-сторінок.

Вказівки по встановленню і налагодженню Web-сервера IIS

  • Якщо Web-сервер не встановлений, то необхідно його встановити таким чином: виконати команду Пуск | Панель управления, обрати піктограму Установка и удаление программ, потім обрати пункт Установка компонентов Windows, відзначити галочкою Internet Information Services (IIS) і виконати подальші інструкції операційної системи.

  • Після успішного встановлення необхідно запустити IIS, для чого виконати команду Пуск | Панель управления, обрати піктограму Администрирование, обрати ярлик Internet Information Services, а в списку, що з'явився, - Веб-узел по-умолчанию (мал.1) і натиснути кнопку запуску.

Малюнок 1

  • Для налагодження Веб-узла по умолчанию треба в контекстному меню обрати команду Свойства і встановити параметри згідно мал. 2.

Малюнок 2

Нижче описана методика створення WebSnap-сервера, що підтримує повний інтерфейс редагування і перегляду для набору даних з графічними полями. Такий WebSnap-сервер не вимагає написання коду. Проте, він підтримує повний набір функціональних можливостей з модифікації таблиці БД за допомогою браузера.

Приклад 1. Простий WebSnap-сервер

Для створення WebSnap-сервера у середовищі Borland C++ Builder 6 скористаємося майстром, який викликається командою File | New | Other | WebSnap | WebSnap Application (мал. 3).

На екрані відобразиться діалог (мал. 4).

Малюнок 3

Група параметрів Server type дозволяє обрати тип прикладення.

Група Application Module Components (модуль компонентів прикладення) призначена для вибору компонентів, які будуть розташовані в основному модулі прикладення і вид модуля. Модуль компонентів Web-прикладення використовується для централізації керування діловими правилами і не візуальними компонентами.

Малюнок 4

Можна вибрати один з двох видів модулів:

  • Модуль Web-сторінки (Page Module) включає компоненти: PageProducer, WebAppServices, ApplicationAdapter, LogicalPageDispatcher, і AdapterDispatcher. З використанням модуля Web-сторінки в редакторі коду можна переглянути unit Web-сторінки, html-код і виконати попередній перегляд Web-сторінки після компіляції і виконання модуля.

  • Модуль даних (Data Module) включає компоненти: PageProducer, WebAppServices, ApplicationAdapter, LogicalPageDispatcher, і AdapterDispatcher.

Слово Application у назві модуля вказує на те, що модуль буде головним у прикладенні. Натиснувши кнопку Components, можна побачити діалог вибору компонентів (мал. 5), які будуть розташовані в модулі прикладення.

Група Application Module Options дозволяє набудувати параметри основного модуля прикладення. Параметр Page Name дозволяє вказати ім'я сторінки модуля (доступний лише для типу модуля Page Module). Параметр Caching дозволяє задати режим кешування прикладення. За умовчанням параметр має значення Cache Instance (дозволити кешування). Друге можливе значення - Destroy Instance відключає кешування. Залишимо даний параметр без зміни. Кнопка Page Options викликає діалог налагодження параметрів модуля прикладення (мал. 6). Група параметрів Producer дозволяє обрати тип продюсера сторінки (рядок введення Type) і скриптову мову (JScript або VBasic). Група HTML дозволяє вказати шаблон для генерації HTML-сторінки. Група Page дозволяє набудувати параметри сторінки: ім'я, заголовок, видимість (параметр published) і необхідність аутентифікації користувача для перегляду даної сторінки (параметр Login Required). Ім'я дублює параметр Page Name попереднього діалогу.

Малюнок 5

Малюнок 6

Оберімо як Script Engine значення JScript, а як параметр Template – значення Standard. Натиснемо кнопки Ok для виходу з діалогів. Borland C++ Builder 6 згенерує заготівку проекту (мал. 7 –8).

Малюнок 7

Малюнок 8

Тепер треба модифікувати створений модуль так, щоб надалі не довелося упроваджувати в нього пакети реального часу (у тому числі і динамічні бібліотеки RTL). Хоча у результаті об'єм виконуємого модуля збільшиться, він зможе працювати на будь-якій платформі, включаючи і такі, де відсутній C++ Builder. Для цього у головному меню C++ Builder оберіть команду Project | Options. У діалоговому вікні Project Options, яке з'явиться після цього на екрані, відкрийте сторінку Linker і скиньте прапорець Use Dynamic RTL (використовувати динамічну бібліотеку RTL). Відкрийте сторінку Packages і скиньте прапорець Builder with Runtime Packages (Компілювати з пакетами реального часу).

Тепер залишилося зберегти і скомпілювати проект. Одержаний виконуваний файл і шаблон сторінки Unit1.html треба розташувати на Web-сервері у каталозі скриптів (для IIS це каталог c:\Inetpub\Scripts). Запустимо Web-браузер Internet Explorer і в рядку адреси наберемо http://localhost/Scripts/Project1.dll (у разі використання Apache та для інших Web-серверів адреса буде іншою). У вікні браузера ми побачимо напис PageProducerPage1 (мал. 9).

Малюнок 9

Приклад 2. Використання панелі навігації у WebSnap-сервері

Для доопрацювання сторінки встановимо властивість ApplicationTitle компоненту ApplicationAdapter у значення «WebSnap-приложение №2». А зараз сюрприз: HTML-сторінка, що згенерована, може бути переглянута без перенесення прикладення на Web-сервер (візуалізація сторінок може значно прискорити розробку Web-прикладень). Для цього необхідно обрати закладку Preview у нижній частині вікна редагування (мал. 10).

Малюнок 10

Друга закладка Unit1.html – містить текст шаблона html-сторінки, а закладка HTML Result – результуючий HTML-код.

Текст шаблону html-сторінки

Welcome

Logout

Login

<% e = new Enumerator(Pages)

s = ''

c = 0

for (; !e.atEnd(); e.moveNext())

{

if (e.item().Published)

{

if (c>0) s += ' | '

if (Page.Name != e.item().Name)

s += '' + e.item().Title + ''

else

s += e.item().Title

c++

}

}

if (c>1) Response.Write(s)

%>

Результирующий html-код

PageProducerPage1

WebSnap-приложение №2

PageProducerPage1

WebSnap-прикладення в реальних проектах містить декілька модулів сторінок. Додамо новий модуль сторінки у прикладення командою File | New | Other | Web Snap | WebSnap Page Module. У діалозі вибору параметрів модуля (мал. 3.11) натиснемо кнопку ОК, - одержимо модуль сторінки з ім'ям PageProducerPage2 (мал. 3.12).

Малюнок 11

Малюнок 12

Тепер, побудуємо прикладення і розташуємо його на Web-сервері (для цього необхідно скопіювати файли Unit1.html, Unit2.html, Project1.dll у теку для скриптів на сервері). Запустимо Web-браузер Internet Explorer і у рядку адреси наберемо http://localhost/scripts/project1.dll (у разі використання Apache і для інших Web-серверів адреса буде іншою). У вікні браузера побачимо, що нижче за заголовка з'явилася панель навігації по сторінках прикладення (мал. 3.13).

Малюнок 13

Відразу виникає питання, а як вона з'явилася, адже ми нічого не робили для її генерації? Відповідь криється у файлі Unit1.html. Крім HTML-тегів Web-сторінка містить теги , усередині яких розташовані оператори скриптової мови. Дані оператори виконуються на боці сервера, результат їх роботи вставляється в сторінку, що надсилається клієнту. Зі скриптів можна звертатися до більшості компонентів, розташованих в модулях. Це вносить чудову гнучкість і відкриває великі можливості для створення складних динамічних сторінок.

Текст скрипта необхідно укладати в тег . В якості скриптової мови можуть застосовуватися JScript і VBScript. Ми використовуватимемо JScript. Тепер стає ясно, що функція:

<% e = new Enumerator(Pages)

s = ''

c = 0

for (; !e.atEnd(); e.moveNext())

{

if (e.item().Published)

{

if (c>0) s += ' | '

if (Page.Name != e.item().Name)

s += '' + e.item().Title + ''

else

s += e.item().Title

c++

}

}

if (c>1) Response.Write(s)

%>

у файлі Unit1.html генерує панель навігації. Текст функції достатньо зрозумілий, деякі коментарі необхідні лише для останнього оператора Response.Write. Цей оператор виводить рядок з результатом роботи скрипта в HTML-файл сторінки. Ще один приклад можна побачити в тому ж Unit1.html:

В результаті роботи цього скрипта на сторінку виводиться її заголовок.

Приклад 3. Використання адаптерів у WebSnap-сервері

Адаптери призначені для зберігання різних параметрів і процедур; вони надають можливість звертатися до них зі скрипта. Сторінка WebSnap палітри компонентів Borland C++ Builder 6 містить декілька видів адаптерів. Найбільш неспеціалізованим є адаптер класу TAdapter. Параметри адаптера зберігаються в так званих полях (AdapterFields), які надають програмісту можливість задати оброблювачі для отримання значення поля та інших його параметрів. Клас TAdapter має властивість Data для зберігання полів і керування ними. Процедури дозволяють викликати зі скрипта виконання яких-небудь дій; для керування ними клас TAdapter містить властивість Actions.

Розглянемо приклад створення сторінки для введення імені користувача. Розташуймо компонент Adapter в модулі PageProducerPage2. Визначимо поле, яке повертатиме ім'я користувача. Для цього з інспектора об'єктів викличемо редактора властивості Data адаптера Adapter1. У редакторі натиснемо кнопку New Item. Нам буде запропонований діалог вибору типу поля (мал. 13).

Малюнок 13

Оберімо тип AdapterField, оскільки він найбільш підходить для зберігання невеликих рядків. У діалозі при цьому з'явиться елемент AdapterField1, відповідний полю. Оберімо його. Тепер в інспекторі об'єктів перейдемо на закладку Events і визначимо текст оброблювача події OnGetValue. Дана подія виникає кожного разу, коли потрібно дізнатися значення поля. Значення поля, що зажадалося, необхідно повертати через параметр Value, передаваний в оброблювач. Код оброблювача:

void __fastcall TPageProducerPage2::AdapterField1GetValue(TObject *Sender,

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее