ASP (Active Server Pages) je technologie, která umožňuje na straně internetového serveru (pomocí skriptů) vytvářet dynamický obsah webové stránky a tento obsah není závislý na typu browseru (prohlížeče), který si stránku na serveru „zavolal“. Skripty samotné mohou být napsány v několika typech jazyků, výchozím scriptovým jazykem bývá VB Script, a obsah kódu scriptu se vkládá do toku HTML pomocí speciálních značek a stránka je dynamicky interpretována uživateli teprve na požadavek prohlížeče. Ukážeme si, jak stvořit první ASP stránku a ukážeme si na ní, jak dynamicky řídit odpověď do klientského prohlížeče. Článek je určen těm, kteří chtějí začít s ASP a netuší, jak na to.

Technologie Active Server Pages (česky aktivní serverové stránky) umožňuje vyvíjet pestré a zároveň vysoce výkonné aplikace na webu. Web ve svých plenkách představoval především statický web. Představte si HTML dokument, vytvořený pevným statickým kódem, uložený jako stránka.htm – u každé takové stránky, chcete-li změnit obsah, musíte ručně změnit HTML kód a uložit ji na server. Obsah tohoto dokumentu je však pevný a každému uživateli se ukáže stejně až do té doby, dokud obsah stránky opět nezměníte a opět neuložíte na www server. Ne tak u ASP – tato technologie nám nabízí rozsáhlé možnosti, co uživateli zobrazit a můžeme určit, co uživatel uvidí. Dnes se proto opravdu jen v náznaku podíváme, jak na to.

Co k tomu potřebujeme? Musíme mít k dispozici interpretaci ASP – buď lokálně přímo z disku počítače, nebo webový server, který umí ASP interpretovat (v ČR ještě nedávno nebyly free hostingové servery s podporou ASP zdarma, ale v zahraničí některé jsou). Dále potřebujeme textový editor (u Windows např. v Příslušenství -> Poznámkový blok) a znalost jazyka HTML. A můžeme začít.

Nejdříve si ukážeme, jak vypadá jednoduchý HTML zdroj statické stránky, zapsaný pomocí tagů jazyka HTML:

 <html>
 <head>
 </head>
 <body>
 Toto je jednoduchá htm stránka
 </body>
 </html>

Dynamický kód stránky vytvoříme vložením značek <% %> do zdroje stránky, a sdělíme www serveru, co má v kódu mezi nimi udělat. Jako příklad použijeme funkci now() pro zobrazení aktuálního systémového datumu a času přímo na serveru a stránku pojmenujeme sample.asp a uložíme jí na místo, kde dokáže server ASP stránku interpretovat. Návratová hodnota funkce now() zobrazí ve stránce řetězec udávající, jaké aktuální systémové datum a čas je na www serveru a to vždy tehdy, když si ji prohlížeč na serveru zavolá.

Jednoduchý zdroj dynamické ASP stránky a první způsob, kterým lze odpověď (zobrazení do prohlížeče uživatele) řídit :

 <html>
 <head>
 </head>
 <body>
 Tohle je jednoduchá ASP stránka, kterou jste navštívil
 <% ‚začátek ASP kódu
 Response.Write now() ‚vypíšeme uživateli, kdy přesně nás navštívil
 %> ‚konec ASP kódu
 </body>
 </html>

V prohlížeči se místo kódu VBScriptu (který je výchozím scriptovým jazykem ) a volání funkce now() uživateli zobrazí datum a čas, který je na www serveru.

Povšimněte si několika věcí: mezi značkami <% %> lze do kódu psát i komentáře, u složitějších a složitých konstrukcí jsou k nezaplacení, jsme-li nuceni kód později měnit. Tyto řádky jsou ignorovány. Je zde použit objekt Response a jeho metoda Write, která nám umožní zpracovat odpověd www serveru směrem do prohlížeče klienta, který si stránku zavolal.

My však máme možnost používat ASP daleko pružněji, a tento kód můžeme zapsat jednodušeji a to pomocí znaku "=" místo "Response.Write" a výsledek zobrazení v prohlížeči bude stejný:

 <html>
 <head>
 </head>
 <body>
 Toto je jednoduchá ASP stránka, kterou jste navštívil  <%=now()%>
 </body>
 </html>

