Лістинг 4-.4. Створення змінних сесії.
<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="Server">
Sub Session_OnStart
Session("Company")="NewTech"
Session("Email")="info@newtech.com"
End Sub
</SCRIPT>
Змінні сесії можна створювати на будь-якій Web-сторінці або у файлі GLOBAL.ASA, а доступні вони на будь-якій Web-сторінці застосування, в якому ці змінні були спочатку створені. Набути значень змінних сесії можна, прочитуючи їх з об'єкту Session. Наступний фрагмент коду прочитує змінні сесії, створені в лістингу 4.4, і виводить їх в полях введення:
<FORM>
<P><INPUT TYPE="TEXT" VALUE=<%=Session("Company")%>Компания</P>
<P><INPUT TYPE="TEXT" VALUE=<%=Session("Email")%>Эл. Почта</p>
</FORM>
Раніше ми визначили інтернет-застосування як позбавлені статусу транзакції між Web-сервером і програмою перегляду. Як же тоді ASP запам'ятовує змінні сесії для кожного користувача застосування? Відповідь буде такою: ці змінні зберігаються на сервері для кожного клієнта. Програма перегляду отримує від сервера унікальний ідентифікатор, що дозволяє визначити, який набір змінних кому належить. Клієнт цей ідентифікатор (Globally Unique Identifier, GUID) зберігає, а згодом посилає серверу і отримує саме йому призначені дані. Таким чином кожен клієнт може мати свій набір даних в кожному інтернет-застосуванні.
Залишилося сказати, що для установки або прочитування впемени життя сесії (у хвилинах) застосовується властивість Timeout об'єкту Session:
Session.Timeout=30
Об'єкт Request.Для передачі дані клієнтові створюється Web-сторінка, а для передачі даних у зворотному напрямі програма перегляду використовує відправку форми (form submission). У формі містяться текстові поля, перемикачі і тому подібне Клієнт розміщує введені дані в цих полях і пересилає пакет серверу. Процесом передачі форми управляють два атрибути тега <FORM>: METHOD і ACTION. Перший атрибут - METHOD - визначає, яким саме чином дані пересилаються серверу. Атрибут може мати два значення: POST і GET. POST диктує програмі перегляду, що дані потрібно помістити всередину форми, а GET пересилає дані як складову частину URL цільової сторінки. Другий атрибут - ACTION - задає цільову сторінку для обробки відправлених даних. Наступний код посилає всі дані форми сценарію DATA.ASP методом POST:
<FORM METHOD="POST" ACTION="/l5/data.asp">
<P><INPUT TYPE="TEXT" NAME="Name"></P>
<P><INPUT TYPE="TEXT" NAME="EMail"></P>
<P><INPUT TYPE="SUBMIT"></P>
</FORM>
Елемент форми з типом SUBMIT - це кнопка, натиснення якої користувачем заставляє програму перегляду упакувати дані форми і відправити їх. Формат пересилки даних визначений строго і сервер знає, чого чекати від клієнта. Дані мають вигляд пар Поле=Значеніє, що посилаються серверу у форматі відкритого тексту. Якщо в попередньому прикладі ввести в поле Name NewTech і info@newtech.com у полі Email, то сценарію DATA.ASP буде посланий наступний текст:
Name=NewTech&Email=info@newtech.com
На сервері ці дані можна знов розібрати по полях і використовувати в будь-яких цілях. Ось тут-то і потрібний об'єкт Request. Він використовується в ASP для розбору отриманих від клієнта даних. Для роботи з об'єктом Request просто повідомите йому ім'я поля, значення якого хочете набути, і об'єкт поверне вам це значення. Наприклад, наступний код поверне вам значення поля Name:
<%=Request.Form("Name")%>
Request.Form застосовується, коли дані були відправлені методом POST і саме цьому сценарію. Якщо для відправки даних використовується метод GET або сценарій викликається з передачею параметрів прямо в гіперпосиланні
<A HREF=/l5/data.asp?Name=NewTech&Email=info@newtech.com> Аби відправити дані, клацніть тут!</A>
то для розбору даних застосовують властивість Request.QueryString, який працює так само, як Request.Form. Наступний фрагмент коду поверне значення поля Name з гіперпосилання:
<%=Request.QueryString("Name")%>
Інша властивість - Request.Cookies використовуються для витягання інформації з кукисов (cookies), відісланих разом із запитом рядку призначеного для користувача агента програми перегляду. А лістинг 4.5 демонструє вживання властивості ServerVariables для визначення імені комп'ютера, з якого клієнт викликав сценарій.
Дата добавления: 2016-04-02; просмотров: 607;