logo

Ievads Java Servlets

Šodien mēs visi apzināmies nepieciešamību radīt dinamiskas tīmekļa lapas t.i., tās, kuras var mainīt vietnes saturu atkarībā no laika vai var ģenerēt saturu pēc pieprasījuma, kas saņemts no klienta. Ja jums patīk kodēšana Java valodā, jūs priecāsities uzzināt, ka, izmantojot Java, pastāv arī veids, kā ģenerēt dinamiskas tīmekļa lapas, un tas ir Java servlets . Bet pirms mēs virzāmies uz priekšu ar savu tēmu, vispirms sapratīsim servera puses paplašinājumu nepieciešamību.

Kas ir Java Servlet?

Java servleti ir Java programmas, kas darbojas tīmekļa serverī vai lietojumprogrammu serverī ar iespējotu Java. Tos izmanto, lai apstrādātu pieprasījumu, kas iegūts no tīmekļa servera, apstrādātu pieprasījumu, sagatavotu atbildi un pēc tam nosūtītu atbildi atpakaļ uz tīmekļa serveri.



Java servleta īpašības

Servletu īpašības ir šādas:

  • Servleti darbojas servera pusē.
  • Servleti spēj apstrādāt sarežģītus pieprasījumus, kas iegūti no tīmekļa servera.

Java servletu arhitektūra

Servleta arhitektūru var attēlot no paša attēla, kā norādīts tālāk šādi:

Servletu_arhitektūra



Java servletu izpilde

Servletu izpilde pamatā ietver sešus pamata soļus:

  1. Klienti nosūta pieprasījumu uz Web serveri.
  2. Tīmekļa serveris saņem pieprasījumu.
  3. Tīmekļa serveris nosūta pieprasījumu attiecīgajam servletam.
  4. Servlet apstrādā pieprasījumu un ģenerē atbildi izvades veidā.
  5. Servlets nosūta atbildi atpakaļ uz tīmekļa serveri.
  6. Tīmekļa serveris nosūta atbildi atpakaļ klientam, un klienta pārlūkprogramma to parāda ekrānā.

Tagad apspriedīsim ekscentrisko jautājumu, kāpēc mums ir nepieciešami servera puses paplašinājumi?

Nepieciešami servera puses paplašinājumi

The Servera puses paplašinājumi nav nekas cits kā tehnoloģijas, kas tiek izmantotas dinamisku Web lapu izveidei. Faktiski, lai nodrošinātu dinamisku tīmekļa lapu iespēju, tīmekļa lapām ir nepieciešams konteiners vai tīmekļa serveris. Lai izpildītu šo prasību, neatkarīgi tīmekļa serveru nodrošinātāji piedāvā dažus patentētus risinājumus API ( Lietojumprogrammu saskarne).
Šie API ļauj mums izveidot programmas, kas var darboties ar tīmekļa serveri. Šajā gadījumā, Java servlets ir arī viena no komponentu API Java Platform Enterprise Edition (mūsdienās pazīstams kā 'Jakarta EE') kas nosaka standartus dinamisku tīmekļa lietojumprogrammu izveidei Java.



Pirms kaut ko uzzināt, ir svarīgi zināt, vai tas ir nepieciešams, jo nav tā, ka šī ir vienīgā pieejamā tehnoloģija dinamisko tīmekļa lapu izveidei. Servlet tehnoloģija ir līdzīga citiem tīmekļa servera paplašinājumiem, piemēram, Kopējā vārtejas saskarne ( CGI) skripti un Hiperteksta priekšapstrādātājs (PHP). Tomēr Java servleti ir pieņemamāki, jo tie atrisina ierobežojumus CGI piemēram, zema veiktspēja un zema mērogojamība.

Kas ir CGI (Common Gateway Interface)?

CGI faktiski ir ārēja lietojumprogramma, kas ir rakstīta, izmantojot kādu no programmēšanas valodām, piemēram, C vai C++ un tas ir atbildīgs par klientu pieprasījumu apstrādi un dinamiska satura ģenerēšanu.

