Pagina documente » Informatica, Matematica » Generarea dinamica a paginilor Web folosind tehnologia Servlet

Cuprins

lucrare-licenta-generarea-dinamica-a-paginilor-web-folosind-tehnologia-servlet
Aceasta lucrare poate fi descarcata doar daca ai statut PREMIUM si are scop consultativ. Pentru a descarca aceasta lucrare trebuie sa fii utilizator inregistrat.
lucrare-licenta-generarea-dinamica-a-paginilor-web-folosind-tehnologia-servlet


Extras din document

Cuprins
Introducere 1
CGI (Common Gateway Interface) 2
Servlet-uri 6
Servlet-uri si baze de date. JDBC - ODBC 16
Prezentarea aplicatiei 25
Anexe 33
Anexa1. Arhitectura client-server 33
Anexa 2.Formulare HTML 34
Anexa 3. Script CGI - Perl (pentru accesarea si actualizarea unei baze de date) 36
Bibliografie 41
Cuprins 42

Alte date

?

Introducere

Punctul de pornire al acestei lucrari este urmatorul: am dorit sa realizez o pagina Web pentru o institutie (de ce nu scoala unde imi desfasor activitatea de cadru didactic). Datorita faptului ca multi fosti elevi ai scolii revin dupa un timp si doresc anumite adeverinte sau extrase din dosarul personal pentru a atesta calitatea lor de absolventi ai unei forme de invatamint, m-am gindit ca ar fi utila si practica ,,imbogatirea” paginii Web cu o facilitate de cautare putin mai avansata. Astfel din pagina Web clientul poate folosi o aplicatie care permite prin completarea unui formular (totala sau partiala) obtinerea fisei personale sau a dosarului unui fost elev, sau profesor al scolii. Mai precis, am dorit ca raspunsul catre client sa fie sub forma unui document HTML virtual, deci o pagina Web care sa contina date utile extrase dintr-o baza de date (arhiva scolii): numele si prenumele complet, data nasterii, domiciliu, grupa sanguina, date despre parinti, anul absolvirii, mediile de absolvire, fotografie, caracterizare psihipedagogica, coeficient IQ, etc. O parte dintre aceste date vor fi confidentiale – nu vor apare in documentul raspuns, ele putind fi accesate doar de web designer, directorul scolii, sau eventual de catre secretara si numai dupa introducerea unei parole. De asemenea tot aceste persoane pot avea acces la baza de date electronica pe care o pot actualiza la nevoie.

Înainte de a prezenta insa produsul final (aplicatia prezentata mai sus) am considerat util a prezenta drumul pina la alegerea solutiei optime (cel putin din punctul meu de vedere). Lucrarea prezinta asadar o parte (atit cit a studiat autorul) din tehnologiile si standardele Web actuale, precum si unele consideratii asupra gradului de eficienta si fiabilitate a acestora.

Lucrarea se adreseaza celor care detin cunostinte elementare de programare C++, Java, HTML, si operare Unix, dar nu numai. Cititorii neavizati (bubulici) pot dobindi aceste cunostinte consultind bibliografia propusa.

Multumesc domnului profesor coordonator Corneliu Sabin Buraga, domnului profesor Stefan Andrei, dar nu in ultimul rind colegilor care m-au ajutat cu sfaturi, aprecieri critice, sau exemple menite sa faciliteze lectura si insusirea cunostintelor expuse in lucrare (Paul Cezar Coca, Ionut Bucur si multi altii cu care am pastrat legatura prin chat sau e-mail).

CGI (Common Gateway Interface)

Este unul dintre primele standarde de interfata pentru interactiunea clientilor Web cu serverele Web si se afla in prezent la versiunea 1.1. Un program CGI, numit in mod uzual script, se executa pe serverul Web, fie in mod explicit [1 Apelat din cadrul paginii printr-o directiva speciala], fie la preluarea informatiilor aflate in cadrul cimpurilor unui formular interactiv sau coordonatele unei zone senzitive (image map). Acest standard ofera interactivitate paginilor Web, documentele HTML putind astfel sa-si modifice in mod dinamic continutul si sa permita prelucrari sofisticate de date. Programarea CGI, aparuta la inceputul anului 1995, a transformat Web-ul dintr-un simplu sistem de consultare si aducere de fisiere intr-o platforma in care clientii pot instala aplicatii Web de mare utilitate, oferind totodata posibilitatea acestora de a interactiona cu site-urile Web, sau de a transfera date, de a consulta baze de date, de a construi contoare de acces a documentelor, etc. În concluzie inainte de introducerea standardului CGI, Web-ul era, de fapt, folosit numai pentru distribuirea de documente statice: text si imagine. Odata cu aparitia acestuia, serverele Web au putut fi conectate pentru a procesa informatia in mod dinamic. Tocmai de aceea CGI este un standard pentru intefetele aplicatiilor externe ce extind functionalitatea serverelor Web cu ajutorul caruia serverul Web poate apela un program, ii poate transfera acestuia datele introduse de utilizator (eventual printr-un formular dintr-o pagina Web), poate prelucra rezultatele pentru a le trimite inapoi utilizatorului.

