ASP kezdőknek 1.

Az egyik leggyakrabban használt HTML kiterjesztés az ASP. Itt egy cikksorozatot tervezek az ASP programozás alapjairól, mivel magyar nyelvű szakirodalmat alig találni ebben a témában. A cikk az ASP alapokról szól, de feltételez egy bizonyos szintű programozói és HTML tudást.

Az alapok

Az ASP rövidítés mögött az Active Server Pages név áll. Ez egy olyan szkriptnyelv, melynek segítségével dinamikussá tehetjük a weboldalt. Gyakorlatilag úgy működik, mint a PHP vagy a CGI, csak természetesen más a nyelvezete. Kezdjük tehát az alapoknál.

Az ASP technikát a Microsoft fejlesztette ki és főleg a Windows 2000-es IIS webszervereken használható, a Linuxos adaptációja elég gyenge. Mire is lesz szükségünk, ha otthon szeretnénk ASP-ben fejleszteni?

·         Először is egy Windowsos számítógépre

·         Egy PWS webszerverre, ami feltelepíthető a Windows CD-ről (személyes webkiszolgáló)

·         Egy programra, amiben majd a scripteket szerkesztjük.

Miután feltelepítettük a szervert, a http://localhost/ címen át tudjuk megnézni az oldalakat.

Az ASP szintaktis

Az ASP kódot egyszerűen a HTML-be kell beleilleszteni, a két rész egyszerűen kombinálható. Az ASP részeket mindig <% és %> jelek közé kell zárnunk, valahogy így:

<HTML>

<BODY>

Blablabla

<%‘Ide jön az ASP kód%>

</BODY>      

</HTML>

A HTML oldalon belül bárhova beszúrhatunk ASP kódot. Ez a kód a böngészőhöz nem érkezik meg, csak a szerver által feldolgozott végeredmény.  Az ASP tulajdonképpen egy Visual Basic szkriptnyelv (bár javascript kódot is használhatunk). Objektumorientált nyelv, ennek megfelelően mindent (vagy majdnem mindent) objektumokon keresztül tudunk kezelni.

Input-Output

Az ASP legegyszerűbb felhasználása az adatok (pl. elküldött űrlapok) feldolgozása és az eredmények kiírása. Ezzel kapcsolatban a két legfontosabb objektum a Request és a Response. Ezeken keresztül folyik az adatok ki-bemenete.

A Request objektumon belül a két legfontosabb elem a Querystring és a Form, melyekkel az elküldött űrlapok adatait olvashatjuk be.  A Querystring a címsorban lévő értékeket (ide kerülnek az űrlapadatok GET metódussal elküldött űrlapoknál) olvassa ki. Például, ha a címsorban a script után a következő szerepel: ?tulajdonsag=ertek&szam=2, akkor ezeket az értékeket a következő módon tudjuk kiolvasni:

Tul = Request.Querystring("tulajdonsag")

Szam = Request.Querystring("szam")

Ezeket a kódokat mindig egy sorba kell írni, itt csak a hasábok miatt nincs egy sorban. A fenti kód a Tul változóba az ertek szöveget tölti, a Szam változóba pedig a 2-es számot, ahogy az a címsorban meg volt adva. Láthattuk, hogy az értékmező nevét idézőjelben kell megadnunk. Az eljárás ugyanez akkor is, ha az űrlap POST módban lett elküldve, csak ilyenkor a Querystring helyett Form elemet kell használnunk (Request.Form). A mezőnév minden esetben az adott űrlapelem neve (Name tulajdonság) Ezeket az értékeket beolvashatjuk változókba, a változókat pedig úgy használhatjuk, mint bármelyik másik programnyelvben. Ha a request objektumot csak önmagában használjuk (Request(”valami”)), akkor a kapott érték származhat a címsorból, vagy egy POST formtól is. Arra viszont figyeljünk, hogy ebben az esetben ne legyenek azonos mezőnevek. A legbiztosabb, ha mindig a Querystring vagy a Form elemen át hivatkozunk.

A Response objektum segítségével tudunk adatokat kiírni, átirányítani a lapot vagy sütit készíteni. A legfontosabb elem a Write, amellyel szöveget és változókat írathatunk ki. A kiírás oda történik, ahol a kód el van helyezve, tehát akár egy HTML TAG belsejébe is írhatunk.

Példa a használatra:

Response.write("szöveg")
Response.write(változó)

Response.write("A változó értéke: " & változó)

Láthattuk, hogy akár szöveget, akár változót, vagy egy & jellel összefűzve akár mindkettőt kiírathatunk. A response.write utasítás helyettesíthető a <%="szöveg"%> formátummal, ily módon a szöveget kevesebb forráskarakterrel írhatjuk ki – ergo kisebb lesz az ASP oldalunk. Ez a forma viszont csak a HTML kódba való beszúráskor használható, az ASP blokkon belül nem.

A Redirect elemmel a felhasználót a megadott URL címre irányíthatjuk át. Az URL változóban is megadható. Fontos viszont, hogy a Redirect elem csak a kiírások előtt használható, vagyis akkor, mikor a felhasználó felé még nem továbbítottunk semmit.