CGI lietojumprogrammā, kad klients pieprasa piekļuvi dinamiskām Web lapām, tīmekļa serveris veic šādas darbības:

  • Vispirms tiek atrasta pieprasītā tīmekļa lapa t.i nepieciešamo CGI lietojumprogrammu, izmantojot URL.
  • Pēc tam tiek izveidots jauns process klienta pieprasījuma apkalpošanai.
  • Procesa laikā izsauc CGI lietojumprogrammu un nosūta pieprasījuma informāciju lietojumprogrammai.
  • Apkopo atbildi no CGI lietojumprogrammas.
  • Iznīcina procesu, sagatavo HTTP atbildi un nosūta to klientam.

CGI

Tātad, iekšā CGI serverim ir jāizveido un jāiznīcina process katram pieprasījumam. Ir viegli saprast, ka šī pieeja ir piemērojama dažu klientu apstrādei, taču, pieaugot klientu skaitam, palielinās servera darba slodze un tādējādi palielinās pieprasījumu apstrādes laiks.

Atšķirība starp Java Servlets un CGI

Servlets CGI (Common Gateway Interface)
Servleti ir pārnēsājami un efektīvi. CGI nav pārnēsājams.
Servletos ir iespējama datu koplietošana. CGI datu koplietošana nav iespējama.
Servleti var tieši sazināties ar tīmekļa serveri. CGI nevar tieši sazināties ar tīmekļa serveri.
Servleti ir lētāki nekā CGI. CGI ir dārgāks nekā servleti.
Servleti var apstrādāt sīkfailus. CGI nevar apstrādāt sīkfailus.

Servletu API

Servleti ir veidoti no divām pakotnēm:

  • javax.servlet (Pamata)
  • javax.servlet.http (Advance)

Šajās pakotnēs esošās dažādas klases un saskarnes ir:

Komponents Tips Iepakojums
Servlets Interfeiss javax.servlet.*
ServletRequest Interfeiss javax.servlet.*
ServletResponse Interfeiss javax.servlet.*
GenericServlet Klase javax.servlet.*
HttpServlet Klase javax.servlet.http.*
HttpServletRequest Interfeiss javax.servlet.http.*
HttpServletResponse Interfeiss javax.servlet.http.*
Filtrs Interfeiss javax.servlet.*
ServletConfig Interfeiss javax.servlet.*

Java servleta priekšrocības

  • Servlets ir ātrāk nekā CGI, jo tas neietver jauna procesa izveidi katram jaunam saņemtajam pieprasījumam.
  • Servleti, kā rakstīts Java, ir neatkarīgi no platformas.
  • Noņem pieskaitāmās izmaksas par a jauns process katram pieprasījumam, jo ​​Servlet nedarbojas atsevišķā procesā. Ir tikai viens gadījums, kas vienlaikus apstrādā visus pieprasījumus. Tas arī ietaupa atmiņu un ļauj Servlet viegli pārvaldīt klienta stāvokli.
  • Tas ir servera puses komponents, tāpēc Servlet manto drošību nodrošina Web serveris.
  • The API paredzētas Java Servlet automātiski iegūst Java platformu priekšrocības, piemēram, platformas neatkarīgu un pārnesamību. Turklāt tas acīmredzami var izmantot plašu API klāstu, kas izveidots Java platformās, piemēram, JDBC lai piekļūtu datu bāzei.
  • Daudzi tīmekļa serveri, kas ir piemēroti personīgai lietošanai vai zemas trafika vietnēm, tiek piedāvāti bez maksas vai ļoti dārgi lētas izmaksas piem. Java servlet. Tomēr lielākā daļa komerciālā līmeņa tīmekļa serveru ir diezgan dārgi, izņemot Apache, kas ir bezmaksas.

Servleta konteiners