Další způsob – pomocí Response.Write můžeme vypsat celý řádek, který uvidí uživatel, opět se stejným výsledkem na výstupu:

 <html>
 <head>
 </head>
 <body>
 <%
 Response.Write („Toto je jednoduchá ASP stránka, kterou jste navštívil „&now())
 %>
 </body>
 </html>

Zde si povšimneme, že obsah zobrazovaného textu je uzavřen do uvozovek a volání funkce now() je k textu připojeno pomocí znaku & (ampersandu), funkce now pak zobrazí pochopitelně datum a čas. Odborněji řečeno, objekt Response nám plně umožňuje plně řídit opověď http klientovi do prohlížeče a my nyní můžeme určit, co a jakým způsobem se zobrazí v těle odpovědi.

Značky HTML kódu můžeme také vypsat přímo ASP kódem pomocí Response.Write a výsledek zobrazení bude opět stejný:

 <%
 Response.Write ("<html>")
 Response.Write ("<head>")
 Response.Write ("</head>")
 Response.Write ("<body>")
 Response.Write ("Toto je jednoduchá ASP stránka,  kterou jste navštívil „&now())
 Response.Write ("</body>")
 Response.Write ("</html>")
 %>

Tento kód, zdánlivě nejméně pohodlný a přehledný, je ze strany serveru nejvhodnější, nedochází totiž k přepínání mezi serverovým kódem a kódem pomocí značek <% …. %> a posílaná odpověď serverem uživateli je proto nejrychlejší (a rychlost přenosu směrem k uživateli na Internetu nás přeci zajímá).

K závěrečnému příkladu: na začátku kódu je příkazem Dim deklarována proměnná mujcas a do ní je pouze jednou načtena hodnota, vrácená funkcí now(). Příklad předvádí možnosti jednoduché zobrazení hodnoty, načtené do mujcas pomocí standardních HTML příkazů nebo pomocí Response.Write. Poslední řádek příkladu je pospojován do jednoho řetězce pomocí znaků & a funkce chr(34 ) (uvozovky). Proč? Uvozovky je možné použít jen pro začátek a konec příkazu Response.Write, příp. části podle potřeby pospojovat do jediného výsledného řetězce pomocí & – pokud však potřebujeme použít uvozovky uvnitř a předat je kódem prohlížeči tak, aby skutečně formátoval HTML výstup, musíme je nahradit funkcí chr(34), která požadovaný znak do řetězce vloží. (Číslo 34 je hodnota, předávaná jako parametr funkci, a je to ASCII hodnota pro uvozovky).

Zdroj ASP stránky sample.asp:

 <%
 Dim mujcas ‚deklarace proměnné mujcas
 mujcas = now() ‚přiřazení hodnoty
 %>
 
 <html>
 <head>
 </head>
 <body>
 
 Na začátku kódu této stránky je deklarována proměnná <b>mujcas</b> a v tento moment je do ní načtena aktuální hodnota systémového datumu a času na serveru, má nyní jednu (neměnnou) hodnotu a my si jí zobrazíme v prohlížeči podle svého přání:
 <p>Hodnota načtená do mujcas je právě nyní:  <b><%=mujcas%></b></p>
 
 <p>Zobrazení hodnoty řetězce, která je uložena v proměnné mujcas (vložení proměnné mujcas přímo do toku HTML příkazů):</p>
 
 <%
 Response.Write("- vypsaná na monitor kurzívou: <i>" &mujcas &"</i><br>")
 
 ‚ nahrazení uvozovek HTML příkazů uvnitř řetězce pomocí funkce chr(34)
 Response.Write("- vypsaná na monitor fontem Courier New CE a bold: <font face=" &chr(34) &"Courier New CE" &chr(34) &"><b>" &mujcas &"</b></font>")
 %>
 
 </body>
 </html>

Příklad sample.asp je ke stažení zde a pokud tuto dynamickou stránku spustíte a otevřete si její zdrojový kód v prohlížeči (stejně jako u statické stránky), uvidíte její HTML zdroj. Server dynamicky zpracoval odpověď, zobrazil ji, a všechny ASP příkazy mezi značkami <% %> nezobrazil. Výsledný kód je naprosto stejný jako u běžné statické HTML stránky.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět