logo

Introducere în Servlet-urile Java

Astăzi, toți suntem conștienți de necesitatea de a crea pagini web dinamice adică cei care pot modifica conținutul site-ului în funcție de timp sau pot genera conținutul în funcție de solicitarea primită de la client. Dacă vă place să codificați în Java, atunci veți fi bucuroși să aflați că, folosind Java, există și o modalitate de a genera pagini web dinamice și așa este Servlet Java . Dar înainte de a merge mai departe cu subiectul nostru, să înțelegem mai întâi necesitatea extensiilor pe server.

Ce este Java Servlet?

Servlet-urile Java sunt programele Java care rulează pe serverul web sau pe serverul de aplicații activat pentru Java. Acestea sunt folosite pentru a gestiona cererea obținută de la serverul web, pentru a procesa cererea, a produce răspunsul și apoi a trimite un răspuns înapoi către serverul web.

Proprietățile Java Servlet

Proprietățile Servlet-urilor sunt următoarele:



  • Servlet-urile funcționează pe partea serverului.
  • Servlet-urile sunt capabile să gestioneze cereri complexe obținute de la serverul web.

Arhitectura Servlet-urilor Java

Arhitectura Servletului poate fi descrisă din imaginea însăși, după cum este prezentat mai jos, după cum urmează:

Arhitectura_Servlets

Executarea Servlet-urilor Java

Executarea Servlet-urilor practic implică șase pași de bază:

  1. Clienții trimit cererea către serverul web.
  2. Serverul web primește cererea.
  3. Serverul Web transmite cererea servlet-ului corespunzător.
  4. Servlet-ul procesează cererea și generează răspunsul sub formă de ieșire.
  5. Servlet-ul trimite răspunsul înapoi la serverul web.
  6. Serverul Web trimite răspunsul înapoi clientului, iar browserul clientului îl afișează pe ecran.

Acum haideți să discutăm despre punctul excentric de ce avem nevoie de extensii pentru servere?

Nevoia de extensii pe server

The Extensii pe partea serverului nu sunt altceva decât tehnologiile care sunt folosite pentru a crea pagini Web dinamice. De fapt, pentru a oferi facilitate de pagini Web dinamice, paginile Web au nevoie de un container sau server Web. Pentru a îndeplini această cerință, furnizorii independenți de servere web oferă unele soluții proprietare sub formă de API-uri ( Interfața de programare a aplicației).
Aceste API-uri ne permit să construim programe care pot rula cu un server Web. În acest caz, Servlet Java este, de asemenea, unul dintre API-urile componente ale Java Platform Enterprise Edition (cunoscută în prezent ca – „Jakarta EE”) care stabilește standarde pentru crearea de aplicații Web dinamice în Java.

Înainte de a învăța despre ceva, este important să cunoaștem nevoia pentru acel ceva, nu este ca aceasta să fie singura tehnologie disponibilă pentru crearea de pagini web dinamice. Tehnologia Servlet este similară cu alte extensii de server Web, cum ar fi Interfață gateway comună ( CGI) scripturi și Preprocesor de hipertext (PHP). Cu toate acestea, Servlet-urile Java sunt mai acceptabile, deoarece rezolvă limitările CGI cum ar fi performanța scăzută și gradul scăzut de scalabilitate.

Ce este CGI (Common Gateway Interface)?

CGI este de fapt o aplicație externă care este scrisă folosind oricare dintre limbajele de programare precum C sau C++ iar acesta este responsabil pentru procesarea cererilor clienților și generarea de conținut dinamic.

tutorial c#

În aplicația CGI, atunci când un client face o solicitare de a accesa pagini Web dinamice, serverul Web efectuează următoarele operațiuni:

  • Mai întâi localizează pagina web solicitată adică aplicația CGI necesară folosind adresa URL.
  • Apoi creează un nou proces pentru a răspunde cererii clientului.
  • Invocă aplicația CGI în cadrul procesului și transmite informațiile de solicitare către aplicație.
  • Colectează răspunsul din aplicația CGI.
  • Distruge procesul, pregătește răspunsul HTTP și îl trimite clientului.

CGI

Deci, în CGI serverul trebuie să creeze și să distrugă procesul pentru fiecare cerere. Este ușor de înțeles că această abordare este aplicabilă pentru gestionarea puținilor clienți, dar pe măsură ce numărul clienților crește, volumul de lucru pe server crește și astfel timpul necesar procesării cererilor crește.

Diferența dintre Servlet-urile Java și CGI

Servlet CGI (Common Gateway Interface)
Servleturile sunt portabile și eficiente. CGI nu este portabil.
În Servlet-uri, partajarea datelor este posibilă. În CGI, partajarea datelor nu este posibilă.
Servlet-urile pot comunica direct cu serverul web. CGI nu poate comunica direct cu serverul web.
Servleturile sunt mai puțin costisitoare decât CGI. CGI este mai scump decât Servlet-urile.
Servlet-urile pot gestiona cookie-urile. CGI nu poate gestiona cookie-urile.

Servlet-uri API

Servlet-urile sunt construite din două pachete:

  • javax.servlet (de bază)
  • javax.servlet.http(Avansat)

Diverse clase și interfețe prezente în aceste pachete sunt:

