Logo
Сделано:                             
VovaN'ом          
e-mail: vovchik88@inbox.ru 

  Главная Серверные скрипты ASP

Языки разметки
SGML
HTML
XML
Серверные скрипты
PHP
ASP
Клиентские скипты
JavaScript

    Создание страницы ASP

Файл Active Server Pages (ASP) представляет собой текстовый файл с расширением «.asp». Этот файл может содержать:
  • текстовые данные;
  • теги языка HTML;
  • серверные сценарии.


  • Для быстрого создания файла «.asp» достаточно переименовать HTML-файл, сменив расширение «.htm» или «.html» на «.asp». Если файл не содержит функций ASP, сервер просто выполняет эффективную отправку файла на компьютер пользователя. Эта черта обеспечивает дополнительные удобства для веб-разработчиков, которые могут давать файлам расширение «.asp», даже если не предполагают впоследствии включать в них функции ASP.

    Для опубликования вновь созданного файла «.asp» в Интернете следует сохранить его в виртуальном каталоге веб-узла (последний должен иметь разрешение «Сценарий» или «Выполнение»). После этого можно обратиться к данному файлу в запросе, указав в обозревателе соответствующий адрес URL. (Необходимо помнить, что поскольку страницы ASP должны обрабатываться на сервере, ввод физического пути к файлу «.asp» в данном случае недопустим.) Переданный сервером файл при просмотре в обозревателе представляет собой страницу HTML. В этом есть определенный смысл, так как перед отправкой файла на сервере выполняется его синтаксический анализ и выполняются все серверные сценарии ASP. Поэтому пользователи всегда получают обычные файлы HTML.

    Файлы «.asp» могут создаваться в любом текстовом редакторе. По мере накопления опыта более удобной может оказаться работа в специальном редакторе, включающем дополнительную поддержку ASP, таком как Microsoft® Visual InterDev™. (Дополнительные сведения см. на веб-узле Microsoft Visual InterDev по адресу http://msdn.microsoft.com/vinterdev/ .)

    Добавление команд в сценарий для сервера

    Серверный сценарий состоит из последовательности инструкций, обеспечивающих поочередное поступление команд на веб-сервер. (Разработчикам веб-узлов могут быть хорошо знакомы клиентские сценарии, выполняющиеся в веб-обозревателе.) В файлах «.asp» для обособления сценариев от текстовых данных и команд HTML используются разделители. Разделителем является символ или последовательность символов, которыми обозначается начало или конец раздела. Язык HTML в качестве таких разделителей использует символы (<) и (>), между которыми располагаются теги HTML.

    В ASP команды сценариев заключаются в разделители <% и %>. В разделителях можно указывать любые допустимые команды используемого языка сценариев. Ниже показан пример простой страницы HTML с командами сценария.

    <HTML>
      <BODY>
      This page was last refreshed on <%= Now() %>.
      </BODY>
    </HTML>


    Функция VBScript Now() возвращает текущие дату и время. Во время обработки данной страницы веб-обозреватель заменит <%= Now() %> текущими значениями даты и времени и возвратит страницу обозревателю со следующим результатом:

    This page was last refreshed on 01/29/99 2:20:00 PM.

    Команды, заключенные в разделители, называются основными командами сценариев и обрабатываются при помощи основного языка сценариев. Команда внутри разделителей должна быть допустимой командой основного языка сценариев. По умолчанию основным языком сценариев является VBScript; можно назначить и другой язык сценариев по умолчанию.

    Разработчикам клиентских сценариев хорошо знаком HTML-тег <SCRIPT>, используемый для выделения команд и выражений. В серверных сценариях тег <SCRIPT> может применяться для определения процедур на нескольких языках, содержащихся в одном файле «.asp».

    Совместное использование тегов HTML и команд языка сценариев

    В разделители ASP можно поместить любую инструкцию, выражение, процедуру или оператор, применение которых разрешено в используемом основном языке сценариев. Под инструкцией в VBScript и других языках написания сценариев понимают синтаксически полную конструкцию, которой описывается один вид действия, объявления или определения. Примером часто используемой инструкции является условная инструкция If...Then...Else:

    <%
      Dim dtmHour

      dtmHour = Hour(Now())

      If dtmHour < 12 Then
        strGreeting = "Good Morning!"
      Else
        strGreeting = "Hello!"
      End If
    %>

    <%= strGreeting %>

    В зависимости от времени дня строковой переменной strGreeting в сценарии присваивается значение "Good Morning!" («Доброе утро!») или "Hello!" «Здравствуйте!». Инструкция <%= strGreeting %> отправляет текущее значение переменной в обозреватель.

    Таким образом, до 12:00 дня (по местному времени) на экраны пользователей выводится строка:
    Good Morning!
    После 12:00 пользователи увидят сообщение:
    Hello!

    Между различными частями инструкции может располагаться HTML-текст. Так, результат выполнения приведенного ниже сценария с тегами языка HTML и инструкцией If...Then...Else является таким же, как и в примере выше:

    <%
      Dim dtmHour

      dtmHour = Hour(Now())

      If dtmHour < 12 Then
    %>
      Good Morning!
    <% Else %>
      Hello!
    <% End If %>

    Если заданное в сценарии условие выполняется (полдень еще не наступил), веб-сервер отправляет в обозреватель указанный в условии текст HTML (“Good Morning”). В противном случае в обозреватель отправляется строка (“Hello!”), указанная после Else. Подобное чередование HTML-текста и команд сценариев часто применяется при работе с инструкцией If...Then...Else. Применение рассмотренной выше конструкции удобно, если приветствие требуется вывести в нескольких местах веб-страницы. Значение переменной устанавливается только один раз, после чего оно может использоваться многократно.

    HTML-текста может также передаваться в обозреватель непосредственно из команды сценария, а не размещаться между различными командами. Возврат текста в обозреватель осуществляется встроенным объектом ASP Response. Результат выполнения следующего сценария тот же, что и в предыдущем примере:

    <%
      Dim dtmHour

      dtmHour = Hour(Now())

      If dtmHour < 12 Then
        Response.Write "Good Morning!"
      Else
        Response.Write "Hello!"
      End If
    %>

    Команда Response.Write отправляет расположенный после нее текст в обозреватель. Инструкцию с Response.Write следует использовать в тех случаях, когда возвращаемый в обозреватель текст должен создаваться динамически. Таким образом, например, можно составить строку из значений нескольких переменных. Cледует заметить, что добавление команд сценария на страницу HTML можно осуществить несколькими способами.

    Допускается включение процедур, написанных на основном языке сценариев, с использованием разделителей ASP.

    При создании сценария на языке JScript непосредственно в команды ASP могут включаться блоки инструкций в фигурных скобках. В этих конструкциях допускается также присутствие HTML-тегов и текста. Пример. <%
      if (screenresolution == "low")
      {
    %>
    This is the text version of a page.
    <%
      }
      else
      {
    %>
    This is the multimedia version of a page.
    <%
      }
    %>
    --Or--
    <%
      if (screenresolution == "low")
      {
        Response.Write("This is the text version of a page.")
      }
      else
      {
      Response.Write("This is the multimedia version of a page.")
      }
    %>

    Работа с директивами ASP

    ASP предоставляет директивы, которые не входят в состав используемого языка сценариев: директиву для вывода данных и директиву для их обработки.

    В ASP директива вывода <%= выражение %> позволяет вывести значение выражения на экран. Эта директива вывода равнозначна команде Response.Write. Например, выражение <%= city %> можно использовать для вывода на экран слова Baltimore (текущее значение переменной) в обозревателе.

    Директива обработки <%@ ключевое слово %> позволяет передавать в ASP данные, которые необходимы для обработки файла «.asp». В следующем примере показаны директивы для VBScript в качестве основного языка сценариев на странице:

    <%@ LANGUAGE=VBScript %>

    Директива обработки должна быть первой строкой в файле «.asp». Если страница должна содержать несколько директив, они должны располагаться внутри одной пары разделителей. Включение в файл директивы обработки с помощью инструкции #include не допускается. (Дополнительные сведения см. в разделе Включение файлов.) От ключевого слова знак (@) должен отделяться пробелом. Ниже перечислены ключевые слова, которые могут применяться в директивах обработки.

    • LANGUAGE. Установка языка сценария для файла «.asp».
    • ENABLESESSIONSTATE. Это ключевое слово указывает на использование в файле «.asp» сведений о состоянии сеанса.
    • CODEPAGE. Установка кодовой страницы (кодировки символов) для файла «.asp».
    • LCID. Установка для файла кода языка (местности).
    • TRANSACTION. Выполнение файла «.asp» в контексте транзакции.

    Важно!   Одна директива может содержать несколько ключевых слов. Пары, образуемые ключевым словом и значением, должны разделяться пробелами. Пробелы (=) вокруг знака равенства не допускаются.

    В следующем примере задаются язык сценария и кодовая страница:

    <%@ LANGUAGE="JScript" CODEPAGE="932" %>

    Пустые промежутки в сценариях

    Если основным языком сценария является VBScript или JScript, ASP автоматически убирает пустые промежутки, которые могут встречаться в командах. В случае остальных языков написания сценариев эти промежутки сохраняются. Это обеспечивает правильность интерпретации команд в языках, где имеют значение местоположение элементов и отступы. Пустыми промежутками являются пробелы, знаки табуляции, возврата каретки и разрыва строки.

    В языках VBScript и JScript допускается оставлять промежутки после открывающим и перед закрывающим разделителем. Это облегчает чтение команд. Так, перечисленные ниже инструкции правильны:

    <% Color = "Green" %>
    
    <%Color="Green"%>
    
    <%
    Color = "Green"
    %>

    Промежуток между закрывающими разделителем одной инструкции и открывающим разделителем другой в ASP удаляется автоматически. Тем не менее, использование пропусков повышает легкость чтение. Чтобы сохранить промежуток между двумя инструкциями, например при отображении значений переменных в предложении, следует пользоваться знаком неразрывного пробела из языка HTML (&nbsp;). Например:

    <%
      'Define two variables with string values.
      strFirstName = "Jeff"
      strLastName = "Smith"
    %>
    
    <P>This Web page is customized for "<%= strFirstName %>&nbsp;<%= strLastName %>." </P>






    Вверх
    Hosted by uCoz