Active Server Pages

  1. Оператор IF

If...Then...Else

<% If Time >=#12:00:00 AM# And Time < #12:00:00 PM#
Then greeting = "Good Morning!"
Else greeting = "Hello!"
EndIf %>

или порождение страницы на сервере

<% If Time > = #12:00:00 AM# And Time < #12:00:00 PM# Then %>
Good Morning!
<% Else %>
Hello!
<% End If %>

2. Оператор FOR

<% for i = 3 to 7 %>
    <FONT SIZE=<% = i %>>Hello World</FONT><BR>
<% next %>
<BR>
<script language="VBScript">
for i = 3 to 7
    s=s+"<FONT SIZE=" + cstr(i) + ">Hello World</FONT><BR>"
next
document.writeln s
</script>

 

3. Оператор DO на примере связи с базой данных

<%Set Connection=Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=MyODBCdatabaseonServer"
S="SELECT DISTINCT city,zipcode FROM Client ORDER BY zipcode"
Set rs = Connection.Execute (S)%>
<FORM ACTION="/scripts/dropdown1.asp" METHOD = "POST" name="listall">
<select name="
Выберите город:" size="1">
<option value="" selected>
Ничего не выбрано...
<%Do Until rs.eof %>
<option value="<%=rs("City")%>"><%=rs("city")%></option>
<% rs.MoveNext
CurrentRecord = CurrentRecord + 1
Loop
rs.Close%>
</select>


4. Оператор CASE:

<TITLE>case</TITLE>
<%
dim name
name = "
Петров"
Select Case name
case "
Петров", "Сидоров", "Иванов"
response.write "
Это наши студенты "
case "
Васильев"
response.write "
А это наш преподаватель "
End Select
%>

 

5. Описание файла Global.asa

Файл Global.asa определяет приложение и должен храниться в виртуальной корневой директории. Если пользователь запрашивает страницу из виртуального каталога, то тем самым запускает приложение. Файл Global.asa может содержать следующие обработчики событий:

События приложения Application_OnStart и Application_OnEnd

Методы:

·         Lock

·         Unlock

Коллекции:

·         Application.Contents   <% Application("num") = 25 %>

если хранить массив в объекте Application, то следует получили копию массива прежде чем считывать или изменять любые его элементы.:

<%
dim MyArray()
Redim MyArray(5)
MyArray(0) = "
привет!"
MyArray(1) = "какая-либо другая строка"

'Запоминание массива в объекте Application
Application.Lock
Application("StoredArray") = MyArray
Application.Unlock

Response.Redirect("file2.asp")
%>

<% 'Получение массива из объекта и модицикация второго элемента
LocalArray = Application("StoredArray")
LocalArray(1) = " Люди!"

'вывод строки "привет! Люди!"
Response.Write(LocalArray(0)&LocalArray(1))

'Перезапись массива в объект Application
'
Данное действие перепишет значения в StoredArray на новые
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock
%>

·         Application.StaticObjects  <% Set Application("Obj1") = Server.CreateObject("MyComponent") %> и использовать его:
 <% Set MyLocalObj1 = Application("Obj1")
MyLocalObj1.MyObjMethod %>

События сессии  Session_OnStart и Session_OnEnd
Описание <OBJECT>
Описание typeLibrary

<SCRIPT LANGUAGE=”vbscript” runat=”Server”>
Sub Session_OnStart
End Sub

Sub Session_OnStart
End Sub

</SCRIPT>

20 минут и сессия завершается. По завершению всех сессий завершается и приложение 

6. Работа со встроенными объектами

Скрипты в ASP файлах могут взаимодействовать с 5 встроенными объектами:

Request object - получает информацию от пользователя
Response object - посылает информацию пользователю
Server object - выполнение методов на WWW сервере (ActiveX Server Components)
Session object - Store information about a user’s session
Application object - Share information among users of an application.


 

The Request object может получить информацию из 5 источников (коллекций):

•QueryString - (Request.QueryString(variable)[(index)|.Count])
•Form
•Cookies
•ServerVariables - (Web server environment variables - Request("SERVER_PORT"))
•ClientCertificate