Most nézzünk egy rövidke példaprogramot, ami bekéri egy űrlapban a nevünket, azután pedig kiírja (pelda1.asp):

<html><body>

<form method=post action=pelda1.asp>

Írd be a neved: <input name=neved><input type=submit>

</form><br>

<%

neved = request.form("neved")

response.write(neved)

%>

</body></html>

Ezt akár már ki is próbálhatjuk. Csak másoljuk a fájlt a C:\inetpub\wwwroot könyvtárba (ide kerülnek a szerveren elérhető fájlok) és nyissuk meg (http://localhost/pelda1.asp). Egy szövegmező fog megjelenni, melybe írjuk be a nevünket és nyomjuk meg az elküldő gombot. A következő oldalon kiírva láthatjuk majd a megadott nevet. Alaphelyzetben nem ír ki semmit, hiszen a neved űrlapmező üres (nem lett elküldve még), de miután elküldtük az űrlapot, az ASP kód beolvassa és kiírja a nevet. Adatokat be- és kivinni tehát már tudunk, de lássuk tovább!

Matematikai műveletek

Lényegében ugyanazok a lehetőségek, mint más programnyelvekben, tehát a + összeadást, a – kivonást, a * szorzást és a / osztást jelent. Pl.:

Valt1 = 5 + 4

Valt2 = 7 – 2

Valt3 = Valt1 * Valt2

Fontos viszont megemlítenünk az ide vonatkozó függvényeket, ezek az Isnumeric, mellyel ellenőrizhető, hogy egy adott változó számot tartalmaz-e, a másik a Round, amivel kerekíteni tudjuk egy szám értékét. Természetesen van még néhány, de ezek a leggyakrabban használtak Pl.:

valt1 = 24.87141

valt2 = round(valt1,2)

If isnumeric valt2 then response.write("valt2 numerikus")

end if

A valt1 változóba megadott tört értéket a valt2 változóban 2 tizedesjegyre kerekítjük. Ez után ellenőrizzük, hogy a valt2 értéke numerikus-e. (úgyis az J)

Logikai műveletek, elágazások

Az ASP-ben is használható az IF THEN ELSE típusú feltételes utasítások. Ha a feltételhez egy utasítás tartozik, akkor írhatjuk önmagában egysorba, de ha többsoros utasítássorozatról van szó, akkor a feltételt egy END IF kifejezéssel le kell zárnunk. Használhatóak a különböző logikai műveletek ( < , > , = , <> , AND , NOT, stb.) is. Ezeket ugyanúgy kell használni, mint más nyelvekben. Használható a választó (CASE) típusú elágazás is, a következő módon:

Select case valtozo

       case 1

            ‘utasítások

       case 2

            ‘utasítások

End select

A külön értékekhez tartozó utasítássorozatokat nem kell lezárni, csak a logikai CASE blokkot. Az egyes értékeket (itt 1 és 2) közvetlen a case kulcsszó után kell írnunk, ha szöveges értékekről van szó, akkor idézőjelek közé kell írnunk azokat.

Megjegyzések

Lehetőség van megjegyzések beszúrására is, ezeket egy aposztróffal (‘) kell jelölni, és az ezt követő karaktereket a szerver nem értelmezi (az adott sor végéig) Pl.:

‘Ez a sor egy megjegyzés

Ha többsoros megjegyzést szeretnénk írni, akkor minden sor elejére ki kell tenni az aposztrófot

Eljárások és függvények

Egy sor hasznos beépített függvényt és eljárást használhatunk, de ha kell, írhatunk magunk is. Először ismertetnék néhány fontos beépített függvényt:

A Len függvény

Egy szöveges változó hosszúságát lehet vele ellenőrizni.Használat:

Hossz = len(valtozo)

Az Isnull függvény

Kimenete igaz, ha az adott változó értéke nulla (0, vagy üres karakterlánc)Használat:

If Isnull(valtozo) then

‘utasítás, ha az érték 0

End if

A Replace függvény

Egy adott szövegrészt cserél le egy karakterláncban.Használata:

Valtozo = Replace(miben, "mit", "mire")

‘A miben változóban a mit karaktersorozatot cseréli mire karaktersorozatra

Saját függvény írása

Saját függvényeket is írhatunk a function kulcsszóval.

Példa:

Function elso(p1,p2,p3)

‘Függvény kód

elso = kesz

End Function

Ahol az elso a függvény neve, p1,p2,p3 a paraméterek, kesz pedig a függvény visszatérési értéke. A saját függvényünket pedig így tudjuk meghívni:

Valtozo = elso(1,2,3)

A függvény visszatérési értékének típusát nem szükséges előre definiálni, lehet bármilyen érték.

Remélem sikerült legalább az alapokat megismertetnem az olvasókkal. A következő részben részletesebben megismerjük az űrlapok és a karakterláncok kezelését. Addig is minden észrevételt szívesen várok.

Karsai Balázs