Servleta konteiners , zināms arī kā Servleta dzinējs, ir integrēta objektu kopa, kas nodrošina Java Servlet komponentu izpildes laika vidi. Vienkāršiem vārdiem sakot, tā ir sistēma, kas Web servera augšpusē pārvalda Java Servlet komponentus, lai apstrādātu tīmekļa klienta pieprasījumus.

Servlet konteinera sniegtie pakalpojumi:

  • Tīkla pakalpojumi: Ielādē Servleta klasi. Ielādēšana var notikt no lokālās failu sistēmas, attālās failu sistēmas vai citiem tīkla pakalpojumiem. Servlet konteiners nodrošina tīkla pakalpojumus, pa kuriem tiek nosūtīts pieprasījums un atbilde.
  • Atšifrēt un kodēt uz MIME balstītus ziņojumus: Nodrošina uz MIME balstītu ziņojumu dekodēšanas un kodēšanas pakalpojumu.
  • Pārvaldīt servleta konteineru: Pārvalda servleta dzīves ciklu.
  • Resursu vadība Pārvalda statiskos un dinamiskos resursus, piemēram, HTML failus, servletus un JSP lapas.
  • Drošības dienests: Apstrādā resursu piekļuves autorizāciju un autentifikāciju.
  • Sesijas vadība: Uztur sesiju, pievienojot a sesijas ID uz URL ceļu.

Secinājums

Java servleti ir būtiski komponenti biznesa loģikas definēšanai un sarežģītu tīmekļa pieprasījumu apstrādei. Šie komponenti veicina tīmekļa vietnes dinamisku attīstību, un tiem ir liels potenciāls mainīt lietojumprogrammas dinamiku. Šeit ir dažas no galvenajām funkcijām, kuras mēs uzzinām šajā rakstā:

  • Java servleti palīdz izstrādāt servera puses lietojumprogrammu izstrādi un nodrošina veidu, kā rīkoties ar dinamisku saturu, lai izveidotu spēcīgas un interaktīvas vietnes.
  • Tiklīdz pieprasījums sasniedz tīmekļa serveri, servleta instance tiek inicializēta, izmantojot siltums () metodi, un HTTP pieprasījumu atkarībā no tā veida var apstrādāt, izmantojot doGet() vai doPost() metodes.
  • Servleti padara mūsu tīmekļa lietojumprogrammu atsaucīgāku un efektīvāku, jo tas nerada un neiznīcina procesu katru reizi, kad tiek saņemts pieprasījums.

Bieži uzdotie jautājumi par Java Servlet

Q1. Kāds ir Java Servlet dzīves cikls?

Java servletam ir iepriekš definēts dzīves cikls, sākot no inicializatora (atmiņas piešķiršana) līdz objekta iznīcināšanai (atmiņas atdalīšana). Tas notiek šādos posmos:

  1. init() – tiek izsaukts, tiklīdz tīmekļa serveris ir saņēmis pieprasījumu un tiek inicializēts jauns servleta gadījums.
  2. service() – lai apstrādātu klienta pieprasījumu un novirzītu pieprasījumu uz atbilstošu doGet() vai doPost()
  3. iznīcināt () – tiek izsaukts, kad pieprasījums tiek apstrādāts, atbilde tiek nosūtīta atpakaļ klientam un visbeidzot tiek atbrīvota servletam piešķirtā atmiņa.

Q2. Kā konfigurēt Java servletu?

Java Servlet konfigurācija ir definēta iekšā a izvietošanas deskriptors fails - web.xml. Lai gan tagad tas ir mantots, jo lielākā daļa uz servlet balstītu lietojumprogrammu mūsdienās izmantoja anotāciju balstītu konfigurāciju, lai konfigurētu Java servletu, izmantojot @WebServlet Annotation.

Piemērs: @WebServlet(nosaukums = MyServlet, urlPatterns = /myServlet)

Q3. Kas ir Servleta filtrs?

Servleta filtrs ir papildu komponents, lai veiktu pirms-post-apstrādes darbus saistībā ar tīmekļa pieprasījumiem, piemēram, reģistrēšanu, uzraudzību, atkļūdošanu un traucējummeklēšanu.