Programele CGI pot fi scrise in multe limbaje, fiind interpretate (in cazul Perl, scripturi shell

-e.g. bash) sau compilate (C, C++, Delphi, etc).

Cele mai multe scripturi CGI sunt concepute pentru a procesa datele introdusele in formularele dintr-o pagina Web (vezi anexa 2).

Sa presupunem umatorul exemplu in care utilizatorul introduce prin intermediul unui formular doua numere intregi , iar programul CGI va genera o pagina Web continind suma lor. Formularul HTML va fi :



Va rugam introduceti doua numere:










”Afla





De exemplu introducind numerele 4 si 7 in cimpurile corespunzatoare si actionind butonul cu eticheta ,,Afla suma”, vom primi o pagina Web – document HTML – care va afisa ,,Suma dintre 7 si 4 este 11”.

Pentru o mai buna intelegere descriem mai jos mecanismul prin care functioneaza interfata CGI.

Presupunind ca in cele doua cimpuri ale formularului (purtind numele nr1 si respectiv nr2) am introdus valorile 7 si respectiv 4 si am apasat butonul submit, navigatorul – browserul - va trimite, prin intermediul protocolului HTTP o cerere catre serverul Web la adresa data de URL-ul http://www.sc_baltati.ro (adresa este preluata din valoarea atributului
). Daca in loc de o adresa absoluta se specifica o cale relativa ar fi insemnat faptul ca se foloseste serverul pe care este gazduita pagina Web continind formularul. În general cererile clientilor sunt insotite de date care trebuiesc prelucrate (este si cazul exemplului nostru). În cazul cind aceste date sunt trimise prin intermediul formularelor exista doua metode prin care ele sunt trecute serverului: POST si GET (vom detalia pe parcurs). Atunci cind datele sunt preluate de server prin metoda GET, in momentul trimiterii cererii HTTP, navigatorul construieste un URL a vind ca sufix informatii despre datele introduse in cimpurile formularului, folosind o codificare speciala; in cazul nostru http://www.sc_baltati.ro/cgi-bin/suma.cgi?nr1=7&nr2=4. Pentru fiecare cimp al formularului se va genera o pereche nume_cimp=valoare delimitata de caracterul ,,&”, iar caracterele speciale (de exemplu slash-ul sau apostroful ) vor fi inlocuite in codul lor numeric, in hexazecimal, precedat de caracterul ,,%”. Spatiile vor fi substituite cu semnul ,,+”. Serverul spre care a fost trimisa cererea va procesa datele receptionate conform unor reguli proprii. Tipic configuratia serverului defineste unde sunt stocate in cadrul sistemului de fisiere directoarele si fisierele CGI. De obicei in cazul unui daemon HTTP – adica server Web – fisierele sale sint stocate in directotul /home/httpd (in cazul unei platforme Unix/Linux). Aici, alaturi de directotul html, unde se memoreaza documentele HTML ale unui site Web, se afla si directorul cgi-bin, unde ar trebui sa fie stocate toate fisierele (scripturile) CGI apelate din cadrul paginilor Web. Asadar http://www.sc_baltati.ro/cgi-bin/suma.cgi va insemna pentru serverul Web de la adresa http://www.infoiasi.ro urmatoarea actiune: ,,invoca programul suma.cgi aflat la adresa /home/httpd/cgi-bin”. Astfel in loc sa trimita catre navigatorul Web care a initiat cererea un document HTML sau un fisier de alt tip un server va invoca scriptul CGI specificat in cadrul URL-ului (in acest caz suma.cgi) si-i va pasa acestuia datele furnizate de sufix dupa semnul ? (adica sirul nr1=7&nr2=4). Pentru formularele care utilizeaza metoda GET (metoda implicita) specificatiile CGI indica faptul ca datele furnizate scriptului vor fi preluate (disponibile) intr-o variabila de mediu denumita QUIERY_STRING. Scriptul CGI in mod uzual va furniza datele de iesire care vor fi trimise navigatorului Web de catre server, utilizindu-se iesirea standard stdout.

Sa vedem acum un exemplu de script CGI (scris folosind limbajul C++) care va procesa datele din formularul nostru prin metoda GET.

#include

#include

/*setam tipul MIME pentru antetul trimis de programul CGI serverului*/

#define CONTENT “Content-type: text/htmln”

int main(void)

{

char *data;