Ciclul de viață al servletului în Java: metode, arhitectură, comparație și configurare

Publicat: 2021-03-03

Cuprins

Introducere

Servlet-urile oferă o metodă care nu este doar bazată pe componente și independentă de platformă, dar este și foarte utilă pentru construirea de aplicații bazate pe web. Servleturile au acces la API-urile java și API-ul JDBC pentru a accesa bazele de date. În cazul Servlet-urilor Java, deși nu există restricții în ceea ce privește performanța programului CGI (Common Gateway Interface), există totuși unele dezavantaje.

Ce este Servlet?

Servlet este o tehnologie care este foarte benefică pentru crearea de pagini web dinamice. Acționează ca un strat intermediar între browserul web și clienții sau serverele HTTP. Cu ajutorul servlet-urilor, la început, colectăm intrările de la utilizatori și apoi creăm pagini web în mod dinamic. Servlet extinde capacitățile serverelor și aplicațiilor gazdă. Servlet-urile extind capacitățile serverelor și răspund, de asemenea, la orice tip de solicitări pentru utilizatori.

Sursă

CGI vs Servlet-uri

Înainte de servlet, CGI era folosit pe scară largă. CGI este o modalitate de a transmite cererea primită de la utilizator către un program de aplicație. Deși CGI este o modalitate pentru un server web, primește și răspunsul de la browser (client). Când utilizatorul solicită o pagină web browserului, serverul o trimite înapoi.

Când un client dorește să completeze un formular pe o pagină web și să încerce să-l trimită din nou, acesta este procesat de programul de aplicare. Serverul transmite informațiile unui mic program de aplicație web. Acest program prelucrează mai întâi datele și apoi le trimite înapoi printr-un mesaj de confirmare.

Metodele ciclului de viață al servletului pe scurt

Există în principal trei metode de ciclu de viață ale unui servlet, pe care le putem descrie ca:

  1. init()
  2. serviciu()
  3. distruge()

Sursă

Arhitectura Servlet

  • În primul rând, citește datele trimise de clienți. Apoi, inserează un formular HTML într-o pagină web și apoi trimite cererile trimise de clienți.
  • După aceea, servletul prelucrează datele și se conectează la un sistem de management al bazei de date, executând RMI prin invocarea serviciilor web.
  • După procesare, documentele pot fi trimise în formate text și gif.
  • În cele din urmă, trimite HTTP către client.

Sursă

Acum vom discuta aceste metode în detaliu

1. init()

Metoda init() este apelată o singură dată după ce instanța servlet este creată. La început, inițializează servletul. Servlet.init() indică faptul că instanța servlet-ului a fost creată cu succes.

Sintaxa metodei init() este dată astfel:

public void init(ServletConfig config) aruncă ServletException {

//codul de inițializare

}

2. serviciu()

Ori de câte ori servletul primește cererea, containerul web apelează metoda service().

  • Pentru a colecta datele solicitate b
  • și clientul, este utilizat obiectul de solicitare a serviciului.
  • Pentru a genera conținutul de ieșire, este utilizat obiectul ServletResponse.

Metoda semnăturii serviciului() este dată astfel:

serviciu public nul (solicitare ServletRequest, răspuns ServletREsponse)

aruncă ServletEXception , IOException {

//cerere cod de gestionare

}

Metoda service() folosește doGet, doPost, doPut, doDelete și multe alte metode.

3. distruge()

Utilizatorul apelează metoda destroy() cel puțin o dată în ciclul de viață al unui servlet . Este folosit pentru a termina conexiunea la baza de date, pentru a elibera memoria și resursele alocate. De asemenea, ajută în scopuri de curățare, iar colectarea gunoiului este asociată cu aceasta.

Semnătura metodei destroy() este

public void distruge(){

// Cod de finalizare

}

Citește și: Servlet vs JSP

Configurarea mediului a unui Servlet

Pentru a crea o aplicație Servlet, la început, trebuie să urmăm câțiva pași, cum ar fi instalarea Tomcat Server, care este descris mai jos -

1. Crearea unei structuri de director

Sursă

Mai întâi, trebuie să creăm structura de directoare de mai sus în interiorul unui director numit Apache – director Tomcat\webapps. Trebuie să păstrăm toate HTML, fișierele statice, imaginile sub aplicația web creând un folder. Servlet-urile trebuie păstrate în folderul de clasă. În cele din urmă, fișierul web.xml ar trebui să fie în folderul WEB-INF.

2. Crearea unui Servlet

Există trei moduri diferite prin care putem crea un servlet.

  1. Prin implementarea interfeței Servlet.
  2. Prin extinderea clasei GenericServlet.
  3. Este necesară extinderea clasei de servlet HTTP.

Un servlet poate fi format în principal dacă putem extinde clasa abstractă httpServlet.

3. Compilarea Servlet-ului

Pentru compilarea servlet-ului, este necesar un fișier JAR -

  1. Prin setarea classpath.
  2. Prin lipirea jar în folderul JRE/lib/ext.

4. Creați descriptor de implementare

DD poate fi definit ca un fișier XML care este utilizat de serverele bazate pe web, astfel încât

pot rula servlet-uri cu ușurință. DD este folosit în mai multe scopuri importante.

  1. Prin maparea URL-ului la clasa Servlet.
  2. Prin inițializarea parametrilor.
  3. Prin definirea paginii Eroare.
  4. După rolurile de securitate.
  5. Prin declararea bibliotecilor de etichete.

5. Porniți serverul

Pentru a porni serverul Apache Tomcat, trebuie să facem dublu clic pe fișierul startup.bat din directorul apache-tomcat/bin și va începe să funcționeze.

6. Pornirea serverului Tomcat pentru prima dată

Pentru a porni Tomcat Server pentru prima dată, trebuie să setăm JAVA_HOME în variabila Environment. Următorii pași sunt menționați mai jos. Faceți clic dreapta pe Computerul meu și trebuie să mergem la Proprietăți .

Sursă

  1. Apoi, vom merge la fila Avansat și trebuie să facem clic pe butonul Variabile de mediu .

Sursă

  1. Prin urmare, vom face clic pe butonul Nou și vom introduce JAVA_HOME în câmpul text Nume variabilă și calea JDK în câmpul text Valoare variabilă. Apoi, trebuie să-l salvăm făcând clic pe OK.

Sursă

7. Rularea aplicației Servlet

Când rulăm butonul servlet, va arăta ca -

După deschiderea browserului, trebuie să introducem http:localhost:8080/First/hello

Checkout: Salariu de dezvoltator Java în India

Interfață de solicitare servlet

ServletRequest își propune să furnizeze clientului informații autentice despre un servlet care

include tipul de conținut, lungimea, valorile parametrilor și multe altele.

Metode

1. getAttribute(Șir)

Returnează valoarea atributelor așa cum este cerută, dacă atributele nu există

apoi returnează NULL.

2. getAttributeNames()

Returnează numele atributelor prezente care sunt solicitate de clienți.

3. getCharacterEncoding()

Returnează un set de caractere.

4. getContentLength()

Returnează dimensiunea solicitată a entității de date .

5. getContentType()

La început, solicită identitatea obiectului. Dacă nu este găsit, returnează o valoare NULL.

6. getInputStream()

Returnează un flux binar de date primite de client și apoi returnează șirurile.

7. getParameter(String)

Returnează un șir de parametri.

8. getParameterNames()

Returnează numele parametrilor.

9. getParameterValues(Șir)

Returnează valorile parametrilor. Ele există întotdeauna sub formă de șir.

10. getProtocol()

Returnează protocolul și versiunea sub forma <protocol>/<versiune majoră>.<versiune minoră>.

11. getReader()

Acesta returnează un cititor tamponat pentru a citi textul din corpul solicitării.

12. getRealPath(String)

evită calea virtuală și întoarce calea reală.

13. getRemoteAddr()

Acesta returnează adresa IP.

14. getRemoteHost()

Returnează numele de gazdă complet structurat al agentului.

15. getScheme()

Returnează adresa URL utilizată în cerere.

16. getServerName()

Returnează numele de gazdă al serverului.

17. getServerPort()

Returnează numărul portului.

18. setAttribute(String, Object)

Această metodă acumulează un atribut pentru orice fel de solicitări.

Răspuns servlet

ServletResponse invocă un obiect, iar răspunsul diferiților utilizatori este înregistrat. Containerul web este responsabil pentru toate aceste activități. Pasul pentru a crea acest lucru este foarte important. Pasul este crearea unui obiect.

Acum haideți să vorbim mai jos despre ServletConfig și ServletContext în detaliu.

ServletConfig

1. Containerul web creează obiectul de configurare pe baza parametrilor de inițializare.

2. Trebuie să fie prezent un ServletConfig per Servlet.

Metode

1. Egal (Obiect)

verifică dacă obiectul curent are valoare egală cu obiectul dat.

2. GetHashCode()

Funcționează ca funcție hash implicită.

3. GetType()

Returnează tipul instanței curente.

4. MemberwiseClone()

Dacă invocăm acest obiect, poate fi creată o copie superficială. Se referă implicit la obiectul prezent .

5. ToString()

Returnează un șir, care reprezintă obiectul curent.

ServletContext

Să discutăm mai jos despre ServletContext:

  1. Este foarte necesar să facem obiectul de referință accesibil fiecărui Servlet al aplicației web.
  2. Obiectul de referință este de fapt implementarea în timp de execuție a acestora.

Cele două tipuri de servlet-uri pot fi definite astfel:

1. Servlet-uri generice

Ne referim la servleturile generice ca fiind independente de protocoale și, de asemenea, este necesar să le invocăm prin suprascriere. Putem invoca servlet-uri generice în trei moduri -

  • Fișier HTML

Putem crea un fișier HTML foarte simplu, care poate arăta ca WebContent/index.html.

  • Fișierul clasei Java

Un servlet generic poate fi creat prin extinderea clasei GenericServlet. Dacă putem crea un simplu fișier de clasă nouă, atunci îl putem redenumi ca generic. Calea fișierului arată astfel:/javaResouces/src/default package/generic.java.

  • Fișier XML

Putem găsi acest fișier în calea WebContent/WEB-INF/web.xml. Putem mapa servlet-ul cu o anumită adresă URL.

2. Servlet HTTP

Acest tip de servlet-uri nu este altceva decât o extensie a claselor Servlet. Deși depinde de HTTP, stabilește câteva reguli care ajută browserul web și serverele să comunice, iar servletul HTTP poate, de asemenea, să suprascrie metodele doGet() sau doPost(). De asemenea, poate suprascrie ambele metode.

Avantajele Servlet-urilor

Acum să vedem câteva avantaje ale servlet-urilor -

  1. Performanța este remarcabilă.
  2. Servlet-urile se pot executa în spațiul de adrese al unui server. Ca rezultat, putem spune că nu este necesar să se creeze un spațiu de adrese separat pentru a gestiona cererea clientului.
  3. Sunt independente de platformă și sunt bazate în principal pe componente.
  4. Servleturile sunt securizate deoarece managerul de securitate stabilește unele restricții pentru a proteja resursele și datele.
  5. În timp ce lucrează, utilizatorii nu trebuie să-și facă griji cu privire la eliberarea memoriei ca tehnică de alocare a gunoiului.
  6. Servlet-urile oferă funcționalitate completă, deoarece toate bibliotecile sunt disponibile. Poate comunica cu ușurință cu aplicații și alte mecanisme.

Sursă

Dezavantajele Servlet-urilor

Limitările servlet-urilor sunt discutate ca:

  1. În JVM poate fi încărcat un singur servlet la un moment dat. Deci, putem spune că contează în ceea ce privește numărul de solicitări.
  2. Când există o cerere, poate exista doar un thread. Niciun proces nu ar trebui să fie prezent acolo.
  3. Proiectarea unui servlet este costisitoare și, uneori, este destul de problematică.
  4. Avem nevoie de alte setări în browser, cum ar fi JRE (Java Runtime Environment) pe server pentru a rula servlet-uri.

Citiți și: Idei și subiecte de proiecte Java

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

În această eră modernă a lumii digitale, tehnologia și internetul au devenit forța motrice a tuturor. Internetul este neliniştit. În fiecare secundă, este ocupat să transferați cantități mari de date.

Dar din cauza transferului de date în vrac, internetul încetinește, deoarece avem nevoie și de viteză. Deci, site-urile dinamice sunt create de dezvoltatorii de software. Aceste site-uri sunt schimbate și actualizate în fiecare moment. Pentru a afla mai multe despre Servlet-uri în Java și dezvoltare, consultați programul Executive PG de la upGrad în Dezvoltare software full-stack și începeți călătoria.

Motivul principal al acestui articol este de a oferi cititorilor un concept de bază de servlet-uri, astfel încât să poată obține o idee fundamentală despre servlet-uri.

Aterizează la locul de muncă visat

Aplicați acum pentru Programul Executive PG în Full Stack Development