Nykyään me kaikki olemme tietoisia luomisen tarpeesta dynaamiset verkkosivut eli ne, jotka voivat muuttaa sivuston sisältöä ajankohdan mukaan tai luoda sisältöä asiakkaalta saadun pyynnön mukaan. Jos pidät koodaamisesta Java-kielellä, tulet mielelläsi tietämään, että Javaa käyttämällä on olemassa myös tapa luoda dynaamisia verkkosivuja ja se on Java servlet . Mutta ennen kuin siirrymme eteenpäin aiheessamme, ymmärrämme ensin palvelinpuolen laajennusten tarpeen.
Mikä on Java Servlet?
Java-servletit ovat Java-ohjelmia, jotka toimivat Java-yhteensopivalla verkkopalvelimella tai sovelluspalvelimella. Niitä käytetään käsittelemään verkkopalvelimelta saatua pyyntöä, käsittelemään pyyntö, tuottamaan vastaus ja lähettämään sitten vastaus takaisin verkkopalvelimelle.
Java Servletin ominaisuudet
Servlettien ominaisuudet ovat seuraavat:
- Servletit toimivat palvelinpuolella.
- Servletit pystyvät käsittelemään web-palvelimelta saatuja monimutkaisia pyyntöjä.
Java Servlets -arkkitehtuuri
Servlet-arkkitehtuuri voidaan kuvata itse kuvasta seuraavasti:
Java Servlettien suorittaminen
Servlettien suorittaminen periaatteessa sisältää kuusi perusvaihetta:
- Asiakkaat lähettävät pyynnön Web-palvelimelle.
- Web-palvelin vastaanottaa pyynnön.
- Web-palvelin välittää pyynnön vastaavalle servletille.
- Servlet käsittelee pyynnön ja tuottaa vastauksen tulosteen muodossa.
- Servlet lähettää vastauksen takaisin verkkopalvelimelle.
- Web-palvelin lähettää vastauksen takaisin asiakkaalle ja asiakasselain näyttää sen näytöllä.
Keskustelkaamme nyt epäkeskeisestä kohdasta, miksi tarvitsemme palvelinpuolen laajennuksia?
Palvelinpuolen laajennusten tarve
The Palvelinpuolen laajennukset ovat vain tekniikoita, joita käytetään dynaamisten Web-sivujen luomiseen. Itse asiassa dynaamisten Web-sivujen tarjoamiseksi Web-sivut tarvitsevat säilön tai Web-palvelimen. Tämän vaatimuksen täyttämiseksi riippumattomat Web-palvelintoimittajat tarjoavat joitain patentoituja ratkaisuja muodossa API ( Sovellusohjelmointiliittymä).
Nämä API:t antaa meille mahdollisuuden rakentaa ohjelmia, jotka voivat toimia Web-palvelimen kanssa. Tässä tapauksessa, Java servlet on myös yksi komponenttien API:ista Java Platform Enterprise Edition (nykyään 'Jakarta EE') joka asettaa standardit dynaamisten verkkosovellusten luomiselle Javassa.
Ennen kuin opit jostain, on tärkeää tietää sen tarve, ei ole niin, että tämä on ainoa saatavilla oleva tekniikka dynaamisten verkkosivujen luomiseen. Servlet-tekniikka on samanlainen kuin muut Web-palvelinlaajennukset, kuten Yhteinen yhdyskäytäväliittymä ( CGI) skriptit ja Hypertekstin esikäsittelyohjelma (PHP). Java-servletit ovat kuitenkin hyväksyttävämpiä, koska ne ratkaisevat rajoitukset CGI kuten alhainen suorituskyky ja alhainen skaalautuvuus.
Mikä on CGI (Common Gateway Interface)?
CGI on itse asiassa ulkoinen sovellus, joka on kirjoitettu käyttämällä mitä tahansa ohjelmointikieliä, kuten C tai C++ ja tämä vastaa asiakkaiden pyyntöjen käsittelystä ja dynaamisen sisällön luomisesta.
Kun CGI-sovelluksessa asiakas pyytää pääsyä dynaamisille Web-sivuille, Web-palvelin suorittaa seuraavat toiminnot:
- Se paikantaa ensin pyydetyn verkkosivun eli tarvittava CGI-sovellus URL-osoitteen avulla.
- Sitten se luo uuden prosessin palvelemaan asiakkaan pyyntöä.
- Kutsuu CGI-sovelluksen prosessin aikana ja välittää pyyntötiedot sovellukselle.
- Kerää vastauksen CGI-sovelluksesta.
- Tuhoaa prosessin, valmistelee HTTP-vastauksen ja lähettää sen asiakkaalle.
Joten sisään CGI palvelimen on luotava ja tuhottava prosessi jokaista pyyntöä varten. On helppo ymmärtää, että tämä lähestymistapa soveltuu harvojen asiakkaiden käsittelyyn, mutta asiakkaiden määrän kasvaessa palvelimen työmäärä kasvaa ja siten pyyntöjen käsittelyyn kuluva aika kasvaa.
Ero Java Servlettien ja CGI:n välillä
Servlet | CGI (Common Gateway Interface) |
---|---|
Servletit ovat kannettavia ja tehokkaita. | CGI ei ole kannettava. |
Servleteissä tietojen jakaminen on mahdollista. | CGI:ssä tietojen jakaminen ei ole mahdollista. |
Servletit voivat kommunikoida suoraan verkkopalvelimen kanssa. | CGI ei voi kommunikoida suoraan verkkopalvelimen kanssa. |
Servletit ovat halvempia kuin CGI. | CGI on kalliimpaa kuin Servletit. |
Servletit voivat käsitellä evästeitä. | CGI ei voi käsitellä evästeitä. |
Servlettien sovellusliittymät
Servletit on rakennettu kahdesta paketista:
- javax.servlet (Perus)
- javax.servlet.http (Advance)
Näissä paketeissa olevat eri luokat ja rajapinnat ovat:
Komponentti | Tyyppi | Paketti |
---|---|---|
Servlet | Käyttöliittymä | javax.servlet.* |
ServletRequest | Käyttöliittymä | javax.servlet.* |
ServletResponse | Käyttöliittymä | javax.servlet.* |
GenericServlet | Luokka | javax.servlet.* |
HttpServlet | Luokka | javax.servlet.http.* |
HttpServletRequest | Käyttöliittymä | javax.servlet.http.* |
HttpServletResponse | Käyttöliittymä | javax.servlet.http.* |
Suodattaa | Käyttöliittymä | javax.servlet.* |
ServletConfig | Käyttöliittymä | javax.servlet.* |
Java Servletin edut
- Servlet on nopeammin kuin CGI, koska se ei edellytä uuden prosessin luomista jokaiselle vastaanotetulle uudelle pyynnölle.
- Javalla kirjoitetut servletit ovat alustariippumattomia.
- Poistaa luomisen a uusi prosessi jokaiselle pyynnölle, koska Servlet ei toimi erillisessä prosessissa. On vain yksi esiintymä, joka käsittelee kaikki pyynnöt samanaikaisesti. Tämä säästää myös muistia ja antaa Servletille mahdollisuuden hallita asiakastilaa helposti.
- Se on palvelinpuolen komponentti, joten Servlet perii turvallisuus Web-palvelimen tarjoama.
- The API Javalle suunniteltu Servlet saa automaattisesti Java-alustojen edut, kuten alustariippumattomuuden ja siirrettävyyden. Lisäksi se luonnollisesti voi käyttää laajaa valikoimaa Java-alustoille luotuja API-liittymiä, kuten JDBC päästäksesi tietokantaan.
- Monet henkilökohtaiseen käyttöön tai vähäliikenteisille verkkosivustoille soveltuvia web-palvelimia tarjotaan ilmaiseksi tai erittäin edulliseen hintaan halvat kustannukset esim. Java servlet. Suurin osa kaupallisista Web-palvelimista on kuitenkin melko kalliita lukuun ottamatta Apachea, joka on ilmainen.
Servlet-säiliö
Servlet-säiliö , tunnetaan myös Servlet-moottori, on integroitu joukko objekteja, jotka tarjoavat ajonaikaisen ympäristön Java Servlet -komponenteille. Yksinkertaisesti sanottuna se on järjestelmä, joka hallitsee Java Servlet -komponentteja Web-palvelimen päällä web-asiakaspyyntöjen käsittelemiseksi.
Servlet-kontin tarjoamat palvelut:
- Verkkopalvelut: Lataa Servlet-luokan. Lataus voi tapahtua paikallisesta tiedostojärjestelmästä, etätiedostojärjestelmästä tai muista verkkopalveluista. Servlet-säilö tarjoaa verkkopalvelut, joiden kautta pyyntö ja vastaus lähetetään.
- Dekoodaa ja koodaa MIME-pohjaiset viestit: Tarjoaa MIME-pohjaisten viestien dekoodaus- ja koodauspalvelun.
- Hallinnoi Servlet-säilöä: Hallitsee servletin elinkaarta.
- Resurssienhallinta Hallitsee staattisia ja dynaamisia resursseja, kuten HTML-tiedostoja, Servlettejä ja JSP-sivuja.
- Turvallisuuspalvelu: Käsittelee resurssien käytön valtuutusta ja todennusta.
- Istunnon hallinta: Ylläpitää istunnon liittämällä a istunnon tunniste URL-polkuun.
Johtopäätös
Java Servletit ovat tärkeitä komponentteja liiketoimintalogiikan määrittämisessä ja monimutkaisten verkkopyyntöjen käsittelyssä. Nämä komponentit edistävät web-sivuston dynaamista kehitystä ja niillä on paljon mahdollisuuksia muuttaa sovelluksen dynamiikkaa. Tässä on joitain avainominaisuuksia, jotka opimme tässä artikkelissa:
- Java Servletit auttavat palvelinpuolen sovelluskehityksen kehittämisessä ja tarjoavat tavan käsitellä dynaamista sisältöä luoden kestäviä ja interaktiivisia verkkosivustoja.
- Heti kun pyyntö saapuu verkkopalvelimelle, servlet-ilmentymä alustetaan käyttämällä lämpö() menetelmä, ja HTTP-pyyntö sen tyypistä riippuen voidaan käsitellä doGet()- tai doPost()-menetelmillä.
- Servletit tekevät verkkosovelluksestamme reagoivamman ja tehokkaamman, koska ne eivät luo ja tuhoa prosessia joka kerta, kun pyyntö vastaanotetaan.
Usein kysytyt kysymykset Java Servletistä
Q1. Mikä on Java Servletin elinkaari?
Java Servletillä on ennalta määritetty elinkaari, joka alkaa alustuksesta (muistin varaus) objektin tuhoutumiseen (muistin vapauttamisen jälkeen). Se tapahtuu seuraavissa vaiheissa:
- init() – kutsutaan heti, kun verkkopalvelin vastaanottaa pyynnön ja uusi servlet-instanssi alustetaan.
- service() – käsitellä asiakkaan pyyntöä ja ohjata pyyntö sopivaan doGet()- tai doPost()-palveluun.
- delete() – kutsutaan kun pyyntö käsitellään, vastaus lähetetään takaisin asiakkaalle ja lopuksi servletille varattu muisti puretaan.
Q2. Kuinka konfiguroida Java Servlet?
Java Servletin konfigurointi on määritetty sisällä a käyttöönoton kuvaaja tiedosto - web.xml. Se on kuitenkin nyt vanhaa, koska useimmat servlet-pohjaiset sovellukset käyttivät nykyään huomautuspohjaisia määrityksiä Java-servletin määrittämiseen @WebServlet Annotationin avulla.
Esimerkki: @WebServlet(nimi = MyServlet, urlPatterns = /myServlet)
Q3. Mikä on Servlet-suodatin?
Servlet-suodatin on lisäkomponentti web-pyyntöjen esikäsittelyn suorittamiseen, kuten kirjaamiseen, valvontaan, virheenkorjaukseen ja vianetsintään.