Смекни!
smekni.com

Технологія WebSnap (стр. 1 из 3)

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

Технологія 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-сторінки

<html>

<head>

<title><%= Page.Title %></title>

</head>

<body>

<h1><%= Application.Title %></h1>

<% if (EndUser.Logout != null) { %>

<% if (EndUser.DisplayName != '') { %>

<h1>Welcome <%=EndUser.DisplayName %></h1>

<% } %>

<% if (EndUser.Logout.Enabled) { %>

<a href="<%=EndUser.Logout.AsHREF%>">Logout</a>

<% } %>

<% if (EndUser.LoginForm.Enabled) { %>

<a href=<%=EndUser.LoginForm.AsHREF%>>Login</a>

<% } %>

<% } %>

<h2><%= Page.Title %></h2>

<table cellspacing="0" cellpadding="0">

<td>

<% e = new Enumerator(Pages)

s = ''

c = 0

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

{

if (e.item().Published)

{

if (c>0) s += '&nbsp;|&nbsp;'

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

s += '<a href="' + e.item().HREF + '">' + e.item().Title + '</a>'

else

s += e.item().Title

c++

}

}

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

%>

</td>

</table>

</body>

</html>

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

<html>

<head>

<title>

PageProducerPage1

</title>

</head>

<body>

<h1>WebSnap-приложение №2</h1>

<h2>PageProducerPage1</h2>

<table cellspacing="0" cellpadding="0">

<td>

</td>

</table>

</body>

</html>

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. Тепер стає ясно, що функція: