Фактически все серверные каркасы программирования добавляют уровень абстракции к необработанным данным формы. Они разбивают эту строку и представляют ее более полезным способом. Например, JSP, ASP и ASP.NET позволяют извлекать значение элемента управления формы с использованием тонкого объектного уровня. В ASP и ASP.NET можно искать значения по имени в коллекции Request.Form. Ниже представлен пример в ASP.NET:

string firstName = Request.Form["FirstName"];

Этот тонкий "слой" поверх сообщения POST полезен, но все же далек от истинной объектно-ориентированной структуры. Вот почему ASP.NET делает еще один шаг вперед. Когда страница отправляется обратно системе ASP.NET, она извлекает значения, заполняет коллекцию Form (для обратной совместимости с кодом ASP) и затем конфигурирует соответствующие объекты элементов управления. Это означает, что для извлечения информации можно использовать следующий намного более содержательный синтаксис:

string firstName = txtFirstName.Text;

Данный код также обладает преимуществом безопасности типов. Иначе говоря, при извлечении состояния флажка вы получите логическое значение "истина" или "ложь" вместо слова on. В результате разработчики оказываются изолированными от индивидуальных особенностей синтаксиса HTML.

На заметку! В ASP.NET все элементы управления помещены в отдельном дескрипторе <form>. Этот дескриптор помечен атрибутом runat="server", который позволяет ему работать на сервере. ASP.NET не допускает создание Web-форм, содержащих более одного серверного дескриптора <form>, хотя можно создавать страницы, выполняющие отсылку информации другим страницам, с использованием технологии под названием межстраничной отсылки, которая рассматривается в главе 6.

Динамические интерфейсы

Несомненно, модель элементов управления облегчает извлечение информации о форме. Еще более примечательно то, что она упрощает жизнь при необходимости добавления информации к странице. Почти все свойства элемента управления Web можно считывать и устанавливать. Это означает, что, например, свойство текстового поля Text можно установить так же просто, как и прочитать его.

Например, рассмотрим, что происходит, если вы собираетесь обновить часть текста на Web-странице для отражения какой-либо информации, введенной ранее пользователем. В классической ASP вам понадобится найти удобное место для вставки блока сценария, записывающего HTML-код. Ниже представлен пример, отображающий приветственное сообщение, окрашенное в яркий цвет:

string message = "<span style=\"color:Red\">Welcome " +
  FirstName + " " + LastName + "</span>";
Response.Write(message);

С другой стороны, ситуация упрощается при определении в ASP.NET элемента управления Label (метка):

<asp:Label id="lblWelcome" runat="server" />

предыдущая    следующая страница   оглавление

104

Hosted by uCoz