Сервлет је објекат програмског језика Јава који динамички обрађује захтеве и конструише одговор на захтев. Јава сервлет АПИ омогућава Јава програмерима да додају динамички садржај Wеб серверу коришћењем Јава платформе. Сервлет најчешће генерише ХТМЛ код, али то може бити и XМЛ или нешто слично.

Сервлет је својеврсни одговор Сун Мицросyстемс на постојеће технологије динамичког генерисања ХТМЛ кода: ПХП, ЦГИ и АСП.НЕТ. Они омогућавају одржавање стања на више сервера коришћењем колачића, променљивих сесије и преписивањем УРЛ адреса.

Сервлет АПИ, је смештен у Јава пакету јаваx.сервлет, и дефинише очекиване интеракције Wеб контејнера и сервлета. Wеб контејнер је у основи компонента Wеб сервера који одговара на захтеве сервлета. Wеб контејнер је одговоран за управљање животним циклусом сервлета, мапирањем УРЛ адреса за одређени сервлет и обезбеђивање да ће захтевани УРЛ добити исправан одговор.

Сервлет је објекат који прима захтев и генерише одговор на основу захтева. Основни пакет сервлета дефинише Јава објекте који репрезентују захтеве и одговоре сервлета, као објекта који одражава конфигурацију параметара сервлета и извршног окружења. Пакет јаваx.сервлет.хттп дефинише специфичне ХТТП подкласе генеричких елемената сервлета, укључујући објекте управљања сесијом који бележе захтеве и одговоре Wеб сервера и клијента. Сервлет се могу смештати у WАР датотеке као Wеб апликација.

Сервлети могу бити аутоматски генерисани од ЈСП (ЈаваСервер Пагес) компајлера, или помоћу темплејт енџина, као што је WебМацро.

Животни циклус Сервлета уреди

  1. Контејнер учитава сервлет класу приликом подизања система.
  2. Контејнер позива инит() методу. Ова метода иницијализује сервлет и мора бити позвана пре било ког захтева за сервлет. Овај метод се позива само једном током животног циклуса сервлета.
  3. Након иницијализације сервлет може одговарати на захтеве. Сваки захтев се обрађује као посебна нит. Контејнер позива сервице() методу сервлета за сваки поједни захтев. Ова метода одређује врсту одговора и прослеђује је одговарајућем методу на обраду. Wеб програмер мора да имплементира ове методе. Уколико није имплементирана одговарајућа метода за дати захтев извршава се надређена метода, која обично даје поруку о грешци.
  4. На крају контејнер позива дестроy() методу која прекида извршавање сервлета. I ова метода се као и иннит() метода позива само једном током извршавања сервлета.