Главная » Delphi » Меню навигации WebSnap

0

Теперь добавим  следующую страницу, которая продемонстрирует меню  навигации. Перейдите в главное меню  IDE и выберите вторую  кнопку  в панели меню  Internet (ту, что с небольшим земным  шаром  и листом  бумаги). Она  вызовет мастер  нового модуля страницы WebSnap  (New WebSnap Page Module Wizard), который похож на диалоговоеокно предыдущего мастера. Оставьте все параметры со значениями, установленными по умолчанию, кроме  поля  редактирования Name. Назовите эту страницу Simple. В ре зультате  будет создан  Web модуль с одним  генератором страниц. Обратите внимание: страница HTML,  ассоциированная с ним, имеет  то же самое содержимое, что и первая страница, рассмотренная выше. Сохраните блок как wmSimple.pas.

Установка  параметров  экземпляров и кэширования

Мастер нового модуля страницы WebSnap содержит в нижней части два параметра, которые определяют способ обработки каждого экземпляра Web-модуля. Первый па- раметр — Creation (Создание). Web-модули могут создаваться либо всегда (Always), либо по требованию (On Demand). Экземпляры Web-модулей, создаваемых по требо- ванию, будут созданы лишь тогда, когда для этого будет передан специальный запрос. Такой подход выбирают для редко используемых страниц. Для страниц, которые должны быть созданы непосредственно после запуска приложения, выберите пара- метр Always. Вторым параметром является Caching Option (Параметр кэширования). Он определяет то, что случается с Web-модулем, когда он завершит обработку запро- са. Если выбрать Cache Instance, то каждый создаваемый Web-модуль будет кэширо- ваться, а при завершении обработки запроса оставаться в пуле кэшируемых экземп- ляров, готовых для повторного использования. Следует заметить, что при повторном использовании данные полей будут в том же самом состоянии, в котором они были при завершении последнего запроса. Если выбрать Destroy Instance, то после завер- шения обработки запроса каждый экземпляр Web-модуля будет удален.

Теперь добавьте в страницу HTML  простое сообщение ниже  таблицы в стандарт ной  странице. Затем  скомпилируйте  и  запустите приложение через отладчик Web приложений, как и прежде. Если  с прошлого раза  там  еще  оставалась страница, то достаточно щелкнуть на кнопке  Refresh (Обновить) броузера.

На сей раз при запуске приложения обратите внимание на появившееся меню на

вигации. Это меню является результатом следующего серверного сценария:

<%

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)

%>

Рис.  23.10.  Компонент  TAdapterPageProducer,  содержащий  ком  понент LoginFormAdapter, в окне Web дизайнера

Вот и все, что  нужно было  сделать.  Запустите приложение и оставьте его в таком состоянии. Приложение нельзя  закрывать, поскольку  вся информация о регистрации пользователей хранится в объектах сеанса, расположенных в памяти, и если  их уда лить,  то приложение “забудет” зарегистрированных пользователей. Запустите при ложение в броузере, а затем  попробуйте перейти к защищенной странице. Это пере направит броузер на страницу регистрации (Login). Введите  имя пользователя и па роль,  а затем  щелкните на кнопке Login. Если  введено допустимое имя  и пароль, то броузер  перейдет на защищенную страницу, содержащую  соответствующее приветст вие.  С этого  момента любая  страница, требующая аутентификации, будет предостав лена беспрепятственно. Если имя или пароль будут введены неправильно, то страни ца регистрации появится вновь.  Интереснее всего  то,  что  все  это  реализовано без единой строки кода Object  Pascal.

Пробуйте  сделать   следующее:   выйдите  из  защищенной  страницы,  щелкнув  на ссылке  Logout (Выход), а затем  попытайтесь войти на нее  снова,  но с недопустимым именем пользователя или паролем. В этом случае появится сообщение об ошибке.  Та ково  действие компонента AdapterErrorList. Он  автоматически обрабатывает ошибки  регистрации и самостоятельно отображает их.Обратите внимание, что  при  навигации по страницам приложения после  успеш ной  регистрации пользователя приложение помнит его имя и отображает его в заго ловке каждой  страницы. Это результат работы следующего  серверного сценария фай ла HTML для Web модулей:

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

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

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

<%      } %>

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии