Пређи на садржај

Servlet

С Википедије, слободне енциклопедије

Servlet je objekat programskog jezika Java koji dinamički obrađuje zahteve i konstruiše odgovor na zahtev. Java servlet API omogućava Java programerima da dodaju dinamički sadržaj Web serveru korišćenjem Java platforme. Servlet najčešće generiše HTML kod, ali to može biti i XML ili nešto slično.

Servlet je svojevrsni odgovor Sun Microsystems na postojeće tehnologije dinamičkog generisanja HTML koda: PHP, CGI i ASP.NET. Oni omogućavaju održavanje stanja na više servera korišćenjem kolačića, promenljivih sesije i prepisivanjem URL adresa.

Servlet API, je smešten u Java paketu javax.servlet, i definiše očekivane interakcije Web kontejnera i servleta. Web kontejner je u osnovi komponenta Web servera koji odgovara na zahteve servleta. Web kontejner je odgovoran za upravljanje životnim ciklusom servleta, mapiranjem URL adresa za određeni servlet i obezbeđivanje da će zahtevani URL dobiti ispravan odgovor.

Servlet je objekat koji prima zahtev i generiše odgovor na osnovu zahteva. Osnovni paket servleta definiše Java objekte koji reprezentuju zahteve i odgovore servleta, kao objekta koji odražava konfiguraciju parametara servleta i izvršnog okruženja. Paket javax.servlet.http definiše specifične HTTP podklase generičkih elemenata servleta, uključujući objekte upravljanja sesijom koji beleže zahteve i odgovore Web servera i klijenta. Servlet se mogu smeštati u WAR datoteke kao Web aplikacija.

Servleti mogu biti automatski generisani od JSP (JavaServer Pages) kompajlera, ili pomoću templejt endžina, kao što je WebMacro.

Životni ciklus Servleta

[уреди | уреди извор]
  1. Kontejner učitava servlet klasu prilikom podizanja sistema.
  2. Kontejner poziva init() metodu. Ova metoda inicijalizuje servlet i mora biti pozvana pre bilo kog zahteva za servlet. Ovaj metod se poziva samo jednom tokom životnog ciklusa servleta.
  3. Nakon inicijalizacije servlet može odgovarati na zahteve. Svaki zahtev se obrađuje kao posebna nit. Kontejner poziva service() metodu servleta za svaki pojedni zahtev. Ova metoda određuje vrstu odgovora i prosleđuje je odgovarajućem metodu na obradu. Web programer mora da implementira ove metode. Ukoliko nije implementirana odgovarajuća metoda za dati zahtev izvršava se nadređena metoda, koja obično daje poruku o grešci.
  4. Na kraju kontejner poziva destroy() metodu koja prekida izvršavanje servleta. I ova metoda se kao i innit() metoda poziva samo jednom tokom izvršavanja servleta.