Java Servlet
Java Servlet - tai Sun Microsystems sukurta technologija dinaminių puslapių generavimui. Java Servlet programuojamas Java programavimo kalba. Pagrindinė sąvoka šioje technologijoje - servletas. Tai serveryje esantis komponentas, susietas su užklausos adresu, generuojantis atsakymus.
Servletas gali būti generuojamas automatiškai, pasitelkiant JavaServer Pages, ar kitą šablonų generavimo variklį tokį kaip WebMacro ar Apache Velocity.
Web talpykla (container)
Nekomercinės Web talpyklos
- Jakarta Tomcat - populiariausia Web talpykla, užsitarnavusi stabilios reputaciją
- Java System Application Server
- Jetty
- Java Mini Daemon
- Enhydra
Komercinės Web talpyklos
- Caucho's Resin Server
- BEA WebLogic Server or Weblogic Express
- Borland Enterprise Server
- Oracle Application Server
- IBM's WebSphere
- iPlanet Sun/Netscape
- IronFlare Orion Application Server
- Macromedia JRun
Servleto naudojimas
Tipinis servletas yra trijų lygių architektūra paremtos sistemos sudedamoji dalis. Tai yra:
- Duomenų bazių valdymo sistema. Duomenų bazė yra neprivaloma servleto funkcionavimui, tačiau vienaip ar kitaip duomenis tenka saugoti. Dažniausiai servletas su duomenų baze jungiamas per JDBC tvarkykles.
- Žiniatinklio serveris, kurio sudedamoji dalis yra servletų konteineris (servlet container), atsakantis už dinaminių puslapių generavimą (dažniausiai HTML formatu).
- Interneto naršyklė vartotojo kompiuteryje.
Servleto kūrimas
Paprasčiausio servleto pavyzdys
Programuotojas, kurdamas paprasčiausią servletą, gali paveldėti javax.servlet.http.HttpServlet klasę ir perrašyti tam tikrus jos metodus. 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 vykdo HTTP GET užklausą (HTTP Get request)
- doPost vykdo HTTP POST užklausą (HTTP Post request)
doGet ir doPost metodai perduoda HTML formoje vartotojo įvestus duomenis. Skirtumas tarp HTTP GET ir POST metodų yra tas, kad pirmuoju metodu visa informacija apie norimą resursą perduodama interneto adresu.
HTML formos 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 parametrus: request ir response. Naudojantis request, galima gauti tekstą, kuris buvo įvestas į bet kurį laukelį.
String klausimas = request.getParameter("klausimas");
Č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: