ASP i baze podataka i pristup bazama podataka

Sa samo dve jednostavne linije kôda možete obezbedili konekciju između vaših dinamičkih stranica i sadržaja MySQL baze podataka. Prvo što je potrebno da uradimo je da kreiramo neku bazu podataka u Microsoft Access, ato je najlakae, ili u nekom drugom sistemu za upravljanje bazama podataka koji obezbeđuje ODBC drajver. Zatim, ukoliko vežbate prustup na sopstvenom kompjuteru, potrebno je da preko ODBC32 linka u vaaem Control Panel-u, dodate joa jedan sistemski fajl. Naziv koji budete dali bazi podataka bice koriacen kada iz ASP skripta budete preko ODBC drajvera pozivali sadržaj sam baze. U donjem primeru koristićemo bazu podataka koju smo nazvali "test.mdb":



PREGLED PO IZDANJIMA


Navodnici izazivaju probleme
Prilikom interpretacije ASP koda moguće je da dođe do funkcionalnih problema i problema u prikazu sadržaja, iz razloga što navodnici imaju dvojaku ulogu


Ugrađene ASP komponente u IIS
Prilikom dizajniranja ASP stranica možemo koristiti usluge objekata i komponenti koji su ugrađeni u IIS (Internet Information Server)


Naredba #Include
Instrukcija #include se koristi za kreiranje funkcija, zaglavlja i podnožja stranica, ili uopšteno, za sve elemente koji se ponavljaju na više stranica


Kako odrediti tip i verziju browser-a
Pre nego što klijentu pošaljete sadržaj, poželjno je testirati tip i verziju browsera, kako bi mogli na vreme preusmerite klijenta ukoliko ne podržava primenjene stilove, skriptove i tagove


Upis u tekst fajlove, i njihovo iščitavanje
Korišćenjem sistemskih objekata, vrlo lako je moguće čitanje i upisivanje u tekstualne fajlove


Instalacija Personal Web Server-a
Saznajte kako instalirati web server sa svim potrebnim komponentama, i na taj način stvoriti uslove za bavljenjem ASP-om u kućnim uslovima


ASP.NET web kontrole
ASP.NET obezbeđuje veliki skup standardnih web kontrola, uključujući tu najprostije elemente GUI dizajna kao što su dugmad, tekst-polja...


Procesiranje ASP.NET Stranica
Umesto jednostavnog sekvencijalnog procesiranja, ASP.NET koristi model vođen događajima, tzv. event-driven model


Upoznavanje sa ASP.NET tehnologijom
Nakon ASP dolazi ASP.NET, deo Microsoft .NET Framework-a

 


Obrada jednostavnog formulara (II deo)
Kako iskoristiti dvosmernost Internet komunikacija, i ostvariti interaktivnost između web servera i web browsera (posetilaca)


Obrada jednostavnog formulara (I deo)
Kako iskoristiti dvosmernost Internet komunikacija, i ostvariti interaktivnost između web servera i web browsera (posetilaca)


Na vrhu stranice
Kako obavezno započeti svaku ASP stranicu? Sa kojim elementima i instrukcijama?

 


Objekat Response
Šta predstavlja objekat Response? Koje su njegove metode i osobine, i na koji način se koristi u web programiranju?


Definisanje varijabli
Tipovi varijabli (apliakcione i sesione varijable) i načini njihovog definisanja

 


Procedure (funkcije) i njihovo povezivanje
Kako se definišu i pozivaju, VBScript i JavaScript funkcije sa ASP stranica? Odgovor ćete pronaći u ovom prilogu


 Navodnici izazivaju probleme

Prilikom interpretacije ASP koda moguće je da dođe do funkcionalnih problema i problema u prikazu sadržaja, iz razloga što navodnici imaju dvojaku ulogu

Kad god budete primorani da koristite navodnike u ASP aplikacijama, verujte, moguće je da iskrsnu neki od problema. Uzrok problema leži u tome što navodnici, u isto vreme, predstavljaju i normalne (obične), i specijalne znake. U ulozi specijalnih simbola, razdvajaju stringove, odnosno oivičavaju ih. Da budemo malo određeniji, dvostruki navodnici [ " ] određuju granice stringova u VBScrip-u, a jednostruki navodnici [ ' ] oivičavaju stringove u SQL iskazima.

zapamtite:
· jednostruki navodnici razdvajaju stringove u SQL-u
· dvostruki navodnici razdvajaju stringove u VBScript-u

Problemi se najčešće javljaju kada recimo želite da u bazu podataka dodate imena koja sadrže jednostruke navodnike (najčešće engleska prezimena npr. Peter O'Tool). Druga mogućnost ya javljanje problema je kada koristite metod Response.Write za ispis teksta koji sadrži dvostruke navodnike.

Podrazumevana interpretacija karaktera navodnik je da je to delilac stringova. Ovo je razlog zašto treba izbegavati navodnike ukoliko želite da upotrebite njihovo karaktersko značenje. Da bi izbegli navodnike, potrebno je da ih udvostručite. Koristite [ " " ] da bi dobili dvostruke navodnike (kao običan karakter) u VBScript-u i dva puta jednostruke navonike [ " ] za jednostruki karakter-navodnik u SQL stringovima

izbegavanje jednostrukih navodnika:
· strName = Replace("O'Tool", "'", "''")

dobijanje "na izlazu" dvostrukih navodnika:
· Response.Write("Navodnici ""dele"" stringove")

Kao što možete zapaziti, u primerima imamo jako puno raznoraznih navodnika, ponajviše dvostrukih. Ovo može programski kod učiniti jako nečitkim. Drugo moguće rešenje je upotreba funkcije Chr(), kao i upotreba konstanti. Pogledajte sledeće primere:

Izbegavanje dvostrukih navodnika funkcijom Chr(34):

Response.Write("navodnici" & Chr(34) & "dele" & Chr(34) & " stringove")

Izbegavanje dvostrukih navodnika upotrebom konstanti:

Const DUPL_NAV = """"
Response.Write("Navodnici" & DUPL_NAV & "dele" & DUPL_NAV & " stringove")

vrh stranice


Ugrađene ASP komponente u IIS

Prilikom dizajniranja ASP stranica možemo koristiti usluge objekata i komponenti koji su ugrađeni u IIS (Internet Information Server)

U početnim ASP prilozima napomenuli smo da . Tada smo i naveli najbitnije ugrađene objekte, a sada ćemo se pozabaviti ugrađenim komponentama. Jedna od najpoznatijih ugrađenih komponenti je i ADO (ActiveX Data Objects) komponenta koja služi za direktan i vrlo pogodan pristup resursima baza podataka. Ovom komponentom ćemo se i najviše baviti. Pored ADO komponente, ASP podrazumeva i druge komponente koje dolaze sa instalacijom IIS-a. Velika prednost ovih komponenti je što smanjuju potrebu za programiranjem jer nude gotove koncepte, pa na vama ostaje da samo pozivate njihove metode i osobine. Pored ovih ugrađenih komponenti na tržištu postoji veliki broj komercijalnih komponenti, čijom kupovinom možete sebi uštedeti dane i dane programiranja. Pre nego što kupite i upotrebite ove komercijalne komponente, raspitajte se kod svog budućeg hosting provajdera, koje komponente podržava i da li dozvoljava instalaciju dodatnih. Određeni broj provajdera ne dozvoljava instalaciju dodatnih komponenti iz razloga bezbednosti i stabilnost svojih sistema.

Ugrađene ASP komponente

Sada ćemo vam predstaviti sve komponente ugrađene u IIS (po abecednom redu) i ukratko objasniti čemu koja komponenta služi:

Ad Rotaror komponenta
- komponenta koja olakšava rotiranje oglasa - banera na ASP stranicama.

Browser Capabilities komponenta
- komponenta koja omogućava detekciju klijenata/čitača i na taj način obezbeđuje važne statističke podatke.

Content Linking komponenta
- komponenta koja obezbeđuje lakše snalaženje sa tabelama sadržaja i lakše linkovanje.

Content Rotator komponenta
- komponenta vrlo slična komponenti Ad Rotaror s tim što se ovde radi o rotaciji sadržaja na stranicama (uglavnom tekstualnih) i u to u određenom procentu.

Counters komponenta
- komponenta koja na jednostavan način obezbeđuje brojače vašim stranicama.

Page Counter komponenta
- komponenta koja predstavlja naročitu vrstu brojača za praćenje saobraćaja na stranicama.

Permission Checker komponenta
- složena komponenta koja služi u zaštiti sadržaja.

Tools komponenta
- složena višenamenska komponenta koja pomaže u dinamičkom kreiranju prilagodljivih stranica.

vrh stranice


Instrukcija #include se koristi za kreiranje funkcija, zaglavlja i podnožja stranica, ili uopšteno, za sve elemente koji se ponavljaju na više stranica

Upotrebom ASP skript jezika, odnosno #Include direktive, moguće je sadržaj jednog fajla smestiti u ASP fajl, i to pre nego što server izvrši tu stranicu. Instrukcija #Include se upotrebljava za kreiranje funkcija, zaglavlja i podnožja stranica, ili uopšteno, za sve elemente koji se ponavljaju na više stranica.

Kako se koristi naredba #include

Uzmimo, na primer, da imamo stranicu "mojastr.asp" čiji je kod sličan ovome:
<html>
<body>
<h3>Prodaja:</h3>
<p><!--#include file="prodaja.inc"--></p>
<h3>Sada je:</h3>
<p><!--#include file="vreme.inc"--></p>
</body>
</html>

Evo i programskog koda stranice "prodaja.inc":

"Sektor prodaje je podelje u tri odeljenja..."

A evo i sadržaja stranice "vreme.inc":

<%
Response.Write(Time)
%>

Ukoliko učitate prvi programski kod u browser, i pozovete View > Source, videćete sledeći HTML:

<html>
<body>
<h3>Prodaja:</h3>
<p>"Sektor prodaje je podelje u tri odeljenja..."</p>
<h3>Sada je:</h3>
<p>09:12:45 PM</p>
</body>
</html>

Sintaksa naredbe #include

Za uključivanje sadržaja bilo kog fajla u ASP stranicu, umetnite naredbu #include unutar tagova za komentarisanje:

<!--#include virtual="naziv_fajla"-->
ili
<!--#include file ="naziv_fajla"-->

Pri navođenju ove naredbe možete koristiti ključnu reč virtual, kada vam je potrebno da putanja do fajla počinje virtuelnim direktorijumom. Na primer, ukoliko se fajl "zaglavlje.inc" nalazi u virtuelnom direktorijumu "/dodatni", sledećom linijom bi uključili sadržaj fajla zaglavlje.inc u fajl koji sadrži sledeću liniju.

<!-- #include virtual ="/dodatni/zaglavlje.inc" -->

Suprotno prethodnom, koristićete ključnu reč file, onda kada želite da ukažete na relativnu putanju do fajla. Relativna putanja započinje nazivom direktorijuma u kome se nalazi sam fajl. Na primer, ukoliko imate fajl koji se nalazi u direktorijumu HTML, a fajl zaglavlje.inc senalazi u direktorijumu "HTML\zaglavlja", sledećom linijom koda bi umetnu li sadržaj fajla zaglavlje.inc u vaš ASP fajl:

<!-- #include file ="zaglavlja\zaglavlje.inc" -->

Zapazite da je putanja umetnutog fajla, "zaglavlja\zaglavlje.inc", relativna u odnosu na pozivajući fajl; ukoliko se skript koji sadrži naredbu #include ne nalazi u direktorijumu /HTML, instrukcija neće funkcionisati. Ključnu reč file takođe možete koristiti i sa sintaksom (../), kada želite da uključite sadržaj fajla koji se nalazi u višem hijerarhijskom nivou direktorijuma

vrh stranice


Kako odrediti tip i verziju browser-a

Pre nego što klijentu pošaljete sadržaj, poželjno je testirati tip i verziju browsera, kako bi mogli na vreme preusmerite klijenta ukoliko ne podržava primenjene stilove, skriptove i tagove

Jedna od velikih mogućnosti koje pružaju jezici na strani servera je da možete testirati klijentsku kako bi identifikovali klijenta. Naime, često ćete imati potrebu da pre slanja sadržaja klijentu (browser-u), proverti da li njegov browser uopšte podržava prikaz datog sadržaja. Moguće je da ste već kreirali stranice koje su dizajnirane za ispravan prikaz samo u IE i Netscape-i, verzije 4 ili više. Ili ste već nakon testa stranica u nekim drugim browser-ima ili različitim verzijama uvideli da se sadržaj ne prikazuje kako ste zamislili. Zato ćemo vam, da bi izbegli ovakve probleme, u ovom tekstu prikazati kako možete da detektujete određeni browser.

Za početak, pretpostavićemo da su vam se posetioci požalili da je tekst, koji ste osenčili ili obojili nekom "drečećom" bojom, veoma nečitljiv kada se stranica gleda u nekom posebnom browser-u ili recimo na WebTV uređaju. Šta onda uraditi - ukloniti datu boju sa celog sajta? Ukloniti senčenje? Odgovor je - naravno, ne!

Rešenje je u tome da prvo pronađete alternativnu boju koja je pogodna za WebTV ili neki drugi browser, i da zatim tu boju upotrebite samo ukoliko posetilac za pregled stranica koristi WebTV ili egzotični browser. U svim ostalim slučajevima koristićete boju i font koji ste planirali.

Implementacija

Evo kako ćete implementirati ovakvo jedno rešenje:

<%
set bh = server.createobject("cyScape.browserObj")
if (bh.browser = "WebTV") then
   bojaFonta = "003366" 'alternativna boja za WebTV
else
   bojaFonta = "000066" 'boja fonta za sve ostale
end if
%>
<html>

<head>
<title></title>
</head>

<body><p>
Dobrdošli.<font color="<%=bojaFonta%>">Bitan tekst </font>je vidno obeleže radi vaše veće pažnje.
</p>
</font>
</body>
</html>

vrh stranice


Upis u tekst fajlove, i njihovo iščitavanje

Korišćenjem sistemskih objekata, vrlo lako je moguće čitanje i upisivanje u tekstualne fajlove

U ovom prilogu pozabavićemo se dosta čestim operacijama u svakodnevnom radu sa ASP-om, a to su upis u tekstualne fajlovi i iščitavanje iz istih. Funkcija koje ćemo videti, baziraju se na korišćenju ugrađenih sistemskih objekata za rad sa fajlovima, prvenstveno se misli na objekat FSO (FileSystemObject) i korišćenje njegovih metoda:

  • OpenTextFile
  • Write ili WriteLine
  • ReadLine

Prvo ćemo vam predstaviti funkciju za upi u tekst-fajl.

Funkcija za upis u tekstualne fajlove

<%
Option Explicit
' podešavanje konstanti
Const ZaPisanje = 2
' ulazni OutPut mod
Const Kreiranje = True

' dimenzionisanje lokalnih varijabli
Dim MojFajl
Dim FSO ' objekat FileSystemObject
Dim TSO ' objekat TextStreamObject

' preporučuje se korišćenje MapPath funkcije za određivanje tačne fizičke putanje do fajla
MojFajl = Server.MapPath("tekstfajl.txt")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set TSO = FSO.OpenTextFile(MojFajl, ZaPisanje, Kreiranje)
TSO.write "Ovo je prva linija u tekst fajlu" & vbcrlf
' Vbcrlf je oznaka za novi red
TSO.write "Ovo je druga linija u tekst fajlu" & vbcrlf
' sada će funkcija upisati lokalno vreme
TSO.write "Upisano u" & Now()
TSO.WriteLine ""

Response.Write " Upisane tri linije u tekstfajl.txt <br>"
Response.Write " Vreme po serveru je" & Now()

' zatvaranje objekta TextStreamObject
' poništavanje lokalnih varijabli
TSO.close
Set TSO = Nothing
Set FSO = Nothing
%>

Funkcija za čitanje sadržaja iz tekstualnih fajlova

<%
Option Explicit
' podešavanje konstanti
Const ZaCitanje = 1
Const Kreiranje = False

' dimenzionisanje lokalnih varijabli
Dim objFSO ' objekat FileSystemObject
Dim TS ' objekat TextStreamObject
Dim strLinija' varijabla za smeštanje linije teksta
Dim strNazivFajla' varijalba za smeštanje naziva fajla

strNazivFajla = Server.MapPath("tekstfajl.txt")

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

' korišćenje metode OpenTextFileza otvaranje tekst fajla
Set TS = objFSO.OpenTextFile(strNazivFajla, ZaCitanje, Kreiranje)

If Not TS.AtEndOfStream Then

Do While Not TS.AtendOfStream
   strLinija = TS.ReadLine ' čitanje pojedinačne linije
   Response.Write strLinija' prikaz linije
   Response.Write "<br>"
Loop

End If

' zatvaranje objekta TextStreamObject
' poništavanje lokalnih varijabli
TS.Close
Set TS = Nothing
Set objFSO = Nothing
%>

vrh stranice


Instalacija Personal Web Server-a

Saznajte kako instalirati web server sa svim potrebnim komponentama, i na taj način stvoriti uslove za bavljenjem ASP-om u kućnim uslovima.

Kao što smo naveli u prošlom prilogu, web kontrole ASP.NET-a upravo služe za građenje korisničkog interfejsa aplikacija zasnovanih na tankim klijentima. Konceptualno su vrlo bliske tradicionalnim Windows kontrolama, pre svega po tome što svaka od njih ima sopstveni korisnički interfejs (izgled) i nosi sa sobom odgovarajuće funkcije. Međutim, za razliku od Windows kontrola, web kontrole se pokreću na serveru (one su klase koje postaju deo page klase) i proizvode sopstveni izgled interfejsa generisanjem odgovarajućeg HTML kôda za browser. ASP.NET obezbeđuje veliki skup standardnih web kontrola, uključujući tu najprostije elemente GUI dizajna kao što su dugmad, tekst-polja, CheckBox-ovi, radio-dugmad i liste.

Microsoft-ova originalna Active Server Pages tehnologija bila je pun pogodak. Osnovni razlog za to je neverovatno laka upotreba. ASP.NET je mnogo više nego originalni ASP, ali sa određenom dozom kompleksnosti. U stvari, za efektno korišćenje, ASP.NET zahteva razumevanje CLR-a (Common Language Runtime), jer sav programski kôd mora biti napisan u nekom od CLR zasnovanih jezika kao što su VB.NET ili C# (C-sharp). Naravno, i pisanje pravih ASP aplikacija zahteva značajna znanja, ali je sigurno da će ASP.NET od svakog programera zahtevati mnogo više.

Za tradicionalne ASP dizajnere, ASP.NET predstavlja potpuno novi svet. Neki delovi izgledaju vrlo poznato, a većina od znanja pokupljenih u radu sa ASP-om biće i nadalje od velike koristi. Međutim, od jednog manjeg dela znanja i neće imati neke koristi, a ponešto će vas dovesti i u potpunu zabludu. Zbog ovog poslednjeg, najbolji način da svladate ASP.NET biće da potpuno zaboravite stari načina razmišljanja (ASP način). Najbolji pristup bi bio da se prvo upoznate sa .NET Framework okruženjem uopšte, a zatim se uhvatite u koštac sa ASP.NET-om. Da bi ovo bilo moguće, sa sajta Microsoft-a i sajtova njegovih lokalnih zastupnika možete besplatno naručiti testnu beta 2 verziju Visual Studio .NET-a.

vrh stranice


ASP.NET web kontrole

ASP.NET obezbeđuje veliki skup standardnih web kontrola, uključujući tu najprostije elemente GUI dizajna kao što su dugmad, tekst-polja...

Kao što smo naveli u prošlom prilogu, web kontrole ASP.NET-a upravo služe za građenje korisničkog interfejsa aplikacija zasnovanih na tankim klijentima. Konceptualno su vrlo bliske tradicionalnim Windows kontrolama, pre svega po tome što svaka od njih ima sopstveni korisnički interfejs (izgled) i nosi sa sobom odgovarajuće funkcije. Međutim, za razliku od Windows kontrola, web kontrole se pokreću na serveru (one su klase koje postaju deo page klase) i proizvode sopstveni izgled interfejsa generisanjem odgovarajućeg HTML kôda za browser. ASP.NET obezbeđuje veliki skup standardnih web kontrola, uključujući tu najprostije elemente GUI dizajna kao što su dugmad, tekst-polja, CheckBox-ovi, radio-dugmad i liste.

Microsoft-ova originalna Active Server Pages tehnologija bila je pun pogodak. Osnovni razlog za to je neverovatno laka upotreba. ASP.NET je mnogo više nego originalni ASP, ali sa određenom dozom kompleksnosti. U stvari, za efektno korišćenje, ASP.NET zahteva razumevanje CLR-a (Common Language Runtime), jer sav programski kôd mora biti napisan u nekom od CLR zasnovanih jezika kao što su VB.NET ili C# (C-sharp). Naravno, i pisanje pravih ASP aplikacija zahteva značajna znanja, ali je sigurno da će ASP.NET od svakog programera zahtevati mnogo više.

Za tradicionalne ASP dizajnere, ASP.NET predstavlja potpuno novi svet. Neki delovi izgledaju vrlo poznato, a većina od znanja pokupljenih u radu sa ASP-om biće i nadalje od velike koristi. Međutim, od jednog manjeg dela znanja i neće imati neke koristi, a ponešto će vas dovesti i u potpunu zabludu. Zbog ovog poslednjeg, najbolji način da svladate ASP.NET biće da potpuno zaboravite stari načina razmišljanja (ASP način). Najbolji pristup bi bio da se prvo upoznate sa .NET Framework okruženjem uopšte, a zatim se uhvatite u koštac sa ASP.NET-om. Da bi ovo bilo moguće, sa sajta Microsoft-a i sajtova njegovih lokalnih zastupnika možete besplatno naručiti testnu beta 2 verziju Visual Studio .NET-a. Konačna verzija se očekuje u proleće 2002. godine

vrh stranice


Procesiranje ASP.NET stranica

Umesto jednostavnog sekvencijalnog procesiranja, ASP.NET koristi model vođen događajima, tzv. event-driven model

Razumevanje načina na koji se generišu tradicionalne ASP stranice je vrlo lako: stranica se procesira sekvencijalno. A kao što smo to videli u prethodnom prilogu, kod ASP.NET-a imamo sasvim drugačiji slučaj. Pošto se svaka pojedinačna stranica pretvara u klasu pre izvršenja, na koji način se dešava procesiranje? Odgovor je u tome da umesto jednostavnog sekvencijalnog procesiranja, ASP.NET koristi model vođen događajima, tzv. event-driven model. Kada se pristupi ASP.NET stranici, iz stranice se generiše assembly i instanca klase. Ovaj objekat stranice prima seriju događaja, kao Render metoda. Svakim događajem upravalja određeni metod, pa tako npr. Render metoda upravlja Render događajem, koja će omogućiti prikaz dela stranice ili cele stranice. Pored ovoga, i sam kôd unutar .aspx stranice može da sadrži metode koje će upravljati ovim događajima, i svaka od ovih metoda može proizvesti izlaz koji će se poslati klijentskom browser-u. Kada se isprocesiraju svi događaji, Page objekat se oslobađa (uništava).

Programiranje zasnovano na događajima biće nešto novo za mnoge ASP programere, a samo razumevanje ovog modela zahtevaće dodatni rad. Za sada je primarni cilj Web-scripting tehnologija, kao što je ASP.NET - kreiranje efektnog korisničkog interfejsa (uglavnom za thin-klijent aplikacije). Sam korisnički interfejs je po svojoj prirodi vođen nekakvim događajima, pa zato i ima smisla primena ovog modela. Zapravo, korisnički interfejs vođen događajima oduvek je bio standard za sve Windows aplikacije. Pored ideje korišćenja događaja, tu je još jedna ideja koja je preuzeta iz Windows korisničkog interfejsa, a to je odvojeno pakovanje različitih funkcionalnosti u tzv. kontrole (komponente), za višestruku upotrebu. Svaka kontrola obezbeđuje neki od aspekata korisničkog interfejsa, kao npr. dugme ili tekst polje, i može biti kombinovana sa drugim kontrolama u lakom građenju korisničkog interfejsa. Pošto je ASP.NET prihvatio ideju event-zasnovanog programiranja, zašto ne bi preuzeo i interfejs-komponente za višestruku upotrebu, radi primene na web-u?

vrh stranice


Upoznavanje sa ASP.NET tehnologijom

Nakon ASP dolazi ASP.NET, deo Microsoft .NET Framework-a

Ponekad Microsoft menja nazive tehnologijama koje je sam razvio, ali ne menja i samu tehnologiju. Pre nekoliko godina je ta kompanija, na primer, preimenovala OLE u ActiveX, pri čemu je suština vrlo malo izmenjena. U drugim situacijama, Microsoft je ostavljao nazive manje ili više istim, dok je u isto vreme radikalno izmenio identitet date tehnologije. Upravo je ASP.NET blistav primer ovog drugog fenomena. Iako naziv zvuči prepoznatljivo, u biti je mnogo drugačiji od obične ASP tehnologije.

Najbolji način da uvidite šta ovo znači jeste opis toga šta se dešava kada ASP.NET stranici pristupite iz browser-a. Ovu priču ćemo ilustrovati jednostavnom .aspx stranicom ASP.NET ekvivalentom poznatoj .asp stranici:

<html>
<script runat="server" language="vb">
Sub PrikaziBrojeve()
Dim br As Integer
For br = 0 To 5
Response.Write(br)
Next
End Sub
</script>
Datum i vreme: <% =Now() %>
<hr>
Brojke: <% PrikaziBrojeve() %>
</html>

Kao i tradicionalne ASP stranice, ASP.NET (.aspx) stranice mogu da sadrže HTML, plain tekst i kôd isprepletan bilo putem <script> taga ili <%...%>. U stvari, stranica iz primera najviše liči na običnu .asp stranicu: oslobodite se DIM deklaracije, promenite deklaraciju jezika u "vbscript", i sve će biti po tradicionalnom ASP-u. Ali ono što se dešava kada ovu stranicu izvršimo ASP.NET-om, veoma je različito u odnosu na izvršenje u ASP okruženju.

Ako bi ova stranica bila procesirana kao ASP stranica, kôd koji sadrži bio bi interpretiran od strane servera, a izlaz koji se generiše bio bi ubačen u tok podataka poslat ka browser-u. Tekst i HTML na stranici bili bi direktno, nepromenjeni, prosleđeni browser-u.

Pristupanjem stranici iz primera preko ASP.NET-a rezultiralo bi kompletno različitim procesom izvršavanja. ASP.NET aplikacije pripadaju .NET Framework aplikacijama, što znači da su zasnovane na Common Language Runtime (CLR). Zbog ovoga, svaka .aspx stranica se automatski prebacuje u klasu i to kada joj pristupi prvi klijent. Ovakva nova klasa je naslednik standardne Page klase iz .NET Framework biblioteke klasa, a različiti segmenti sadržaja .aspx stranice umetnuti su na različita mesta unutar ove klase. Na primer, bilo koji kôd sadržan unutar <script> elemenata ubačen je u klasu samostalno. U našem slučaju, jednostavna funkcija PrikaziBrojeve postaje metoda u generisanoj klasi. Ostatak ove stranice, uključujući tu i tekst, HTML tagove, i kôd između elemenata <% ... %>, smešta se u jednu metodu nazvanu Render, i to u istu klasu. Potom se ova nova klasa kompajlira i pakuje u jedan skup (assembly), tj. kontejner koji .NET koristi za skladištenje kompajliranog kôda. Jednom kada je ovaj assembly kreiran, koristiće se za upravljanje svim budućim zahtevima za ovom stranicom. Ukoliko ovu stranicu izmenimo, proces se ponovo odigrava i generiše se novi assembly.

vrh stranice


Obrada jednostavnog formulara (II deo)

Kako iskoristiti dvosmernost Internet komunikacija, i ostvariti interaktivnost između web servera i web browsera (posetilaca)

U prethodnom prilogu kreirali smo jedan jednostavan HTML formular, koji ćemo, radi probe, popuniti i uputiti web serveru. Ali pre toga potrebno je da kreiramo odgovor, odnosno ASP stranicu koja će ispisati primljene vrednosti iz formulara, uz pomoć objekta Response. Da bismo ispisali vrednosti polja iz formulara, iskoristićemo metodu Write, objekta Response. Odgovor bi mogao da izgleda ovako:

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
varNaziv = Request.Form ("naziv")
varAdresa = Request.Form ("adresa")
Response.Write (varNaziv)
%>
<BR>
<%
Response.Write (varAdresa)
%>
<BR>
</BODY>
</HTML>

Ovaj skript će uz pomoć definisanih varijabli (varNaziv, varAdresa) prihvatiti vrednosti koje se dobiju iz predatog formulara. Ne zaboravite da ovom fajlu date naziv koji ste naveli u formularu, a to je "obrada.asp". Da biste isprobali kako ovo radi u praksi, smestite oba fajla u neki od foldera web servera i startujte sam web server (IIS ili PWS). Učitajte formular u web browser, tako što ćete u Addressliniju upisati nešto slično ovome (putanja zavisi od toga gde ste smestili fajlove, ovde se radi o root folderu):

http://localhost/formular.htm

Nakon uspešnog učitavanja formulara, što znači da web server ispravno radi, popunite formular i pritisnite dugme "Posalji" (Submit). Po kliku na dugme, objekat Request pokupiće sve podatke u okviru zahteva (formulara), uključujući tu i HTTP zaglavlja, cookie-je, eventualne podatke o autentifikaciji, i drugo. Svi ovi podaci će biti dostupni ASP skriptu "obrada.asp". Nas od tih podataka zanimaju samo podaci iz Form kolekcije, i to dva para naziv/vrednost:

"naziv" / "vrednost koju ste uneli"
"adresa" / "vrednost koju ste uneli"

Ove vrednosti smeštamo u dve varijable i zatim uz pomoć Response.Write vršimo slanje u browser. Rezultat koji će server vratiti biće (vidi sliku):

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
Personal magazine
<BR>
http://www.personalmag.co.yu
<BR>
</BODY>
</HTML>

Kao što smo naveli u pređašnjem prilogu, poljima formulara možemo pristupiti i preko indeksa (rednog broja) polja u formularu. Tada bi varijable preuzele vrednosti na sledeći način:

varNaziv = Request.Form (1)
varAdresa = Request.Form (2)

Ipak, u praksi, mnogo je bolje koristiti nazive polja, jer u slučaju velikih formulara, vrlo je velika mogućnost greške

vrh stranice


Obrada jednostavnog formulara (I deo)

Kako iskoristiti dvosmernost Internet komunikacija, i ostvariti interaktivnost između web servera i web browsera (posetilaca)

Jedan od osnovnih i najjednostavnijih elemenata interaktivnosti, tj. dvosmerne komunikacije na Internetu, predstavljaju HTML formulari. Ta interakcija se zasniva na komunikaciji između web browser-a (ili drugog agenta) i web servera, preko HTTP protokola. ASP nam olakšava kontrolu i upravljanje ovom komunikacijom uz pomoć dva objekata Request i Response.

Namena objekta Request je preuzimanje podataka od korisnika (iz formulara) i omogućavanje dostupnosti podataka za dalju obradu. Nasuprot tome, objekat Response svojim metodama omogućava slanje podataka korisniku nazad u web browser (ili drugi agent). Pošto su ovo dva esencijalna ASP objekta, čija je sintaksa sasvim jednostavna, gotovo da nema web aplikacije koja ih ne uključuje.

Često ste se na web-u susretali sa dugmetom Submit, koje služi sa slanje podataka serveru. Kada korisnik klikne da ovo dugme (ili odgovarajući link), tada Request objekat preuzima sve podatke unete u formular, a pored toga i sve HTTP promenljive, osobine i cookie-je. Svi ovi podaci se tada predaju odgovarajućem ASP skriptu. Sam objekat Request poseduje pet kolekcija koje preuzimaju određeni tip podataka, a preko kojih se u stvari dolazi do unetih vrednosti:

  • Form - kolekcija koja sadrži nazive informacija i vrednosti vezane za same nazive, a koji nastaju predajom formulara metodom "POST".
  • Server variables - kolekcija podataka (naziv varijable/vrednost) iz HTTP zaglavlja.
  • Query string - podaci koji se preuzimaju sa kraja zahtevanog URL-a. Recimo, "http://www.nesto.com/strana.asp?naziv=Kamion".
  • Cookies - kolačići koji se šalju uz zahtev.
  • Client certificate - podaci sertifikata klijenta namenjenih web serveru.

ASP preko objekta Request preuzima sve informacije iz svih navedenih kolekcija i čini ih dostupnim vašim skriptovima za obradu. Podacima iz formulara se pristupa preko Form kolekcije i to navođenjem naziva polja za unos ili navođenjem indeksa (rednog broja) polja za unos.

Za naš primer, kreiraćemo jedan jednostavni HTML formular:

Ovo je vrlo jednostavan formular (vidi sliku) sa samo dva polja za unos (intput type=text) i dugmićem Submit (intput type=submit). Uočite da smo za nazive svakog polja formulara iskoristili jedinstvene vrednosti (naziv, adresa). ASP odgovor na ovaj formular predstavićemo u sledećem prilogu.

vrh stranice


Na vrhu stranice

Kako obavezno započeti svaku ASP stranicu? Sa kojim elementima i instrukcijama?

Prve linije vaših ASP stranica su veoma bitne, jer upravo uz pomoć njih definišemo osnovno upravljanje instrukcijama koje su smeštene na ostatku stranice. Razmotrite sledeći programski kod:

<% @Language = "VBScript" %>
<%
Option Explicit
Response.Buffer = True
Response.Expires = -1000
%>

Prvom linijom, <% @Language = "VBScript" %>, deklariše se podrazumevani server-side skript jezik koji se koristi na stranici. Čak i ako koristite VBScript jezik, koji je i inače podrazumevani jezik od strane servera, dobra programerska praksa je upotreba ove linije. Idući dalje, možemo videti upotrebu ključnih reči Option Explicit, koje će vam uštedeti veliko vreme potrebno za otklanjanje bug-ova na stranicama. VBScript daje veoma veliku slobodu u deklaraciji varijabli, te će vam dozvoliti da kreirate i upotrebljavate veliki broj varijabli, sa kraja na kraj ASP stranice. Navođenjem Option Explicit na vrhu stranice, uputićete ASP parser da generiše grešku ukoliko pronađe varijablu na stranici koja nije definisana na početku ASP koda.
Narednom linijom Response.Buffer=True, ukazujemo serveru da ne šalje stranicu i njen sadržaj nazad klijentu sve dok ne završi kompletno procesiranje svih skriptova na strani servera. Na ovaj način se postiže veća efikasnost, jer će server klijentu poslati samo jedan set HTTP header-a zajedno sa zahtevanom stranicom, umesto moguća dva ili tri seta. Buffer-ovanje je veoma korisno i u procesu debug-ovanja, kada možete zadržati sadžaj koji ide ka testnom klijentu, sve do tačke na kojoj pretpostavljate da se nalazi greška. Buffer-ovanje je kod novih verzija parsera po default-u aktivno, pa ovu liniju i ne morate navoditi, ali ako radite na serveru sa parserom verzije ASP2.0, moraćete da navedete ovu liniju (podešena je na False).

I na kraju, ako znate da će se sadržaj vaših stranica redovno osvežavati, ne zaboravite da podesite vreme isteka aktuelnosti stranice (expire). Kada parser "prevede" ASP stranicu u statičnu stranicu i kada se ta stranica smesti u cache klijenta, daje mu se podatak o roku isteka važenja stranice, nakon čega će klijent zahtevati novu stranicu sa servera. Ovu opciju ne treba podešavati ukoliko često ne menjate sadržaj stranice - inače ćete učiniti da server samo ima više posla

vrh stranice


Objekat Response

Šta predstavlja objekat Response? Koje su njegove metode i osobine, i na koji način se koristi u web programiranju?

Podrška za ASP, instalirana sa Windows-om NT (2000) i IIS-om, dolazi sa velikim brojem već ugrađenih metoda, osobina, funkcija i komponenti. Sve ove funkcije i metode obezbeđuju temelje za rad ASP-a sa HTML-om, VBScript-om, JavaScript-om, SQL-om. One takođe obezbeđuju i pristup HTTP header-ima (zaglavljima) radi olakšavanja kreiranja dinamičkih web stranica. Inače, HTTP header-i nastaju kao rezultat principa rada HTTP protokola - "zahtev/odgovor" (request/response), tj. osnovne tipične komunikacije između klijenta i servera. HTTP header-i sastoje se od: general-header-a, request-header-a, response-header-a i entity-header.

Objekat Response, uz pomoć svojih metoda, omogućava da odgovorite na sve zahteve (requests) korisnika, ali omogućava i druge funkcije. Objekat Response poseduje devet osobina i veći broj metoda. Osobine objekta kreira sam server, ali vi ih možete iščitavati i uređivati (menjati) u skladu sa svojim potrebama. Daćemo vam i kratki pregled svih osobina, sa njihovim značenjem:

  • Charset - string osobina koja nosi naziv upotrebljenog karakter-skupa.
  • ContentType - string osobina za podešavanje tipa HTTP sadržaja.
  • Status - string vrednost koja nosi status i poruku u slučaju da se desi neka greška u obradi.
  • IsClientConected - boolean osobina (True ili False) koja nam služi za proveru, da li je korisnikov web čitač i dalje povezan, i da li vrši učitavanje stranice.
  • CacheControl - string osobina sa mogućim vrednostima "Public" i "Private", a služi za kontrolu keširanja stranica na proxy serverima.
  • Expires - brojčana osobina koja nosi podatak o vremenu validnosti same stranice.
  • ExpiresAbsolute - osobina kojom postavljamo vreme apsolutnog isteka validnosti (važnosti) stranice.
  • Buffer - boolean osobina (podrazumevana vrednost je True) kojom se određuje da li se sadržaj o onoga što se šalje kao odgovor buffer-uje, sve dok ne bude spreman ceo sadržaj za isporuku.
  • PICS - string osobina kojom dodajemo u header vrednosti koje mogu ukazivati na sadržaj koji nije namenjen omladini.

vrh stranice


Definisanje varijabli

Tipovi varijabli (apliakcione i sesione varijable) i načini njihovog definisanja

U ASP-u, varijablama koje deklarisemo van bilo koje procedure, moze pristupiti bilo koji skript sa iste ASP stranice, a moze vrsiti i izmene vrednosti varijabli. U slucaju da su varijable deklarisane unutar procedura, svaki put kada se procedura pozove vrsi se njihovo kreiranje, te na izlazu iz procedure se vrsi njihova destrukcija (destroy). Ni jedan skript van date procedure ne moze pristupiti i ne moze promeniti vrednost unutrasnje varijable.

Ali, u slucaju da vam trebaju "dugotrajnije" varijable, postoji resenje. Da bi varijabla bila dostupna vecem broju skriptova ili nekoliko ASP stranica, potrebno je da varijable deklarisemo kao varijable sesije ili kao aplikacione varijable. Sesione varijable su tako deklarisane da cuvaju informacije u vezi jednog korisnika - posetioca, a dostupne su svim ASP stranicama u jednoj aplikaciji (pri jednoj sesiji). Najcesce sesione varijable se koriste za potrebe deklarisanja korisnickog imena (username) i lozinke (password), pri pristupu zasticenim delovima sajta. Ovo znaci da varijable sesije "traju" koliko i jedan sesija, tj. za vreme trajanja jedne posete sajtu. Ove varijable se kreiraju i "cuvaju" u objektu sesije - Session Object (o tome vise u nekom od narednih priloga).

Aplikacione varijable (Application variables) su, kao i prethodne, dostupne vecem broju stranica u jednoj aplikaciji. Najcesce se koriste za smestaj i cuvanje informacija koje su vezane za sve korisnike odredene aplikacije. Radi kreiranja aplikacionih varijabli smestite ih u aplikacioni objekat - Application Object.

Sada cemo videti primer najjednostavnijeg deklarisanja varijable i njeno koriscenje. Sledeci programski kod snimite kao "*.asp" fajl, i pozivite ga preko PWS ili IIS servera:
<html>
<body>

<%
Dim sajt
sajt="Personalmag.co.yu"

response.write("Najbolji YU sajt: <B>" & sajt & "<B>")
%>

</body>
</html>

Na ovoj ASP stranici, koriscenjem sintakse VBScript-a, deklarisali smo varijablu "sajt" i nakon toga joj dodelili vrednost. Na kraju smo uz pomoc metode "write" prikazali odredenu poruku i na nju nadovezali vrednost varijable "sajt". Rezultat mozete videti na slici.

vrh stranice


Procedure (funkcije) i njihovo povezivanje

Kako se definišu i pozivaju, VBScript i JavaScript funkcije sa ASP stranica

Za pozivanje VBScript ili JavaScript procedura (funkcija) sa ASP stranica, napisanih u VBScript-u, možete koristiti ključnu reč call (poziv). U pozivu, iza ključne reči ide deklarisani identifikator procedure (naziv procedure), a zatim i eventualni parametri, ukoliko ih procedura zahteva. Ukoliko imamo više parametara, listu parametara moramo "zatvoriti" u zagrade. U slučaju da ste pri pozivu procedure izostavili ključnu reč (call), tada lista parametara ne sme biti u zagradama. Ukoliko procedure (funkcije) nemaju nikakvih parametara, korišćenje zagrada je opcionalno. Ipak, kada pozivate JavaScript ili VBScript procedure sa ASP stranica napisanih u JavaScript-u (znači ne kao gore, u VBScript-u), uvek koristite zagrade nakon naziva procedure (funkcije).

Za početak videćemo kako se definiše jedna funkcija, i to u dva skript jezika JavaScript-u i VBScript-u. Funkcija je jednostavna, i ima zadatak da izračuna proizvod dva prosleđena broja i da ih ispiše. Evo kako funkcija izgleda u JavaScript-u:

<% language="JavaScript" %>
<html>
<head>
<%
function jsProizvod(br1, br2){
response.write(br1 * br2)
}
%>
</head>

Kao što vidite, vrlo je jednostavno. Da napomenemo, da liniju <%@ language="JavaScript" %> treba da ubacite pre HTML taga, ukoliko koristite procedure napisane drugačijim skript jezikom u odnosu na default jezik. Istu ovu funkciju napisaćemo i u VBScript-u:


<html>
<head>
<%
sub vbProizvod (br1, br2)
response.write(br1 * br2)
end sub
%>
</head>

Na kraju, ostalo nam je samo da pozovemo funkcije:

<html>
<head>
<%
sub vbProizvod (br1, br2)
response.write(br1 * br2)
end sub
%>

</head>
<body>

Proizvod je:
<%
call vbProizvod (3,4)
%>
<br>
Ili, drugim nacinom pozivanja:
<br>
Proizvod je: <% vbProizvod 3,4 %>

</body>
</html>

vrh stranice

NASLOVNA      O NAMA      USLUGE      POTFOLIO      DOWNLOAD     KONTAKT                             

                                                        Copyright © 2004 SokobanjaCrackin'Group. All rights reserved.

naslovna strana o nama usluge portfolio - prikaz nasih radova download zone kontakt download portfolio kontakt webmaster naslovna