Šiam straipsniui ar jo daliai . Jūs galite padėti Vikipedijai pridėdami su šaltiniais. |
Šio puslapio ar jo dalies stilius neatitinka . Jei galite, pakoreguokite stilių, kad tiktų enciklopedijai. Tik tada bus galima ištrinti šį pranešimą. |
Java Servlet – Sun Microsystems sukurta technologija, skirta generuoti. Java Servlet programuojamas Java programavimo kalba. Pagrindinė sąvoka šioje technologijoje – servletas. Tai serveryje esantis komponentas, gaunantis iš kliento (pvz., naršyklės) užklausą (angl. request) bei generuojantis atsaką (angl. response).
Servletas gali būti generuojamas automatiškai, pasitelkiant JavaServer Pages technologiją ar kitą šablonų generavimo variklį, tokį kaip ar .
Web talpykla (container)
Nekomercinės Web talpyklos
- – populiariausia Web talpykla, užsitarnavusi stabilios reputaciją
- Enhydra
Komercinės Web talpyklos
- or Weblogic Express
- IBM's
- Sun/Netscape
Servleto naudojimas
Servletas gali būti naudojamas keletu būdu:
- Dviejų lygių architektūra – servletas pats vienas generuoja vartotojui reikalingą puslapį. Šiuo atveju vartotojo naršyklė yra pirmas lygis, o servletas – antras. Ši architektūra pasirenkama, kuomet servleto užduotis yra loginiu požiūriu paprasta.
- Trijų lygių architektūra – servletas darbo metu susisiekia arba su atskirai parašytu ir veikiančiu sprendimus priimančiu moduliu, arba (retais atvejais) ir tiesiai su duomenų baze. Tiesioginis susisiekimas su duomenų baze, nors ir techniškai galimas, paprastai nerekomenduojamas ir atskirai nenagrinėjamas.
- Keturių lygių architektūra – servletas darbo metu susiekia su atskirai parašytu ir veikiančiu sprendimus priimančiu moduliu. Susiekiama dažniausiai per CORBA ar RMI protokolus. Šis modulis savo ruožtu susiekia su viena ar keliomis duomenų bazėmis (per ).
Servleto gyvavimo ciklas
Servletas gali būti vienoje iš šių būsenų:
- Inicializuojamas: šiuo metu arba vykdomas servleto konstruktoriaus kodas, arba init() metodas. Servletą kuria konteineris, naudodamas konstruktorių be parametrų. Sukūrus servletą, vykdomas init() metodas. Viso servleto gyvavimo metu šis init() iškviečiamas tiktai vieną kartą.
- Veikia (inicializuotas): vykdomas servleto metodas service(). Būtent šioje būsenoje servletas gali apdoroti kliento užklausas bei generuoti atsakus. Kiekvieną atsaką apdoroja atskira gija.
- Sunaikintas: šiuo metu vykdomas metodas destroy(). Jis yra iškviečiamas vieną kartą ir yra skirtas atlikti veiksmams, kurių gali prireikti prieš sunaikinant servleto objektą (pvz., uždaryti prisijungimus prie duomenų bazės).
- Neegzistuoja: servleto objektas nesukurtas arba sunaikintas.
Servleto kūrimas
Paprasčiausio servleto pavyzdys
, kurdamas paprasčiausią servletą, gali paveldėti javax.servlet.http. HttpServlet klasę ir perrašyti tam tikrus jos . Dažniausiai užtenka perrašyti doGet ir doPost metodus, taip pat init pradiniams duomenims pakrauti.
- init metodą iškviečia servleto talpykla iškart po servleto sukūrimo.
- doGet(HttpServletRequest request, HttpServletResponse response) vykdo HTTP GET užklausą (HTTP Get request)
- doPost(HttpServletRequest request, HttpServletResponse response) vykdo HTTP POST užklausą (HTTP Post request)
Be doGet() ir doPost() metodų, HttpServlet klasė turi atitinkamus metodus ir kitoms HTTP užklausoms (visoms, išskyrus HTTP CONNECT):
- doTrace() vykdo HTTP TRACE užklausą
- doOptions() vykdo HTTP OPTIONS užklausą
- doHead() vykdo HTTP HEAD užklausą
- doPut() vykdo HTTP PUT užklausą
- doDelete() vykdo HTTP DELETE užklausą
doGet() ir doPost() metodai perduoda HTML vartotojo įvestus duomenis. Skirtumas tarp HTTP GET ir POST metodų yra tas, kad pirmuoju metodu visa informacija apie norimą resursą perduodama interneto adresu.
aprašymo pavyzdys:
<form action="/WebServer/main" method="POST"> <input type="text" name="klausimas" /> <input type="submit" name="Submit" value="Gerai" /> </form>
Tai pavyzdys paprasčiausios formos su laukeliu įvesti tekstui ir patvirtinimo mygtuku. Parametras action lemia, koks servletas konteineryje apdoros užklausą.
Servleto metodai doGet() ir doPost() perduoda du : HttpServletRequest ir HttpServletResponse. HttpServletRequest, be kitų duomenų, saugomos perduotų parametrų (pvz., iš html formos arba nuorodos) reikšmės.
String klausimas = request.getParameter(„klausimas“); // request - HttpServletRequest tipo objektas
Čia jau programuotojas pats turi nuspręsti, ką daryti su gautu tekstu. Jis gali sugeneruoti naują puslapį ir nusiųsti vartotojui:
PrintWriter out = response.getWriter(); out.println(„Jūsų įvestas klausimas buvo: “ + klausimas);
Svarbu prisiminti, kad puslapis automatiškai baigiamas generuoti tada, kai baigiamas vykdyti doGet() arba doPost() metodas.
Realiai HTML puslapiai (kaip parodyta pavyzdyje) servleto kode negeneruojami, juose dažniausiai realizuojama verslo logika, o prezentacijai dažniausiai naudojami JSP puslapiai.
Programavimo priemonės
Kai kurios Java programavimo aplinkų turi priemones servletų kūrimo automatizavimui:
- Borland JBuilder 2005-06-05 iš Wayback Machine projekto.
Nuorodos
- Technologijos specifikacija
- Servletų klasių hierarchija
vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu , mobilusis, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris