Acest text este destinat celor care nu s-au ocupat niciodată de ASP și, în general, își imaginează vag posibilitățile de programare pe partea de server. Mi-am dat sarcina de a crea o idee generală despre subiect în cititor. Inconsecvențele separate sunt mai puțin importante, vă rugăm să nu jurați tare.
ASP (Active Server Pages) este o tehnologie puternică de la Microsoft, care vă permite să dezvoltați cu ușurință aplicații pentru WWW. ASP rulează pe platforma Windows NT și pe Internet Information Server (IIS), începând cu versiunea 3, deși există unele implementări pe alte platforme. ASP nu este un limbaj de programare, este o tehnologie internă care vă permite să conectați programe la pagini Web. Baza succesului ASP este un limbaj simplu de scripting (Visual Basic Script sau Java Script) și abilitatea de a utiliza componente externe COM.
Cum se întâmplă acest lucru?
Ce instrumente există pentru programare?
Web-ul este un mediu normal de programare, dacă înțelegeți corect ce este. În VBScript, există toate structurile normale de programare structurată (dacă, în timp ce, caz, etc). Există variabile (nu este necesar să se descrie, tipul nu este specificat explicit). Obiectele sunt acceptate. Lucrul cu ele este comun - Object.Property, Object.Method. Există un număr de obiecte încorporate (Cerere, Răspuns, Sesiune, Server, Conectare, Recordset). Puteți instala alte componente (descărcare, cumpărare, programare), de exemplu, pentru a lucra cu e-mail.
Noțiunea de "ecran", unde nu puteți afișa datele. Tot ce trebuie să fie afișat utilizatorului este aruncat în fluxul de ieșire în HTML. Browserul utilizatorului interpretează acest HTML. Pentru a simplifica ieșirea, există un obiect Răspuns. Ieșirea este efectuată utilizând metoda de scriere.
Aceasta scrie la tamponul intern al obiectului Răspuns. Când scriptul termină lucrarea, întregul tampon este eliberat clientului. Trebuie remarcat faptul că clientul primește cod HTML "curat", astfel încât programele pe ASP nu depind de software-ul clientului, ceea ce este foarte important. Dacă trebuie să utilizați un ghilimele în interiorul șirului de ieșire, ghilimele sunt dublate. Alte metode și proprietăți de răspuns vă permit să controlați rezultatele. Deci, Response.Buffer ajustează dacă clientul primește datele așa cum este din intrarea din răspuns, sau toate simultan după executarea paginii. Metoda Response.Redirect redirecționează browserul către o altă pagină. Pentru a-l utiliza, nu puteți folosi răspunsul.write pe pagină.
Programul ASP nu poate solicita în mod explicit utilizatorului ceva. Acesta primește date din alte pagini sau printr-o adresă URL. Parametrii transmiși sunt plasați în fluxul de intrare și accesați prin obiectul Request. Pentru a trece variabila var la test.asp. este necesar să scrieți:
Pentru a obține valoarea acestei variabile din program, este necesar să scrieți:
Mai multe variabile sunt separate de un semn :
În plus, puteți utiliza formulare HTML pentru a specifica parametrii într-o adresă URL. În pagina de asteptare, scrieți aceasta:
Arată astfel:
Astfel, utilizatorul vede un formular dintr-un câmp de intrare (var1), în care va exista o valoare implicită "implicită". Al doilea câmp (var2) va fi invizibil și va transmite întotdeauna o valoare fixă a "var2value". Butonul "Trimiteți formularul" completează completarea formularului și transmite toate variabilele la test.asp (acțiune). Dacă metoda = "get", variabilele sunt transmise prin adresa URL (test.asp? Var1 = defaultvar2 = var2value). Dacă metoda = "post", sunt transmise împreună cu interogarea, astfel încât transferul variabil nu este vizibil. În programul numit nu contează ce metodă este utilizată (aproape). Dacă nu aveți argumente speciale pentru metoda GET, utilizați metoda POST.
Formularele HTML sunt folosite pentru a organiza un dialog cu utilizatorul. Sunt acceptate comenzile standard. Toate soiurile sunt stabilite de câteva etichete:
- INPUT (cu TYPE = parametru)
- SELECT
- TEXTAREA
Descriere - în documentația HTML.
Relația dintre paginile individuale
În mod tipic, serverul WWW nu stochează starea aplicației, adică toate cererile sunt reciproc independente și nu există un mod standard de a înțelege că mai multe cereri au venit de la același utilizator. Dar acest lucru este foarte necesar pentru dezvoltarea de aplicații full-fledged și este una dintre principalele probleme ale dezvoltării aplicațiilor Web.
O modalitate de a rezolva această problemă sunt cookie-urile. Utilizatorul primește un identificator special la primul acces, după care browserul utilizatorului prezintă acest identificator la fiecare aderare, iar serverul poate recunoaște că este același utilizator. Utilizatorul poate dezactiva modulele cookie, caz în care această metodă nu funcționează.
ASP, folosind cookie-uri, furnizează programatorului un mijloc mai simplu - obiectul Session. Sesiunea începe când noul utilizator accesează orice asp-fișier al aplicației. Sesiunea se încheie atunci când nu există activitate de utilizator timp de 20 de minute sau printr-o comandă explicită. Un obiect special al sesiunii stochează starea sesiunii. Aici puteți scrie variabile care sunt accesibile din orice pagină din această sesiune. Puteți scrie date către acest obiect simplu:
Este mai ușor să citiți mai târziu:
O sesiune, prin urmare, este o altă metodă de transfer de date între pagini. O singură pagină scrie date la sesiune, iar cealaltă o ia de acolo mai târziu.
Împreună cu obiectul Session, există un obiect Application. Dacă o sesiune este creată pentru fiecare utilizator nou, înainte ca aplicația să existe într-o singură instanță și poate fi utilizată de toate paginile aplicației.
Programatorului i se oferă posibilitatea de a răspunde la 4 evenimente: pornirea / oprirea aplicațiilor și pornirea / oprirea fiecărei sesiuni. Fișierul global.asa este utilizat pentru implementarea acestor evenimente. care ar trebui să fie localizată în directorul rădăcină al aplicației. Iată scheletul său aproximativ:
Este necesar "pur și simplu" să introduceți codul în locul corespunzător. Trebuie remarcat faptul că depanarea codului pentru global.asa este destul de dificilă, deoarece este efectuată în condiții foarte specifice (de exemplu, când serverul pornește sau se oprește).
Utilizarea componentelor externe
Dacă sunt instalate componente suplimentare pe server, acestea pot fi utilizate din ASP. Obiectele standard (de exemplu, din bibliotecile ADO (Connection and Recordset) și Scripting (Dicționar, FileSystemObject)) sunt întotdeauna disponibile. Instalarea unei noi componente constă de obicei în copierea fișierului dll în directorul de pe server și înregistrarea lui folosind regsvr32.exe. [COM + utilizează propria procedură pentru instalarea obiectelor, dar acest lucru nu afectează utilizarea obiectelor.]
Puteți crea o instanță a unui obiect ca acesta:
Vă rugăm să renunțe mereu la toate referințele la obiecte atunci când nu mai sunt necesare. Teoretic, acest lucru ar trebui să se întâmple automat la sfârșitul procedurii / paginii, însă în colecția standard de gunoi există anumite "probleme".
În caz contrar, utilizarea componentei depinde de componenta în sine.
Lucrul cu bazele de date
Din ASP, puteți lucra cu ușurință și ușor cu orice bază de date. Acest lucru se realizează prin intermediul a două tehnologii intermediare: ODBC și ADO.
ODBC vă permite să organizați accesul la orice bază de date printr-o interfață unificată utilizând limba SQL. Specificitatea unui SGBD specific este luată în considerare cu ajutorul unor drivere speciale de baze de date. Aceste drivere există pentru toate tipurile de DBMS (în special, SQL Server, Oracle, Access, FoxPro). Suportul ODBC este furnizat la nivelul sistemului de operare Windows (NT). Configurație - prin Panoul de control / ODBC. Conceptul de bază este sursa de date sau sursa de date. O sursă de date este o colecție de informații despre o bază de date, inclusiv driverul, numele computerului și fișierul, parametrii. Pentru a utiliza baza de date, trebuie să creați o sursă de date pentru aceasta. Este important ca sursa de date să fie "sistem", spre deosebire de "utilizator". După aceea, trebuie doar să cunoașteți numele sursei de date. [ODBC se retrage în prezent înainte de debutul tehnologiei OLE DB. În practică însă, practic nu schimbă nimic. În locul numelui sursei de date, trebuie să utilizați Stringul de conexiune, care specifică numele driverului ODBC și toți parametrii săi.]
ADO este o colecție de obiecte disponibile de la ASP care permit accesul la sursa de date ODBC [sau OLE DB]. De fapt, sunt necesare doar două obiecte - conexiune. reprezentând conexiunea la baza de date și la Recordset. reprezentând setul de înregistrări primite de la sursă. Mai întâi trebuie să deschideți o conexiune, apoi să o legați la Recordset, folosind metodele Recordset, procesând datele. Iată un exemplu:
Dacă comanda SQL nu returnează date, setul de înregistrări nu este necesar, trebuie să utilizați metoda Conn.Execute (SQL_COMMAND).
Dacă doriți să apelați procedurile stocate ale serverului de bază de date cu parametri, trebuie să utilizați obiectul Command. care la rândul său conține obiecte Parametru.
Tehnici de programare, consiliere
VBScript este foarte ușor de programat. Deci, nu este nevoie să descriem variabilele și nu conține tipuri de date explicite. Toate variabilele aparțin aceluiași tip de variante. Datorită lipsei descrierilor, pot apărea erori foarte dificile. O tipografie poate costa o jumătate de zi de căutări.
Cu toate acestea, este posibil să se solicite în mod explicit descrierea variabilelor. Pentru aceasta, prima linie din fișierul ASP este de a scrie opțiunea Explicit. După aceasta, accesul la o variabilă care nu a fost declarată utilizând Dim. determină o eroare indicând numărul liniei.
Apropo, unde sunt descrierile lui Dim în procedură - nu contează. Ele pot sta fie înainte de utilizarea unei variabile, fie după, și chiar într-o buclă. Se pare că acestea sunt preprocesate. Setați explicit tipul de variabilă folosind Dim Var ca Tip. ca și în Visual Basic, tot nu poți.
Dacă aveți nevoie să emiteți o bucată mare de cod HTML, nu puteți utiliza funcția Response.Write. Dacă un asp-fișier întâlnește o bucată de text în afara parantezelor <% %>, acesta este tratat simplu ca HTML, care ar trebui să fie de ieșire. exemplu:
Pentru a urmări erorile, se utilizează un obiect special Err. Acesta este setat la o valoare diferită de zero dacă comanda anterioară a generat o eroare. Poate fi verificat cu funcția If și, astfel, să răspundă erorilor. Pentru a preveni avortul programului din cauza unei erori, trebuie mai întâi să activați comanda
Activați alte fișiere
Puteți lua codul repetat într-un fișier separat și puteți să vă conectați la alții, după cum este necesar, cu comanda include. Acest lucru este foarte util dacă doriți să redați codul repetat într-un fișier separat și să îl utilizați din nou și din nou în diferite pagini:
Important: toate elementele incluse în text sunt procesate înainte de executarea fișierului. Ie chiar dacă includerea este înăuntru dacă, atunci toate includ pe primul loc în toate ramurile, și numai atunci, în timpul execuției, se va decide care sucursală să se execute. Ie următorul cod nu permite includerea condiționată a fișierelor:
Dacă trebuie să întrebați ceva de la utilizator și să faceți ceva pe această bază, în cel mai simplu caz sunt create două fișiere: una cu un formular, al doilea cu un handler. Operatorul execută toate acțiunile. exemplu:
Procesarea formei recursive
O metodă convenabilă este de a colecta date și de a procesa același fișier. Pentru a face acest lucru, scrie asp, care are secțiuni diferite. O variabilă specială este responsabilă pentru selectarea partiției la pornire. exemplu:
Asigurați-vă că înainte ca comanda de redirecționare să fie executată, nimic nu a fost scris în răspuns (chiar și comentarii HTML).
Una dintre cele mai obișnuite sarcini este să trimiteți e-mailuri de pe o pagină Web. La prima vedere, poți scrie doar
Dar acest lucru conduce la faptul că atunci când trimiteți formularul, se face o încercare de a rula programul de poștă pe mașina client și de a crea un nou mesaj cu datele formularului. Dacă acest lucru nu funcționează (programul de e-mail nu este configurat, utilizatorul nu a trimis poștă etc.) - e-mailul și nu va fi trimis. O soluție mult mai fiabilă pentru server.
Această compilație este făcută destul de aleatoriu, de la site-uri pe care le-am întâlnit la un moment dat.