Servletit Servletit. Java-sovellusten rakentaminen servlettien avulla Servletin perusteet

Servlet - tämä on Java-nporpaMMa, joka käyttää luokkaa superluokkanaan HttpServiet. Servlettiä käytetään olemassa olevan palvelimen, erityisesti Web-palvelimen, ominaisuuksien laajentamiseen. Tyypillisesti servlet toimii erityisellä palvelimella. Tällaisia ​​palvelimia kutsutaan Java-sovelluspalvelimiksi. Java-sovelluspalvelin sisältää rakennuspalikkana web-palvelimen (joskus ei yhden, vaan useita), sekä palvelimia, jotka toimivat palvelinkomponenttien kanssa, apupalvelupalvelimia jne. Servlet toimii siinä ympäristössä, jonka palvelin sille tarjoaa. Palvelimen osaa, joka on suunniteltu käsittelemään servlettejä, kutsutaan servlet-säiliöksi. Servlet-spesifikaatio olettaa, että servlet-luokassa on vakiomenetelmiä, joiden suorittaminen tapahtuu jossakin servletin elinkaaren vaiheessa. Servlet-säilö kutsuu näitä menetelmiä. Servlet-spesifikaatioiden toteutus sisältyy vakio Java-kielipaketteihin.

Tämä kirja kattaa Java-sovelluspalvelimen nimeltä Blazix. Blazix Server tarjoaa täydellisen joukon ominaisuuksia servlettien kanssa työskentelemiseen. Sen lisäksi, että luot servlet-luokan (tai luokat) sekä määrität luodun servlet-ohjelman ja asennat sen palvelimelle, sinun on muutettava Web-palvelimen asetustiedostoa. Perusarvot määritetään asetustiedostossa seuraavasti: servlet.name: myservlet

servlet.myservlet.className: mypackage.MyServletClass servlet.myservlet.url: /mysrvlet

Jokaiselle servletille on annettava nimi(servlet.name), jolla se tunnistetaan palvelimella. Tätä nimeä käytetään servletin ominaisuuksien asettamiseen, erityisesti osoittamaan sen luokan nimeä, johon servlet-ohjelma on tallennettu (seuraava rivi), sekä osoitteen, josta tätä servletiä käytetään (kolmas rivi).

Asiakas kysyy Web-palvelimelta osoitetta, jossa servlet sijaitsee (osoite on määritettävä servlet.myservlet.url-arvona Web-palvelimen asetustiedostossa). Palvelin välittää pyynnön ja tiedot (jos sellaisia ​​on) servletille, vastaanottaa vastauksen servletiltä ja välittää sen asiakkaalle.

Tämä voisi olla servletin selityksen loppu. On kuitenkin monia mielenkiintoisia ja hyödyllisiä yksityiskohtia, joihin sinun tulee kiinnittää huomiota ja tutkia niitä tarkemmin.

On erityisen tärkeää pitää mielessä, että servlet-luokan polku on määritettävä muuttujassa ciasspath tai se voidaan sijoittaa hakemistoon C:\Blazix\classes tai hakemistoon, joka on määritetty Web-palvelimen asetustiedostossa nimellä server.ciassDir. Kun asetustiedostoa on muokattu sisältämään tiedot uudesta servletistä, palvelin on pysäytettävä ja käynnistettävä uudelleen. Servlet voidaan sijoittaa myös käynnissä olevalle palvelimelle hallintatyökalun avulla, mutta tätä varten servlet on pakattava Web-arkisto WAR-tiedostoon. Jos servlet-luokkatiedostoa on muutettu, palvelinta ei tarvitse pysäyttää ja käynnistää uudelleen. Oletusarvoisesti palvelin on määritetty niin, että servlet-soittimen kutsuminen osoitteessa http://localhost:81/_reload saa aikaan sen, että kaikki luokat ladataan uudelleen ja muokattu servlet-luokka on käytettävissä asiakaspyyntöjä varten (Kuva 4.1). Vieraile tällä sivulla, kun servlet-luokkatiedostoa on muokattu. Palvelimen pysäyttäminen ei yksinkertaisesti ole välttämätöntä.

Jos lukijalla on kokemusta servleteistä, hän arvostaa Blazix-palvelimen yksinkertaisuutta verrattuna muihin Java-palvelimiin, kuten Tomcatiin.

Aloita heti, katsotaanpa yksinkertainen esimerkki, servlet joku-Servlet (Luettelo 4.1).

Listaus 4.1. Servlet SomeServlet.java I

tuo java.io.*; tuonti javax.servlet.*; tuonti javax.servlet.http.*;

