Danes se vsi zavedamo, da je treba ustvarjati dinamične spletne strani t.j. tiste, ki lahko spreminjajo vsebino spletnega mesta glede na čas ali lahko generirajo vsebino glede na prejeto zahtevo naročnika. Če radi kodirate v Javi, boste veseli, da z uporabo Jave obstaja tudi način za ustvarjanje dinamičnih spletnih strani in ta način je Java Servlet . Toda preden nadaljujemo z našo temo, najprej razumemo potrebo po razširitvah na strani strežnika.
Kaj je Java Servlet?
Java Servlets so programi Java, ki se izvajajo na spletnem strežniku ali aplikacijskem strežniku, ki podpira Javo. Uporabljajo se za obdelavo zahteve, pridobljene s spletnega strežnika, obdelavo zahteve, izdelavo odgovora in nato pošiljanje odgovora nazaj spletnemu strežniku.
Lastnosti Java Servlet
Lastnosti servletov so naslednje:
- Servleti delujejo na strani strežnika.
- Servleti so sposobni obravnavati kompleksne zahteve, pridobljene s spletnega strežnika.
Arhitektura servletov Java
Arhitekturo strežniškega programčka je mogoče prikazati iz same slike, kot je navedeno spodaj, kot sledi:
Izvajanje servletov Java
Izvajanje servletov v bistvu vključuje šest osnovnih korakov:
- Stranke pošljejo zahtevo spletnemu strežniku.
- Spletni strežnik prejme zahtevo.
- Spletni strežnik posreduje zahtevo ustreznemu strežniškemu programčku.
- Servlet obdela zahtevo in ustvari odgovor v obliki izhoda.
- Servlet pošlje odgovor nazaj spletnemu strežniku.
- Spletni strežnik pošlje odgovor nazaj odjemalcu in odjemalski brskalnik ga prikaže na zaslonu.
Zdaj pa razpravljajmo o ekscentrični točki, zakaj potrebujemo razširitve na strani strežnika?
Potreba po razširitvah na strani strežnika
The Razširitve na strani strežnika niso nič drugega kot tehnologije, ki se uporabljajo za ustvarjanje dinamičnih spletnih strani. Pravzaprav potrebujejo spletne strani vsebnik ali spletni strežnik, da zagotovijo možnost dinamičnih spletnih strani. Da bi izpolnili to zahtevo, neodvisni ponudniki spletnih strežnikov ponujajo nekaj lastniških rešitev v obliki API-ji ( aplikacijski programski vmesnik).
te API-ji nam omogočajo izdelavo programov, ki se lahko izvajajo s spletnim strežnikom. V tem primeru, Java Servlet je tudi eden od sestavnih API-jev Java Platform Enterprise Edition (danes znana kot - 'Jakarta EE') ki postavlja standarde za ustvarjanje dinamičnih spletnih aplikacij v Javi.
Preden se o nečem naučite, je pomembno poznati potrebo po tem nečem, ni tako, da je to edina tehnologija, ki je na voljo za ustvarjanje dinamičnih spletnih strani. Tehnologija Servlet je podobna drugim razširitvam spletnega strežnika, kot je npr Skupni vmesnik prehoda ( CGI) skripte in Predprocesor hiperteksta (PHP). Vendar so Java Servlets bolj sprejemljivi, saj rešujejo omejitve CGI kot sta nizka zmogljivost in nizka stopnja razširljivosti.
Kaj je CGI (Common Gateway Interface)?
CGI je pravzaprav zunanja aplikacija, ki je napisana z uporabo katerega koli od programskih jezikov, kot je C oz C++ in ta je odgovoren za obdelavo zahtev strank in ustvarjanje dinamične vsebine.
V aplikaciji CGI, ko odjemalec poda zahtevo za dostop do dinamičnih spletnih strani, spletni strežnik izvede naslednje operacije:
- Najprej poišče zahtevano spletno stran tj zahtevano aplikacijo CGI z uporabo URL-ja.
- Nato ustvari nov postopek za servisiranje naročnikove zahteve.
- Prikliče aplikacijo CGI znotraj procesa in posreduje informacije o zahtevi aplikaciji.
- Zbere odgovor iz aplikacije CGI.
- Uniči proces, pripravi odziv HTTP in ga pošlje odjemalcu.
Torej, v CGI strežnik mora ustvariti in uničiti proces za vsako zahtevo. Z lahkoto je razumeti, da je ta pristop uporaben za obravnavanje manjšega števila odjemalcev, toda ko se število odjemalcev poveča, se delovna obremenitev strežnika poveča, zato se čas, potreben za obdelavo zahtev, poveča.
Razlika med Java Servlets in CGI
Servlet | CGI (skupni vmesnik prehoda) |
---|---|
Servleti so prenosni in učinkoviti. | CGI ni prenosljiv. |
V Servletih je možna skupna raba podatkov. | V CGI deljenje podatkov ni mogoče. |
Servleti lahko neposredno komunicirajo s spletnim strežnikom. | CGI ne more neposredno komunicirati s spletnim strežnikom. |
Servleti so cenejši od CGI. | CGI je dražji od servletov. |
Servleti lahko obravnavajo piškotke. | CGI ne more obravnavati piškotkov. |
API-ji za servlete
Servleti so zgrajeni iz dveh paketov:
- javax.servlet(Basic)
- javax.servlet.http(Napredno)
V teh paketih so prisotni različni razredi in vmesniki:
Komponenta | Vrsta | Paket |
---|---|---|
Servlet | Vmesnik | javax.servlet.* |
ServletRequest | Vmesnik | javax.servlet.* |
ServletResponse | Vmesnik | javax.servlet.* |
GenericServlet | Razred | javax.servlet.* |
HttpServlet | Razred | javax.servlet.http.* |
HttpServletRequest | Vmesnik | javax.servlet.http.* |
HttpServletResponse | Vmesnik | javax.servlet.http.* |
Filter | Vmesnik | javax.servlet.* |
ServletConfig | Vmesnik | javax.servlet.* |
Prednosti Java Servlet
- Servlet je hitreje kot CGI, saj ne vključuje ustvarjanja novega postopka za vsako novo prejeto zahtevo.
- Servleti, kot so napisani v Javi, so neodvisni od platforme.
- Odstrani režijske stroške ustvarjanja a nov proces za vsako zahtevo, saj se Servlet ne izvaja v ločenem procesu. Obstaja le en primerek, ki hkrati obravnava vse zahteve. To tudi prihrani pomnilnik in omogoča Servletu enostavno upravljanje stanja odjemalca.
- Je komponenta na strani strežnika, zato Servlet podeduje varnost ki jih zagotavlja spletni strežnik.
- The API zasnovan za Java Servlet samodejno pridobi prednosti platform Java, kot sta neodvisnost od platforme in prenosljivost. Poleg tega očitno lahko uporablja širok nabor API-jev, ustvarjenih na platformah Java, kot je npr JDBC za dostop do baze podatkov.
- Številni spletni strežniki, ki so primerni za osebno uporabo ali spletna mesta z malo prometa, so na voljo brezplačno ali po zelo visoki ceni poceni stroški npr. Java servlet. Vendar pa je večina komercialnih spletnih strežnikov precej dragih, z opazno izjemo Apacheja, ki je brezplačen.
Vsebnik Servlet
Posoda za servlet , poznan tudi kot Servlet motor, je integriran niz objektov, ki zagotavljajo okolje izvajalnega časa za komponente Java Servlet. Preprosto povedano, to je sistem, ki upravlja komponente Java Servlet na vrhu spletnega strežnika za obdelavo zahtev spletnega odjemalca.
Storitve, ki jih ponuja vsebnik Servlet:
- Omrežne storitve: Naloži razred Servlet. Nalaganje je lahko iz lokalnega datotečnega sistema, oddaljenega datotečnega sistema ali drugih omrežnih storitev. Vsebnik Servlet zagotavlja omrežne storitve, prek katerih sta poslana zahteva in odgovor.
- Dekodiranje in kodiranje sporočil, ki temeljijo na MIME: Zagotavlja storitev dekodiranja in kodiranja sporočil, ki temeljijo na MIME.
- Upravljanje vsebnika Servlet: Upravlja življenjski cikel servleta.
- Upravljanje virov Upravlja statične in dinamične vire, kot so datoteke HTML, servleti in strani JSP.
- Varnostna služba: Ukvarja se z avtorizacijo in avtentikacijo dostopa do virov.
- Upravljanje sej: Ohranja sejo z dodajanjem a ID seje na pot URL.
Zaključek
Java Servlets so ključne komponente za definiranje poslovne logike in obravnavanje kompleksnih spletnih zahtev. Te komponente spodbujajo dinamičen razvoj spletnega mesta in imajo veliko možnosti za spreminjanje dinamike aplikacije. Tukaj je nekaj ključnih funkcij, ki jih spoznamo v tem članku:
- Java Servlets pomaga pri razvoju razvoja aplikacij na strani strežnika in zagotavlja način za obravnavo dinamične vsebine za izdelavo robustnih in interaktivnih spletnih mest.
- Takoj ko zahteva doseže spletni strežnik, se primerek strežniškega programčka inicializira z uporabo toplota () metoda, zahtevo HTTP pa lahko glede na vrsto obravnavata metodi doGet() ali doPost().
- Servleti naredijo našo spletno aplikacijo bolj odzivno in učinkovito, saj ne ustvari in uniči procesa vsakič, ko prejme zahtevo.
Pogosta vprašanja o Java Servlet
Q1. Kakšen je življenjski cikel Java Servlet?
Java Servlet ima vnaprej določen življenjski cikel, ki se začne od inicializatorja (dodelitev pomnilnika) do uničenja objekta (sprostitev pomnilnika). Poteka v naslednjih korakih:
- init() – se pokliče takoj, ko spletni strežnik prejme zahtevo in se inicializira nov primerek strežniškega programčka.
- service() – za obdelavo zahteve odjemalca in preusmeritev zahteve na ustrezen doGet() ali doPost()
- destroy() – kliče se, ko je zahteva obdelana, odgovor se pošlje nazaj odjemalcu in končno se sprosti pomnilnik, dodeljen strežniškemu programčku.
Q2. Kako konfigurirati Java Servlet?
Konfiguracija Java Servlet je definirana znotraj a deskriptor razmestitve mapa - web.xml. Čeprav je zdaj podedovano, saj večina današnjih aplikacij, ki temeljijo na servletih, uporablja konfiguracijo, ki temelji na opombah, za konfiguracijo Java Servlet z uporabo @WebServlet Annotation.
Primer: @WebServlet(name = MyServlet, urlPatterns = /myServlet)
Q3. Kaj je filter servleta?
Filter Servlet je dodatna komponenta za izvajanje dela pred naknadno obdelavo spletnih zahtev, kot so beleženje, spremljanje, odpravljanje napak in odpravljanje težav.