Technologie Active Server Pages

Dnes se podíváme na skripty z dílny Microsoftu. Microsoft z počátku nástup Internetu poněkud zaspal, ale dnes již nab


Dnes se podíváme na skripty z dílny Microsoftu. Microsoft z počátku nástup
Internetu poněkud zaspal, ale dnes již nabízí ucelenou řadu produktů pro
vytvoření aplikací pracujících v prostředí Internetu.
Na straně klienta dnes svádí boj Internet Explorer s konkurenčním Netscape
Communicatorem. Ve své poslední verzi je Internet Explorer prohlížečem s
nejlepší podporou HTML 4.0 a kaskádových stylů na druhou stranu se pravidelně
objevují zprávy o odhalení různých bezpečnostních děr. Na poli webových serverů
nabízí Microsoft několik produktů. Pro komerční nasazení je určen Internet
Information Server (IIS). Pro jednodušší a méně rozsáhlé aplikace je určen
Personal Web Server (PWS).
Oba zmíněné servery lze doplnit o podporu skriptů. U Microsoftu jim říkají
Active Server Pages (ASP). ASP fungují na principu serverem vkládaných vsuvek
stránku doplníme o příkazy, které se vždy před odesláním stránky provedou na
serveru. Jako skriptovací jazyk můžeme použít VBScript nebo JScript. (JScript
je implementace JavaScriptu od Microsoftu.) Další firmy nabízejí moduly i pro
jiné jazyky např. pro Perl, REXX a Python.
Pokud jsme chtěli dříve používat ASP, byla to celkem nákladná legrace. Museli
jsme si pořídit Windows NT Server a IIS, což jistě není žádná laciná
záležitost. K tomu je ještě potřeba přičíst zvýšené nároky na hardware. Ať
chceme nebo ne, je řešení postavené nad produktech od Microsoftu více náročné
na systémové zdroje než obdobné řešení založené na volně šiřitelných produktech
pro Unix.
Cenovou náročnost částečně eliminuje Windows NT Option Pack, který uvolnil
Microsoft na konci roku 1997. V balíku zdarma dostaneme i Personal Web Server s
podporou ASP. To již dostačuje pro vývoj aplikací založených na ASP. Pokud však
chceme, aby s výslednou aplikací mohlo pracovat větší množství uživatelů,
musíte ji spustit pod Windows NT Server, na kterém poběží MS IIS.
Kombinování ASP s HTML
Příkazy ASP se od běžného HTML kódu oddělují pomocí znaků '<%' a '%>'. Oproti
SSI nejsou použity k ohraničení příkazů komentáře, takže si téměř nemá cenu
prohlížet ASP stránku v prohlížeči bez předchozího zpracování všech příkazů
serverem. Výhodou je, že zápis znaků pro oddělení ASP příkazů je kratší než
zápis komentářů. I tak je však volba oddělovacích znaků přinejmenším podivná,
protože jazyk SGML (pomocí, kterého je HTML definováno) vyhrazuje pro podobné
účely znaky '<?' a '>'. Text mezi nimi ignorují např. programy pro syntaktickou
kontrolu HTML kódu. Před touto možností však máme s ASP dveře uzavřeny. Jak
jsme již řekli, můžeme ASP psát ve více jazycích. V našich ukázkách budeme
používat VBScript, což je skriptovací jazyk velmi příbuzný Visual Basicu.
Standardní skriptovací jazyk, který se na stránkách používá, lze nastavit v
konfiguraci serveru. Pokud chceme na stránce použít jiný skriptovací jazyk,
použijeme na začátku stránky následující direktivu:
<% LANGUAGE=jazyk %>
Jako jazyk můžeme běžně použít VBScript nebo JScript.
Aby server mohl odlišit běžné stránky od těch s ASP, ukládají se ASP do souborů
s příponou .asp.
Základy ASP
Mezi nejjednodušší příkazy patří v každém jazyce vypsání hodnoty výrazu. K
těmto účelům můžeme v ASP použít <%=výraz %>.
K zobrazení aktuálního času na serveru můžeme použít funkci Now:
<%= Now %>
K přiřazení hodnoty do proměnné se používá '='. Pokud tedy na stránce
definujeme proměnnou pozdrav
<% pozdrav = "Ahoj Karle!" %>
Můžeme ji pak dále používat ve výrazech nebo vypsat pomocí příkazu <%= pozdrav
%>.
K řízení toku běhu programu můžeme použít příkaz If. Následující ukázka zobrazí
na stránce velkými červenými písmeny pozdrav. Text pozdravu se bude měnit podle
toho, kdy se uživatel podívá na stránku.
<FONT SIZE="+3" COLOR=RED>
<% If Time >= #12:00:00 AM# And Time <= #12:00:00
PM# Then %>
Dobré ráno!
<% Else %>
Dobré odpoledne!
<% End If %>
</FONT>
Ukázka zaslouží malé vysvětlení. První řádka způsobí použití většího, červeného
písma. Následuje podmínka, která zjišťuje, zda je dopoledne či odpoledne
aktuální čas zjišťujeme pomocí funkce Time. Pokud je dopoledne, prohlížeči se
pošle text "Dobré ráno!", v opačném případě do prohlížeče dorazí "Dobré
odpoledne!".
Dopoledne tedy bude výsledkem skriptu následující HTML kód, který bude poslán
prohlížeči:
<FONT SIZE="+3" COLOR=RED>
Dobré ráno!
</FONT>
Naopak odpoledne do prohlížeče dorazí:
<FONT SIZE="+3" COLOR=RED>
Dobré odpoledne!
</FONT>
Příklad jsme rozebrali podrobněji, abychom si uvědomili, že při použití ASP (a
skriptů na straně serveru vůbec) dorazí do prohlížeče zcela běžné HTML. Veškeré
příkazy jsou vykonány na serveru těsně před odesláním stránky.
Nemáme zde dostatek prostoru pro rozebrání všech možností, které VBScript
nabízí, ale ve stručnosti si ještě ukážeme, jak lze využít cykly.
Pokud chceme na stránce zobrazit všech sedm velikostí písma, které nám HTML
nabízí, můžeme si zápis ušetřit pomocí tohoto krátkého skriptu:
<% For I = 1 to 7 %>
<FONT SIZE=<%= I %>>Ukázkový text</FONT><BR>
<% Next %>
Do prohlížeče pak ve skutečnosti dorazí mnohem delší text:
<FONT SIZE=1>Ukázkový text</FONT><BR>
<FONT SIZE=2>Ukázkový text</FONT><BR>
<FONT SIZE=3>Ukázkový text</FONT><BR>
<FONT SIZE=4>Ukázkový text</FONT><BR>
<FONT SIZE=5>Ukázkový text</FONT><BR>
<FONT SIZE=6>Ukázkový text</FONT><BR>
<FONT SIZE=7>Ukázkový text</FONT><BR>
Vidíme, že pomocí ASP příkazů můžeme ovlivňovat i přímo hodnotu atributů
jednotlivých elementů v našem případě atributu SIZE.
ASP a formuláře
Opravdová síla skriptů na straně serveru se objeví v okamžiku, kdy skripty
reagují na požadavky uživatele. HTML obsahuje možnost do stránky vložit
formulář, který se skládá ze vstupních polí. Do každého pole uživatel může
zapsat nějaký údaj. Všechny údaje z formuláře se pak odešlou na server, kde s
nimi skript naloží podle svých potřeb.
Formulář se do HTML stránky vkládá pomocí elementu FORM.
<FORM ACTION=obsluha.asp METHOD=GET>
Jméno: <INPUT TYPE=TEXT NAME=jmeno><BR>
Věk: <INPUT TYPE=TEXT NAME=vek><BR>
<INPUT TYPE=SUBMIT VALUE="Odeslání formuláře">
</FORM>
Atribut ACTION určuje jméno skriptu, který bude použit pro zpracování obsahu
formuláře. Formulář obsahuje dvě vstupní pole pro zadání jména a věku. Pole se
jmenují jmeno a vek. Posledním prvkem formuláře je tlačítko, které slouží k
odeslání formuláře. Vzhled formuláře v prohlížeči si můžeme prohlédnout na obr.
1.
Formuláři se budeme zabývat podrobněji v samostatném díle našeho seriálu, nyní
nám postačí náš jednoduchý formulář pro demonstraci spolupráce ASP s nimi.
Ve skriptu, který obsluhuje formulář (v našem případě obsluha.asp), můžeme
zjistit obsah jednotlivých vstupních polí pomocí kolekce Request.QueryString.
Konkrétně jméno zjistíme pomocí Request.QueryString("jmeno") a věk pomocí
Request.QueryString("vek").
Ukážeme si, jak by mohl vypadat soubor obsluha.asp. Budeme chtít, aby se jméno
vypsalo společně se slovním pojmenováním věkové kategorie.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Obsluha formuláře</TITLE>
</HEAD>
<BODY>
<H1>Výsledek obsluhy formuláře</H1>
<%= Request.QueryString("jmeno") %> je
<% vek = Request.QueryString("vek") If vek < 10 Then Response.Write "pěknej
mlíčnák" ElseIf vek < 20 Then Response.Write "teenager" ElseIf vek < 60 Then
Response.Write "v nejlepších letech" ElseIf vek < 100 Then Response.Write "je
pravděpodobně prarodič" Else Response.Write "je někde mezi stovkou
a smrtí" End If %>.
</BODY>
</HTML>
Příkaz Response.Write zapíše zadaný text přímo do těla generované stránky.
Stejného výsledku dosáhneme i použitím poněkud odlišného zápisu bez použití
Response. Write.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Obsluha formuláře</TITLE>
</HEAD>
<BODY>
<H1>Výsledek obsluhy formuláře</H1>
<%= Request.QueryString("jmeno") %> je
<% vek = Request.QueryString("vek") If vek < 10 Then %> pěknej mlíčnák.
<% ElseIf vek < 20 Then %> teenager.
<% ElseIf vek < 60 Then %> v nejlepších letech.
<% ElseIf vek < 100 Then %> je pravděpodobně prarodič.
<% Else %> je někde mezi stovkou a smrtí.
<% End If %>
</BODY>
</HTML>
Výsledek naše ASP skriptu, po zadání jména "Karel Karafiát" a věku 37, si
můžeme prohlédnout na obrázku 2.
V dnešním díle jsme možnosti ASP jen velmi zhruba nastínili. Vůbec jsme se
nezmínili o možnostech, které ASP nabízejí pro spolupráci s databázemi této
problematice se budeme věnovat až v druhé půli našeho seriálu.
Pokud vám možnosti tvorby dynamických stránek pomocí ASP připadají přímo
skvělé, máte pravdu. Budeme však objektivní a příště se podíváme na systém
PHP3. Ten nabízí obdobné možnosti jako ASP a má i některé výhody. Jednak je
zdarma a jednak je i svižnější než ASP. Navíc netrpí známou nectností ASP pokud
ASP stránky na jednom serveru vyžaduje příliš mnoho uživatelů najednou, server
se zastaví a je potřeba jej restartovat. Jak této situaci předejít a řádně
otestovat výkonnost aplikace na serveru, to bude samozřejmě náplní některého z
dalších pokračování seriálu.
8 0523 / pah









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.