Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Internet


Index » educatie » » informatica » Internet
» Programarea Servletilor


Programarea Servletilor


Programarea Servletilor - Introducere

Servletii reprezinta module care extind serverele orientate cerere/raspuns cum sunt serverele de Web care folosesc Java. Ele reprezinta pentru un server ceea ce un applet reprezinta pentru un browser. Spre deosebire de acestea insa, servletii nu au o interfata grafica.

Servletii pot fi inglobati in multe tipuri de servere, deoarece API-ul servletilor care este folosit pentru scrierea lor nu specifica nimic despre protocol sau mediu. Insa ei s-au dezvoltat pe scara larga in serverele de HTTP.

Servletii reprezinta un inlocuitor pentru scripturile CGI. Ofera un mijloc de a genera documente dinamice care sunt deopotriva mai rapide si mai usor de dezvoltat. Sunt dezvoltati folosind JAVA Servlet API, o extensie JAVA standard.



Alte avantaje ale servletilor sunt

Ofera posibilitatea de colaborare: un servlet poate raspunde la mai multe cereri concurent, si pot sincroniza cererile. Astfel servletii pot suporta sisteme de tipul conferinta on-line.

Pot redirecta cererile catre alte servere sau alti servleti. Astfel ei pot fi folositi pentru balansarea incarcarii intre mai multe servere care oglindesc acelasi continut, pentru partitionarea unui singur serviciu logic pe mai multe servere in functie de tipul cererii si organizare.

Completari

Pagina 2

Executia are loc pe server. Serverul de Web transmite cererea pentru un anumit continut dinamic catre serverul de Aplicatie. Acesta localizeaza servletul respectiv caruia ii transmite parametrii cererii. Servletul prelucreaza cererea si intoarce raspunsul catre serverul de Web sub forma unui raspuns HTTP. In final o pagina HTML este prezentata clientului.

Pagina 6

Portabilitatea vine in primul rand din JAVA care a fost conceput ca un limbaj independent de platforma.

Pagina 7

In afara de securitatea implementata prin topologia de aplicatie (servletii ruland pe server, se afla de obicei in spatele unui firewall), exista si securitatea oferita de JVM (Java Virtual Machine).

Modelul de securitate JAVA:

O prima bariera este si modul in care este construit limbajul JAVA. Deoarece nu exista pointeri, nu poate fi facut de exemplu un cast de la un intreg la o referinta de obiect, astfel ca este eliminata una din gaurile traditionale de securitate gasite la C, C++.

Pagina 8

Un alt avantaj care tine de performanta este faptul ca spre deosebire de CGI, in care pentru fiecare cerere se lanseaza o instanta a programului, un servlet este incarcat in memorie o singura data (de exemplu la prima cerere), dupa care ramane incarcat, deci nu se mai pierde timp la fiecare cerere ulterioara. De asemenea pentru a face fata la cereri concurente, la servleti se lanseaza mai multe fire de executie, iar un fir de executie se stie ocupa mai putina memorie decat un proces (care este lansat in cazul CGI).

Pagina 10

API-ul pentru servleti a fost conceput nu numai pentru protocolul HTTP, de aceea interfata javax.servlet.http.HttpServlet este una specifica, oferind capabilitati in plus fata de interfetele de baza pentru un servlet cum ar fi: mentinerea sesiunii intre client si server pe timpul a mai multor conexiuni, sau mecanismul de cookie.

Pagina 12

Ciclul de viata al unui servlet

La fiecare cerere se apeleaya metoda service(), deci se porneste un fir de executie pentru a fi serviti mai multi clienti odata. Daca se face acces o resursa partajata atunci, ori trebuie sincronizat accesul la resursa, ori servletul trebuie fortat sa serveasca doar un singur client la un moment dat, in al doilea caz servletul trebuie sa implementeze interfata javax.servlet.SingleThreadModel.

Pagina 13

In metoda service() se face deosebirea intre tipul de invocare a servletului, apelandu-se metoda corespunzatoare (doPost(), doGet(), doOption(), doDelete(), doTrack()). Daca servletul este invocat printr-o metoda care nu a fost rescrisa se intoarce automat eroarea BAD_REQUEST (400).

Pagina 16

  • getAuthType() - returneaza numele schemei de autentificare pe care o foloseste serverul;
  • getCookies() - returneaza un sir de obiecte Cookie pe care le-a trimis browserul;
  • getMethod() - returneaza metoda HTTP prin care a fost facuta cererea;
  • getPathInfo() - returneaza informatii suplimentare asociate URL-ului pe care l-a trimis clientul;
  • getQueryString() - intoarce sirul de caractere care se afla dupa cale in URL-ul cererii;
  • getRemoteUser() - numele clientului care a facut cererea, daca acesta a folosit autentificarea HTTP;
  • getRequestedSessionId() - ID-ul sesiunii specificat de client;
  • getServletPath() - intoarce partea din URL-ul cererii care se refera la Servlet;
  • getSession() - sesiunea curenta asociata cu cererea, sau daca nu exista creeaza una;


Pagina 20

addCookie(Cookie cookie) - adauga un cookie in raspuns;

containsHeader(java.lang.String name) - verifica daca header-ul mesajului contine un anumit camp;

encodeRedirectURL(java.lang.String url) - encodeaza adresa specificata, care va fi folosita in metoda sendRedirect, lasand-o neschimbata daca encodarea nu este necesara;

encodeURL(java.lang.String url) - encodeaza adresa specificata incluzand ID-ul sesiunii in ea;

sendError(int sc) - trimite un raspuns de eroare clientului;

