Сервлет
Сервлет је објекат програмског језика Јава који динамички обрађује захтеве и конструише одговор на захтев. Јава сервлет АПИ омогућава Јава програмерима да додају динамички садржај Wеб серверу коришћењем Јава платформе. Сервлет најчешће генерише ХТМЛ код, али то може бити и XМЛ или нешто слично.
Сервлет је својеврсни одговор Сун Мицросyстемс на постојеће технологије динамичког генерисања ХТМЛ кода: ПХП, ЦГИ и АСП.НЕТ. Они омогућавају одржавање стања на више сервера коришћењем колачића, променљивих сесије и преписивањем УРЛ адреса.
Сервлет АПИ, је смештен у Јава пакету јаваx.сервлет, и дефинише очекиване интеракције Wеб контејнера и сервлета. Wеб контејнер је у основи компонента Wеб сервера који одговара на захтеве сервлета. Wеб контејнер је одговоран за управљање животним циклусом сервлета, мапирањем УРЛ адреса за одређени сервлет и обезбеђивање да ће захтевани УРЛ добити исправан одговор.
Сервлет је објекат који прима захтев и генерише одговор на основу захтева. Основни пакет сервлета дефинише Јава објекте који репрезентују захтеве и одговоре сервлета, као објекта који одражава конфигурацију параметара сервлета и извршног окружења. Пакет јаваx.сервлет.хттп дефинише специфичне ХТТП подкласе генеричких елемената сервлета, укључујући објекте управљања сесијом који бележе захтеве и одговоре Wеб сервера и клијента. Сервлет се могу смештати у WАР датотеке као Wеб апликација.
Сервлети могу бити аутоматски генерисани од ЈСП (ЈаваСервер Пагес) компајлера, или помоћу темплејт енџина, као што је WебМацро.
Животни циклус Сервлета
[уреди | уреди извор]- Контејнер учитава сервлет класу приликом подизања система.
- Контејнер позива инит() методу. Ова метода иницијализује сервлет и мора бити позвана пре било ког захтева за сервлет. Овај метод се позива само једном током животног циклуса сервлета.
- Након иницијализације сервлет може одговарати на захтеве. Сваки захтев се обрађује као посебна нит. Контејнер позива сервице() методу сервлета за сваки поједни захтев. Ова метода одређује врсту одговора и прослеђује је одговарајућем методу на обраду. Wеб програмер мора да имплементира ове методе. Уколико није имплементирана одговарајућа метода за дати захтев извршава се надређена метода, која обично даје поруку о грешци.
- На крају контејнер позива дестроy() методу која прекида извршавање сервлета. I ова метода се као и иннит() метода позива само једном током извршавања сервлета.