Java Servlet
Java Servlet
Java Servlet - tai Sun Microsystems sukurta technologija dinamiškų puslapių generavimui. Java Servlet programuojamas Java programavimo kalba.
Toliau "Java Servlet" bus vadinamas tiesiog "Servletu"
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.
- Web serveris, kurio sudedamąja dalimi yra Serlveto "konteineris" (Web Container), atsakantis už dinaminių puslapių generavimą (dažniausiai HTML formatu).
- Interneto naršyklė (browser) vartotojo kompiuteryje.
Servleto kūrimas
Tomcat servleto kūrimas pradedantiesiems
Programuotojas, kurdamas paprasčiausią servletą, turi paveldėti Servlet klasę ir tam tikrus jos metodus. Dažniausiai užtenka paveldėti doGet ir doPost metodus, taip pat init pradiniams duomenims pakrauti.
- init metodą iškviečia servleto "konteineris" 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 "get" ir "post" metodų yra tas, kad "post" formų laukų rezultatai nespausdinami naršyklės adreso laukelyje. 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 nurodo kuriai servleto klasei skirti formos duomenys.
HTML puslapis su tokia forma turi būti gautas per Web serverį (arba paprasčiau sakant per adresą naršyklės lange), kitaip naršyklė nežinos, kur siųsti informaciją. 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.
Kai kurios Java programavimo aplinkų turi priemones servletų kūrimo automatizavimui:
Pilnas pavyzdys
Kuriamas