setHeader(java.lang.String name, java.lang.String value) - adauga un camp in header-ul raspunsului cu o anumita valoare;

setIntHeader(java.lang.String name, java.lang.String value) - adauga un camp in header-ul raspunsului cu o anumita valoare intreaga;

setStatus (int sc)- adauga codul starii pentru acest raspuns;

Pagina 21

Se poate trimite toata pagina odata, folosind un StringBuffer la care se aduga cod HTML, iar dupa constructia intregii pagini se foloseste obiectul PrintWriter pentru trimiterea paginii.

Pagina 23

Mecanismul de denumire a servletilor se face in contextul unei Aplicatii Web. Deoarece acest mecanism ajuta la preincarcare, este un mecanism prin care se sporeste performanta (e adevarat decat la prima invocare a servletului).

Visual Age for Java - Introducere

Visual Age for Java este un mediu vizual integrat de dezvoltare a aplicatiilor Java deosebit de puternic, oferind instrumente pentru dezvoltare de servleti, Java Beans si Enterprise Java Beans. Este oferit in mai multe versiuni (standard, advanced si enterprise) in functie de facilitati. De exemplu suportul pentru EJB este oferit numai in versiunea Enterprise, iar suportul pentru Java Beans este oferit si in versiunea Advanced.



Completari

Pagina 5

Nu exista notiunea de fisier, codul este tinut intr-o structura proprie. Compilarea incrementala este compilarea pe masura ce codul este scris, nu se face compilare explicita (o comanda). Se poate forta oarecum compilarea prin salvarea la un moment dat a clasei, metodei, etc. respective in depozit. Dezvoltarea in echipa este posibila deoarece depozitul in care se afla proiectele, pachetele, clasele si metodele poate fi partajat intre mai multi utilizatori.

Pagina 6

Erorile sunt imediat semnalate, daca o metoda are erori ea este marcata in ierarhie.

Pagina 7

In fereastra de sus sunt afisate entitatile in ierarhie (proiect->pachet->clasa->metoda) iar in fereastra de jos este afisata o anumita entitate selectata.

Pagina 8

Scrapbook - este o facilitate deosebit de practica, se pot testa mici bucati de cod fara a fi necesara crearea unei clase, importarea diferitelor pachete, definirea explicita a variabilelor.

Pagina 10

Depozitul (repository) este partajat, iar spatiul de lucru (workspace este local). Este inidicat sa se pastreze copii ale acestor fisiere, deoarece odata modificate nu mai pot fi refacute.

Pagina 11

Deoarece modificarile sunt permanente se folosesc versiuni ale proiectelor pentru a putea tine evidenta tuturor schimbarilor. Versiunile sunt stocate in depozit.

Pagina 12

Deoarece VAJ nu lucreaza cu cod salvat in fisiere, este nevoie pentru a porta o aplicatie de posibilitatea de a exporta/impota acest cod in/din fisiere. Se poate inlocui folosirea versiunilor cu importul/exportul din/in fisiere, dar nu este practic deoarece VAJ ofera mecanisme bine puse la punct de lucru cu versiuni.

Pagina 13

Mecanismele pentru utilizarea versiunilor se afla in meniul de context pentru un anumit proiect.

Mediul de Test WebSphere pentru VisualAge for Java

O alta facilitate deosebita a VAJ este mediul de test WebSphere. Dupa cum se stie pentru a rula un servlet, un Java Bean sau un EJB, sunt necesare mecanisme specifice care se gasesc de obicei incorporate intr-un server de Web sau intr-un server de aplicatii. Chiar daca VAJ este un intrument pentru dezvoltare de aplicatii si nu un mediu pentru rularea acestora el totusi include un server de Web si un server de aplicatii pentru ca programatorii sa poata testa si corecta aplicatiile lor in acelasi context fara a mai apela la software suplimentar. Sunt incorporate mecanisme din IBM WebSphere Application Server Advanced Edition.

Completari

Pagina 5

Facilitatile de care am amintit anterior, trebuie precizate in mod explicit, ele nefiind accesibile dupa o instalare standard. Facilitatile care trebuie adaugate cu scopul de a creea un mediu de test sunt: WebSphere Test Envrioment, JSP si EJB Development Feature din fereastra de Features.

Pagina 6

Pentru pornirea mediului de test se ofera o clasa Java SERunner. Aceasta clasa este un servlet-engine, de aceea la pornirea acesteia trebuie ca ClassLoader-ul sau sa gaseasca de servletii care vor fi rulati. Trebuie deci specificata calea catre proiectul care contine servletii de testat.

Pagina 7

Fereastra in care se seteaza calea pentru clase folosite de SERunner, sunt afisate toate proiectele din spatiul de lucru incarcat in contextul VAJ, si se aleg cele corespunzatoare.

Pagina 8

Clasa com.ibm.servlet.SERunner se gaseste intr-o ierarhie destul de stufoasa de proiecte, pachete, etc. Dupa ce este gasita prima data este indicat sa fie insemnata (optiunea Bookmark), fiind apoi acesibila printr-o singura apasare de buton.

Pagina 10

IBM VAJ ofera instrumente vizuale pentru modificarea fisierelor de proprietati pentru mediul de test, dar este bine cateodata sa fie modificate manual. Fisierele au un format XML, si inainte de a face o modificare este bine sa fie facuta familiarizarea cu tag-urile.

Pagina 11

Deoarece serverul de web si serverul de aplicatie sunt integrate in VAJ, o facilitate oferita bineinteles este folosirea debugger-ului. Deci se pot modifica din mers servletii fara repornirea serverelor, lucru care nu este posibil intr-un servlet-engine obisnuit (cum este JSWDK).







Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate