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 WWW-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 dva dříve zmíněné servery lze doplnit o podporu skriptů. U Microsoftu těmto skriptům ří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ž 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ěží Internet Information Server.
<%
' 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
.
<%= 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
.
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 formuláři.
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.
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 bude samozřejmě náplní některého z dalších pokračování seriálu.