Синтаксис: Request[.CollectionName](variable)[(n)] n - номер одноименной переменной

Пример с QueryString collection:

<A HREF="myage.asp?name=Charles+Parker&age=30">
Запрос в скрипте будет:
Welcome, <%= Request.QueryString("name") %>.
Your age is <%= Request.QueryString("age") %>.
Возвращаемый результат:
Welcome, Charles Parker. Your age is 30.

Пример с Form Collection

The Form collection contains all the values that a user entered in a form submitted with the POST method. For example, when the user fills in and submits the following form:

<form action="/scripts/mycup.asp" method="post">
<p>Your first name: <input name="firstname" size=48>
<p>What is your favorite to drink: <select name="cup">
<option>Water <option>Milk <option>tea <option>Juice
</select>
<p><input type=submit>
</form>

Результат работы формы:

firstname=Petrov&cup= tea

Обработка результатов формы в mycup.asp:

<%= Request.Form("firstname") %>
favorite a cup of <%= Request.Form("cup") %>.

Результат:

Petrov favorite a cup of tea


 

Объект Response

Свойства объекта Response

Response.Buffer = TRUE |  FALSE - необходимость буферирования вывода до тех пор, пока либо не закончится выполнение данного скрипта или не встретится метод Flush или End.  Данное свойство должно инициироваться в первой строке скрипта.
Response.CharSet (" WINDOWS-1251")  - название кодовой таблицы символов
Response.ContentType = "text/HTML"
 Response.IsClientConnected ( ) - указывает подключен ли клиент или уже не подключен к серверу.

<%
If Not Response.IsClientConnected Then //подключен ли пользователь
Shutdownid = Session.SessionID //получаем номер сессии и закрываем сессию
Shutdown(Shutdownid)        //подготовка к закрытию сессии
End If
%>

<% Response.Status = "401 Unauthorized" %> - строка состояния, возвращаемую сервером

Методы объекта Response

Write method - для посылки информации прямо броузеру
Redirect method - для пересылки URL для запроса с другого сервера
Cookies method - для записи значений cookie

Write - посылаем прямо броузеру

<H3 ALIGN=CENTER>
<% If user_has_been_here_before Then %>
Welcome Back to the Overview Page.
<% Else %>
Welcome to the Overview Page.
<% End If %> </H3>

Response.Redirect "homepage.asp" просим браузер обратиться к домашней страничке

Cookies collection

<% Response.Cookies("animal")="elephant" %> создаем новый ключ
<% Response.Cookies("animal")("elephant")="African" %>
добавляем

7. Five ActiveX server components:

Database Access component - доступ к базам данных
Ad Rotator component - ротация картинок и текста
Browser Capabilities component - изменение возможностей броузера
File Access component - доступ к файлам на сервере
Content Linking component - управление навигацией

Создание "объекта" (instans) компонент

<% Set bc = Server.CreateObject("MSWC.BrowserType") %> или
<OBJECT RUNAT=Server ID=MyAd PROGID="MSWC.AdRotator"></OBJECT>

8. Database Access component

<OBJECT RUNAT=Server ID=Connection PROGID="ADODB.Connection"></OBJECT>
<%
Conn.Open "ADOSamples"
Set RS = Connection.Execute("SELECT * FROM Orders")
%>
и далее как в примере с DO

9. Managing Page Navigation

Content Linking компонент облегчает формирование страницы по текстовому файлу, где указаны URL и их описания на основе которых требуется построить страницу для броузера

<%
Set NextLink=Server.CreateObject("MSWC.NextLink")
count=NextLink.GetListCount("/Vroot/Nextlink.txt")
%>
<UL>
<% For i = 1 to count %>
<li><a href="<%=NextLink.GetNthUrl("/Vroot/Nextlink.txt",i) %>">
<%=NextLink.GetNthDescription("/Vroot/Nextlink.txt",i) %></a>
<% Next %>

 

10. Литература

  1. Обзор встроенных объектов ASP

  2. Базы данных ASP

  3. Описание объекта ObjectContext

  4. Описание объекта Application

  5. Описание объекта Request

  6. Описание объекта Response

  7. Описание объекта Server

  8. Описание объекта Session