public class SomeServlet laajentaa HttpServlet ( public void doGet(HttpServletRequest request,

HttpServletResponse response) heittää ServletExceptionin, IOExceptionin ( Printwriter out = vastaus.getWriter(); out.println("Hei maailma");

Kirjoita Web-palvelimen asetustiedostoon seuraava:

servlet.name: ensimmäinen

servlet.first.className: SomeServlet

servlet.first.url: /dofirst

Sitten selaimen kutsu servletille näyttää tältä http://localhost:81 /dofirst (Kuva 4.2).

Java-servletit tarjoavat alustasta riippumattoman menetelmän verkkosovellusten luomiseen (tämä ei ole kiistaton, mutta emme käsittele tätä asiaa sen enempää, koska silloin meidän on päätettävä, mitä tarkoitamme Web-sovelluksella, joka ei sisälly luetteloon käsiteltävistä aiheista) ja monet sovellukset Ne ovat nopeita eivätkä ne sisällä CGI-sovellusten rajoituksia. Servlet toimii Web-palvelimen ohjauksessa, eikä se, toisin kuin sovelma, vaadi graafista käyttöliittymää. Servlet on vuorovaikutuksessa palvelimen kanssa vaihtamalla pyyntöjä ja vastauksia sen kanssa. Asiakasohjelma tekee pyynnöt palvelimelle. Palvelin käsittelee pyynnön, välittää sen servletille ja servlet lähettää vastauksen palvelimen kautta asiakkaalle. Nykyään servletit ovat erittäin suosittuja luotaessa interaktiivisia Web-sovelluksia. On monia web-palvelimia, jotka voivat käsitellä servlettejä, mukaan lukien Tomcat, iPlanet Web Server (aiemmin Netscape

Enterprise Server), Blazix. J Builder Enterprise käyttää mukana tulevaa Borland Enterprise Serveriä (BES) ja tukee myös sitä Web-palvelimet Logic, WebSphere ja iPlanet. J Builder Enterprise Server sisältää oletusarvoisen Tomcat-palvelimen.

Riisi. 4.2. Soittaminen servletiin

Yksi servlettien tärkeä etu on niiden nopeus. Toisin kuin CGI-sovellukset, servletit ladataan muistiin vain kerran ja suoritetaan sitten suoraan muistista. Servletit ovat pohjimmiltaan monisäikeisiä sovelluksia. Lisäksi ne ovat alustariippumattomia, koska ne on kirjoitettu Java-kielellä.

JSP-tekniikkaa, joka on omistettu Luku 3 on servlet-tekniikan laajennus JSP:hen Erityistä huomiota keskittyy työskentelyyn HTML- ja XML-dokumenttien kanssa. JSP-fragmentteja käytetään yleisimmin osana HTML- ja XML-koodia. Kuinka tehdä valinta ja päättää, käytetäänkö servlettejä vai palvelinsivuja? Servletit sopivat paremmin matalan tason ohjelmointiongelmien ratkaisemiseen ja vähemmän sovellusten esityslogiikan luomiseen liittyvien ongelmien ratkaisemiseen. JSP-palvelinsivut puolestaan ​​keskittyvät pääasiassa siihen, kuinka tulos esitetään käyttäjälle kätevimmällä tavalla. Palvelinpuolen sivut luodaan upotettuna HTML-koodiin käyttämällä HTML-dokumentin kirjoitustyyliä. JSP-tekniikka tarjoaa paljon rikkaampia ominaisuuksia kuin tavallinen HTML. JSP-sivut voivat tarjota mahdollisuuden toteuttaa sovelluslogiikkaa käyttämällä yksinkertaisia ​​Java-komponentteja sekä EJB-palvelinkomponentteja luomalla mukautettuja pikakuvakekirjastoja. Java-palvelinsivut itsessään voivat olla modulaarisia, uudelleenkäytettäviä esityslogiikkakomponentteja, joita voidaan käyttää yhdessä erilaisten mallien ja suodattimien kanssa. JSP-sivut muunnetaan servletteiksi, joten teoriassa voit käyttää vain servlettejä. JSP-tekniikka luotiin kuitenkin yksinkertaistamaan Web-asiakirjojen luontiprosessia erottamalla sovelluksen esityslogiikka asiakirjan sisällöstä. Useimmissa tapauksissa asiakkaalle lähetettävä vastaus koostuu sekä asiakirjan esitysmalleista että tiedoista, jotka generoidaan automaattisesti täyttämällä malli. Tällaisissa tilanteissa on paljon helpompaa työskennellä JSP:n kanssa kuin servlettien kanssa.

Yksi Javan parhaista asioista on sen monipuolinen luonne. Tietenkin perinteisen työpöydän ja jopa luominen mobiilisovelluksia- Tämä on suurenmoista. Mutta entä jos haluat poistua syrjäytyneeltä tieltä ja astua Java-verkkosovelluskehityksen alueelle? Sinulle on yksi hyviä uutisia: Kielen mukana tulee täysi Servlet API, jonka avulla voit luoda luotettavia verkkosovelluksia ilman suurta vaivaa.

Java-sovellusten rakentaminen servlettien avulla

Joten olemme jo luoneet sovelluksen määritystiedostot. Nykytilanteessa se ei kuitenkaan tee kirjaimellisesti mitään. Haluamme, että asiakkaat voivat rekisteröityä HTML-lomakkeella, joten seuraavaksi meidän on luotava JSP-tiedostot, jotka näyttävät yllä olevan lomakkeen ja asiakkaan tiedot, kun rekisteröinti on suoritettu onnistuneesti. Näin teemme nyt.

Työskentelemme ulkoasun parissa

Sovelluksen ulkoasu määritellään kahdella JSP-tiedostolla - MVC-kontekstissa näitä kutsutaan näkymiksi. Ensimmäinen vastaa ilmoittautumislomakkeen näyttämisestä ja mahdollisia virheitä, soitettiin syötettyjen tietojen tarkistuksen jälkeen. Toinen on tavallinen tervetulosivu, joka näyttää asiakkaan syöttämät tiedot, kun rekisteröintiprosessi on suoritettu onnistuneesti.

Tässä on ensimmäinen JSP-tiedosto:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Rekisteröinti

Rekisteröinti

$(rikkomus).