lista java
Componentă Tip Pachet
Servlet Interfață javax.servlet.*
ServletRequest Interfață javax.servlet.*
ServletResponse Interfață javax.servlet.*
GenericServlet Clasă javax.servlet.*
HttpServlet Clasă javax.servlet.http.*
HttpServletRequest Interfață javax.servlet.http.*
HttpServletResponse Interfață javax.servlet.http.*
Filtru Interfață javax.servlet.*
ServletConfig Interfață javax.servlet.*

Avantajele unui Servlet Java

  • Servlet este Mai repede decât CGI, deoarece nu implică crearea unui nou proces pentru fiecare nouă solicitare primită.
  • Servleturile, așa cum sunt scrise în Java, sunt independente de platformă.
  • Elimină suprasarcina de creare a unui proces nou pentru fiecare cerere, deoarece Servlet nu rulează într-un proces separat. Există o singură instanță care se ocupă de toate solicitările simultan. Acest lucru salvează, de asemenea, memoria și permite unui Servlet să gestioneze cu ușurință starea clientului.
  • Este o componentă pe partea serverului, așa că Servlet moștenește Securitate furnizate de serverul Web.
  • The API proiectat pentru Java Servlet dobândește automat avantajele platformelor Java, cum ar fi independent de platformă și portabilitate. În plus, evident că poate folosi gama largă de API-uri create pe platforme Java, cum ar fi JDBC pentru a accesa baza de date.
  • Multe servere web care sunt potrivite pentru uz personal sau site-uri web cu trafic redus sunt oferite gratuit sau la extrem costuri ieftine de exemplu. Servlet Java. Cu toate acestea, majoritatea serverelor web de calitate comercială sunt destul de scumpe, cu excepția notabilă a Apache, care este gratuit.

Containerul Servlet

Container servlet , de asemenea cunoscut ca si motor servlet, este un set integrat de obiecte care oferă un mediu de rulare pentru componentele Java Servlet. Cu cuvinte simple, este un sistem care gestionează componentele Java Servlet deasupra serverului Web pentru a gestiona solicitările clientului Web.

Servicii furnizate de containerul Servlet:

  • Servicii de rețea: Încarcă o clasă Servlet. Încărcarea poate fi dintr-un sistem de fișiere local, un sistem de fișiere la distanță sau alte servicii de rețea. Containerul Servlet oferă serviciile de rețea prin care sunt trimise cererea și răspunsul.
  • Decodificați și codificați mesajele bazate pe MIME: Oferă serviciul de decodare și codificare a mesajelor bazate pe MIME.
  • Gestionați containerul Servlet: Gestionează ciclul de viață al unui Servlet.
  • Managementul resurselor Gestionează resursele statice și dinamice, cum ar fi fișierele HTML, servlet-urile și paginile JSP.
  • Serviciu de securitate: Se ocupă de autorizarea și autentificarea accesului la resurse.
  • Managementul sesiunii: Menține o sesiune prin adăugarea unui sesiune ID la calea URL.

Concluzie

Servlet-uri Java sunt componente cruciale pentru definirea logicii de afaceri și gestionarea cererilor web complexe. Aceste componente promovează dezvoltarea dinamică a unui site web și au un mare potențial de a schimba dinamica aplicației. Iată câteva dintre caracteristicile cheie pe care le învățăm în acest articol:

  • Java Servlets ajută la dezvoltarea dezvoltării de aplicații pe server și oferă o modalitate de a face față conținutului dinamic pentru a construi site-uri web robuste și interactive.
  • De îndată ce cererea ajunge la serverul web, o instanță de servlet este inițializată folosind căldură() metoda, iar cererea HTTP în funcție de tipul acesteia poate fi gestionată de metodele doGet() sau doPost().
  • Servlet-urile fac aplicația noastră web mai receptivă și mai eficientă, deoarece nu creează și nu distruge un proces de fiecare dată când se primește o solicitare.

Întrebări frecvente despre Java Servlet

Î1. Care este ciclul de viață al servlet-ului Java?

Servlet Java are un ciclu de viață predefinit, începând de la inițializator (alocarea memoriei) până când obiectul este distrus (memoria dealocată). Se desfășoară în următorii pași:

  1. init() – este apelat de îndată ce cererea este primită de serverul web și o nouă instanță de servlet este inițializată.
  2. service() – pentru a gestiona cererea clientului și a redirecționa cererea către un doGet() sau doPost() corespunzător
  3. destroy() – apelat atunci când cererea este gestionată, răspunsul trimis înapoi clientului și în final memoria alocată servlet-ului este dealocată.

Q2. Cum se configurează un Servlet Java?

Configurația Java Servlet este definită în interiorul a descriptor de implementare dosar - web.xml. Deși, acum este o moștenire, deoarece majoritatea aplicațiilor bazate pe servlet au folosit configurația bazată pe adnotări pentru a configura un Servlet Java folosind @WebServlet Annotation.

Exemplu: @WebServlet (nume = MyServlet, urlPatterns = /myServlet)

Q3. Ce este un filtru Servlet?

Un filtru Servlet este o componentă suplimentară pentru efectuarea lucrărilor de pre-post-procesare a solicitărilor web, cum ar fi înregistrarea, monitorizarea, depanarea și depanarea.