Програмирање

ЈСП – Брзи водич за почетнике

30. октобар 2021

Преглед садржаја

Шта је ЈаваСервер Пагес?

Тхе ЈаваСервер странице (ЈСП) , технологија на страни сервера, помаже програмерима да развију веб странице које користе ХТМЛ , КСМЛ , СОАП , итд. Помиње се и као Странице сервера у Џакарти . У ЈСП, програмери могу да уграде јава код у ХТМЛ Језик. У ЈСП-у постоје јединствене ознаке које омогућавају употребу Јава код у ХТМЛ-у. Ове ознаке почињу и завршавају се са '<%’ и '%>' симболе, респективно. За покретање ЈСП-а потребан вам је веб сервер који садржи контејнер сервлета. На пример, можете користити Апацхе Томцат или Јетти .

ЈСП је моделиран из Јава сервлети . Јава сервлет се такође зове Џакарта Сервлет. Током времена рада, ЈСП-ови се трансформишу у сервлете; стога се називају сервлети. Генерално, ЈСП-ови су написани у текстуалним датотекама и уграђују ХТМЛ или КСХТМЛ код, ЈСП акције, КСМЛ елементе и ЈСП команде. ЈСП игра улогу корисничког интерфејса у Јава веб апликацијама. Све ЈСП имплицитне објекте, као што су захтев, сесија, конфигурација, излаз, одговор, апликација, страница и пагеЦонтект, креирају веб контејнер .

Можда сте наишли на обрасце веб страница. Сврха ових формулара је прикупљање података од различитих корисника. У овим обрасцима веб страница, ЈСП се користи за узимање података од корисника као улаз, распоређује ове податке у облику базе података и генерише веб странице. Примарни циљ ЈСП-а је да представи типове КСМЛ и ХТМЛ докумената. Али, такође може да представи документе у другим форматима, како користи ОутпутСтреам . Екстензија датотеке за ЈСП је .јсп, .јспк, .јспф и тип интернет медија је апликација/јсп.

Можете претворити било коју ХТМЛ датотеку у ЈСП датотеку променом екстензије датотеке .хтмл до .јсп . Након промене екстензије, користите ЈСП ознаке за додавање јава кода унутар ХТМЛ страница. Користећи ЈПС, програмери могу да генеришу динамички веб странице и веб странице независне од платформе. Хајде да видимо неке значајне карактеристике ЈСП-а.

Погледајте наше Водич за људски рачунарски интерфејс што ће бити добро за почетнике.

ЈСП карактеристике

ЈСП је један од погодних начина за креирање динамичког веб садржаја. Постоји неколико разлога зашто програмери бирају ЈСП за креирање неколико апликација. Ево неких ручно одабраних карактеристика Јакарта Сервер Пагес.

  • У ЈСП-у постоје акције и прилагођене ознаке. Стога је дужина кода ЈСП-а мала.
  • Једноставно је написати код у ЈСП-у, јер уграђује јава програмски језик у ХТМЛ или КСМЛ странице.
  • ЈСП омогућава програмерима да прикупе податке и ставе их у базу података или читају или запишу податке у базу података.
  • Ова технологија на страни сервера је веома флексибилна, преносива и робусна јер не зависи ни од једног претраживача или сервера.
  • Не постоји захтев да се ЈСП код компајлира изнова и изнова. Независан је од платформе и може се покренути на било којој конзоли без поновног компајлирања.
  • ЈСП укључује имплицитне објекте, сервлете и прилагођене ознаке. Стога програмери генеришу интерактивне веб странице у реалном времену.
  • Такође можемо да уградимо друге језике за скриптовање у ЈСП програме, као што су ЈаваСцрипт, Перл, ВБСцрипт, итд. Подразумевано, Јава је језик за скриптовање ЈСП-а.

Зашто користити Јава серверске странице?

Постоји неколико предности коришћења ЈСП-а. Они делују слично као код Цоммон Гатеваи Интерфаце (ЦГИ) . Веб сервери извршавају све програме који генеришу динамичке веб странице на заједничком интерфејсу мрежног пролаза. Када упоредимо ЈСП са ЦГИ, ЈСП је робуснији и нуди више предности програмерима. Ево неколико разлога који ће вам помоћи да разумете како је ЈСП бољи од ЦГИ.

  • Програмери могу да додају динамичке елементе у ХТМЛ користећи ЈСП. Ако користе ЦГИ, морају да направе засебну ЦГИ датотеку за динамичке елементе.
  • ЈСП-ови се компајлирају и касније покрећу на било којој платформи. С друге стране, ЦГИ учитава тумач и тумачи код кад год затражите веб страницу.
  • Можете користити ЈСП и сервлете заједно за праћење пословне логике. Шаблони Јава сервлета подржавају овај комбиновани модел ЈСП-а и сервлета.
  • ЈСП је апстракција на високом нивоу Јава сервлета. Ове странице су креиране на највишем нивоу интерфејса Јава сервлета. Дакле, они могу приступити свим примарним Јава интерфејсима, као што су ЈАКСП, ЈДБЦ, ЈНДИ, итд.
  • У МВЦ архитектури, ЈСП се користи као слој приказа.
  • Све апликације на нивоу предузећа се извршавају на платформи која се зове Јава ЕЕ. Јава ЕЕ платформа укључује ЈСП.

Предности ЈСП-а

ЈСП је ефикаснији и чвршћи од других технологија, као што су ЈаваСцрипт, статички ХТМЛ, Пуре Сервлет, итд. Овде ћемо видети колико је ЈСП предност у односу на друге технологије.

  • Једна од најпожељнијих предности ЈСП-а је што користи Јава програмски језик за писање свог динамичког дела. Не користи Висуал Басиц за писање кода. Друго, компатибилан је са другим оперативни система.
  • Користећи ЈСП, уграђујемо Јава код у ХТМЛ странице. Стога је лако модификовати ХТМЛ.
  • Он преузима податке из веб образаца и повезује их са базом података.
  • У веб апликацији, ЈСП одваја слој пословне логике од слоја презентације.
  • ЈСП користи програмски језик Јава. Дакле, он такође подржава концепт више нити у Јави.

Пре него што пређемо на упутство за ЈСП, ми ћемо вас упутити у подешавању ЈСП окружења. Поред тога, потребно вам је детаљно знање о Јава програмирању. Реците нам сада како да подесимо ЈСП окружење на вашој радној површини.

Како подесити ЈСП окружење?

Зашто морате да подесите ЈСП окружење? Да ли је потребно поправити ЈСП окружење на радној површини? Ако желите да креирате динамички веб садржај или веб апликације користећи ЈСП, морате да подесите ЈСП окружење. Ово окружење омогућава програмерима да пишу ЈСП програме, компајлирају их, извршавају на било којој платформи. Објаснићемо подешавање ЈСП окружења у следећим корацима:

Подешавање Јава развојног комплета

Први корак је да поправите Јава Девелопмент Кит (ЈДК) на радној површини. Јава Девелопмент Кит је неопходан јер уграђујемо Јава код у ХТМЛ код користећи ЈСП. Стога, ЈСП окружење захтева прво поправљање ЈДК окружења.

Прво, морате да преузмете Јава софтверски развојни комплет (СДК) са службеника компаније Орацле веб сајт

Након преузимања, отворите .еке датотеку и инсталирајте је и конфигуришите према датим упутствима. Касније ћете морати да подесите две променљиве окружења, ПАТХ и ЈАВА_ХОМЕ . Морате да подесите ПАТХ променљива на локацију радне површине јава , тј. јава_инсталл_дир/бин, анд тхе ЈАВА_ХОМЕ променљива на локацију на којој се налази јавац , тј. јава_инсталл_дир .

Ако имате Виндовс систем и инсталирали сте СДК датотеку на Ц:јдк1.5.0_20 локацију, додајте ову путању у Ц:аутоекец.бат фајл.

|_+_|

Ако сте инсталирали СДК датотеку на Виндовс НТ, 2000 или КСП систем, постоји другачији начин подешавања ПАТХ и ЈАВА_ХОМЕ променљиве окружења. Морате да кликнете десним тастером миша Мој компјутер , изаберите Својства , ицк он Напредно , и идите на Променљиве окружења . Овде морате подесити ПАТХ до локације на јава , тј. Цјдк1.5.0_20бин . Након промене ПАТХ, кликните на ок дугме.

Сада ћемо знати како да подесимо ПАТХ и ЈАВА_ХОЕМ променљиве окружења за УНИКС системе, као што је Соларис, Линук , итд. Претпоставимо да смо инсталирали СДК датотеку у /уср/лоцал/јдк1.5.0_20 . Морате додати доње две команде у .цсхрц фајл. Узмите у обзир да користимо Ц шкољку.

|_+_|

Ако користите алатке интегрисаног развојног окружења (ИДЕ), као што су Ецлипсе, Сун ОНЕ Студио, ЈБуилдер, итд., узмите узорак јава програма, компајлирајте га и покрените га да бисте проверили да ли ваш ИДЕ алат зна где је Јава инсталирана на вашем систему.

Након инсталирања Јава развојног комплета и подешавања ПАТХ и ЈАВА_ХОМЕ променљивих окружења, следећи корак је подешавање веб сервера.

Подешавање Томцат веб сервера

Данас је доступно неколико веб сервера који подржавају развој динамичких веб апликација путем ЈСП-а или Сервлета. Користићемо Томцат веб сервер, који је отвореног кода и бесплатан за коришћење. Томцат је скраћено име за Апацхе Томцат. Свако га може бесплатно користити и компатибилан је са неколико серверских технологија, као што су ЈаваСервер Пагес, Сервлети, ВебСоцкет и Јава Екпрессион Лангуаге. Јава код у Томцат-у се покреће на чиста Јава ХТТП веб сервер.

У Апацхе Томцат-у постоји неколико компоненти. Обавестите нас о свакој компоненти и њеној употреби.

  • Контејнер сервлета за Томцат је Катарина , који користи спецификације компаније Сун Мицросистем за ЈСП и сервлете. Корисничко име, лозинка и улоге корисника су присутни у елементу Реалм.
  • Компонента конектора за Томцат је Којот , који је компатибилан са ХТТП 1.1 протоколом.
  • ЈСП мотор у Томцату је Јаспер . Овај механизам анализира ЈСП текстуалну датотеку и компајлира је у Јава код.
  • Још једна компонента Томцат-а је Цлустер , који управља великим веб апликацијама.

Ево корака за преузимање Апацхе Томцат веб сервера.

  • Прво, морате да преузмете Апацхе Томцат са његовог званичног веб сајт

Морате преузети најновију верзију Апацхе Томцат-а.

  • Након преузимања софтвера, ставите преузети на одређену локацију. На пример, ако сте инсталирали Томцат на Виндовс систем, пронађите преузету датотеку у Ц:апацхе-томцат-5.5.29 . За Линук или Уник системе, поставите датотеку у /уср/лоцал/апацхе-томцат-5.5.29 .
  • Након што пронађете датотеку, креирајте ЦАТАЛИНА_ХОМЕ варијабла окружења. Подесите ову променљиву на локацију томцат датотеке, као што је горе поменуто, тј. за Виндовс системе, подесите променљиву на Ц:апацхе-томцат-5.5.29 , а за Линук системе, поставите променљиву на /уср/лоцал/апацхе-томцат-5.5.29 .

Постављање Апацхе Томцат-а је успешно обављено. Ако сте инсталирали Томцат на Виндовс систем, пратите било коју од две команде за покретање апликације Томцат.

|_+_|

или

|_+_|

Ако је ваша Томцат апликација инсталирана на Линук систему, можете укуцати било коју од доле наведених команди да бисте покренули Томцат апликацију.

|_+_|

Ор

|_+_|

Када успешно отворите апликацију Томцат, посетите хттп://лоцалхост:8080/ . Приметићете све подразумеване апликације присутне у Томцату. Можете да конфигуришете и покренете Томцат апликацију користећи документацију доступну на Томцат-овом званичном сајту.

Сада ћемо видети команде за затварање апликације Томцат на Виндовс и Линук системима. Постоје две команде за искључивање апликације Томцат на Виндовс системима. Они су следећи:

|_+_|

Ор

|_+_|

За Линус системе, можете пратити било коју од две команде за затварање Томцат апликације.

|_+_|

Ор

|_+_|

Подешавање ЦЛАССПАТХ

Разговараћемо о томе како да подесите ЦЛАССПАТХ за Виндовс и Линук системе. Ако сте инсталирали Томцат на Виндовс систем, пратите редове кода испод за подешавање ЦЛАССПАТХ-а.

|_+_|

Ако ваш Виндовс систем има НТ, 2000 или КСП верзије, потребно је да кликнете десним тастером миша на Мој компјутер , изаберите Својства , кликните на Напредно , и идите на Променљиве окружења . Овде морате да промените вредност ЦЛАССПАТХ и кликнете на ок дугме.

Ако сте инсталирали Томцат на Линук систему, додајте следећа два реда у .цсхрц датотеци. Узмите у обзир да користимо Ц шкољку.

|_+_|

Каква је архитектура ЈСП-а?

Поставили смо окружење за ЈСП. Користили смо Апацхе Томцат за покретање ЈСП страница. За обраду ЈСП страница постоји ЈСП мотор који се зове контејнер. У Апацхе Томцат-у постоји уграђени ЈСП мотор који се зове Јаспер . Стога, користећи Јаспер, програмери могу креирати ЈСП странице. Контејнер и веб сервер раде заједно да обезбеде окружење за извршавање или ЈСП и све друге услуге које ЈСП захтева.

ЈСП

Горњи дијаграм илуструје позицију ЈСП контејнера и ЈСП датотека иу било којој веб апликацији. Сада ћемо објаснити процес генерисања динамичке веб странице од стране веб сервера користећи ЈСП.

  • Прво, клијент или претраживач из Виндовс, Линук или мацОС система шаље ХТТП захтев веб серверу путем интернета, као што је приказано на дијаграму изнад.
  • Веб сервер има ЈСП мотор у себи, где се чувају све ЈСП датотеке. По пријему ХТТП захтева од клијента, веб сервер идентификује да је захтев за ЈСП страницу. Након тога, овај захтев преноси на ЈСП мотор. Веб сервер преноси ХТТП захтев на ЈСП страницу користећи датотеку са екстензијом .јсп или .хтмл или преко УРЛ-а.
  • Сада ЈСП прима ХТТП захтев који је клијент послао веб серверу. Знамо да је ХТТП захтев био за ЈСП страницу. Стога, машина учитава ту одређену страницу са диска и трансформише је у садржај сервлета. Другим речима, сав текст шаблона се мења у принтлн() изјаве. С друге стране, ова трансформација такође претвара све ЈСП странице у Јава код.
  • Тражена ЈСП страница се трансформише у сервлет. Стога, сервлет компајлира ЈСП мотор у извршну класу. Касније, ХТТП захтев од клијента се шаље сервлет машини од стране ЈСП машине.
  • И сервлет и ЈСП мотори су делови веб сервера. Сервлет машина извршава извршну класу коју је саставио ЈСП мотор и генерише излаз ХТМЛ формата. Постоји још једна компонента на веб серверу, ХТТП одговор. Сервлет машина шаље ХТМЛ излаз у ХТТП одговор.
  • На крају, веб сервер шаље ХТТП одговор претраживачу преко интернета у облику статичког ХТМЛ садржаја.

Стога, можете написати сервлет користећи ЈСП страницу са врло мало Јава програмских вештина. Из горње обраде ЈСП-а можемо закључити да ради исто као и сервлет, осим у фази превођења. Следи 3-слојну архитектуру, са веб сервером који подржава ЈСП страницу. Сада ћемо кренути ка животном циклусу ЈСП-а. Овде ћемо разговарати о томе како ЈСП датотека пролази кроз различите фазе и како је присутна у веб контејнеру.

Животни циклус ЈСП-а

Животни циклус било које компоненте почиње када је створена и завршава се када се уништи. Животни циклус ЈСП-а је сличан животном циклусу сервлета. Додатна фаза у ЈСП животном циклусу се користи за претварање и превођење ЈСП странице у сервлет. Животни циклус ЈСП-а може се дефинисати као креирање ЈСП странице, њено претварање у сервлет, животни циклус сервлета и уништавање ЈСП странице. Хајде да погледамо животни циклус ЈСП-а у детаље у наставку.

Животни циклус ЈСП-а укључује четири примарна пута како следи:

  1. Компилација
  2. Иницијализација
  3. Извршење
  4. Поспремити

Све ове четири путање животног циклуса ЈСП-а су сличне стазама животног циклуса сервлета. Доњи дијаграм илуструје горе наведене фазе.

ЈСП

Хајде да сада детаљно размотримо сваку фазу животног циклуса ЈСП-а и његов опис.

    ЈСП Цомпилатион

Када клијент или претраживач пошаљу ХТТП захтев за ЈСП страницу, ЈСП мотор присутан на веб серверу проверава да ли страница са захтевом мора да се компајлира или не. ЈСП механизам компајлира тражену страницу ако није претходно компајлиран или није преведен након измене странице. Компилација странице укључује три корака како следи:

  • ЈСП мотор анализира тражену страницу.
  • Затим трансформише ЈСП страницу у сервлет.
  • На крају, сервлет се компајлира.

Када се ЈСП страница трансформише у сервлет, .јсп датотека се конвертује у а .јава фајл. У време састављања, .јава датотека се затим конвертује у а .класа фајл.

    ЈСП иницијализација

Након што је компилација завршена, одвија се процес учитавања класа. ЈСП извор учитава класу сервлета, а ова класа сервлета се затим учитава у контејнер. Инстанца класе сервлета се креира у контејнеру. Након што се креира инстанца класе сервлета, јспИнит () метода се позива. Овај метод се позива само једном у животном циклусу ЈСП-а. За иницијализацију специфичну за ЈСП, морате заменити јспИнит () метод на следећи начин:

|_+_|

Када јспИнит () је инстанциран метод, морате да креирате везу са базом података и генеришете табеле претраживања у датотеци.

    ЈСП Екецутион

После јспИнит () метода је инстанцирана, тхе _јспСервице() користи се метод. Овај метод служи свим захтевима које клијент шаље веб серверу док се ЈСП не уништи.

Тхе _јспСервице() метода укључује два различита параметра, ХттпСервлетРекуест и ХттпСервлетРеспонсе . Овај метод је дефинисан на следећи начин:

|_+_|

Тхе _јспСервице() метода одговара на све захтеве клијента. Кад год клијент изда захтев, _јспСервице() метода се позива. Такође одговара на свих седам ХТТП захтева, нпр ДОБИТИ , ИЗБРИШИ , ПОШТА , СТАВИТИ , итд. Можете заменити _јспСервице() методом.

    ЈСП чишћење:

Последња фаза животног циклуса ЈСП-а је чишћење, где се ЈСП уништава. Контејнер уклања ЈСП и не користи га. Овај метод је исти као и метод уништавања сервлета. Када желите да затворите било коју датотеку у бази података или затворите везу са базом података, можете заменити јспДестрои() методом. Синтакса методе јспДестрои() је следећа:

|_+_|

Синтаксе у ЈСП-у

У овом сегменту научићемо синтаксу неколико ЈСП елемената, као што су акције, директиве, имплицитни објекти, коментари, изрази, итд. Овај део туторијала је веома значајан за почетнике у ЈСП домену. Следи кратак водич о ЈСП синтакси.

    Скрипта:

Скриптлет је један од робусних ЈСП елемената. Можемо да складиштимо Јава изјаве, методе, променљиве и изразе у скриптлету. Поред тога, такође може да складишти елементе било ког скриптног језика. Испод су елементи скриптлета Синтакса:

Синтакса:

|_+_|

Горња синтакса скриптлета се може написати као КСМЛ еквивалент у следећем формату:

|_+_|

Све ХТМЛ ознаке, ЈСП елементи и било који други текст се увек пише изван ознака Скриптлета. Видећемо директан пример ЈСП-а унутар ХТМЛ странице.

Пример:

|_+_|

Томцат сервер треба да буде инсталиран на вашој радној површини, а његово окружење треба да буде подешено за покретање овог програма. Пратите горње кораке за подешавање окружења за подешавање окружења Томцат сервера. Горњу датотеку ћемо сачувати као фирстјсп.јсп у Ц:апацхе-томцат7.0.2вебаппсРООТ фолдер. Након што сачувате датотеку, идите у претраживач и унесите УРЛ, хттп://лоцалхост:8080/фирстјсп.јсп. Горњи код ће приказати ЈСП брзи водич и ИП адресу вашег система.

    Декларације

Када су вам потребне променљиве или методе које ћете користити у Јава коду, ЈСП декларације их декларишу. Пре него што употребите било коју променљиву или метод у Јава коду, морате је декларисати користећи ЈСП декларацију. Синтакса ЈСП декларација је дата у наставку:

Синтакса:

|_+_|

Горња синтакса је написана у КСМЛ-у на следећи начин:

|_+_|

Сада, да видимо пример ЈСП декларација.

Пример:

|_+_|
    Израз

Израз у ЈСП садржи изразе скриптног језика. Ови изрази се могу проценити, трансформисати у стринг и додати у ЈСП датотеку, где се израз појављује. Можете користити ЈСП изразе са текстом, јер се може трансформисати у стринг. Није обавезно означавање ЈСП израза унутар ХТМЛ ознака. Једна важна ствар коју треба запамтити док пишете ЈСП израз је да они не користе тачку и зарез за завршетак израза.

Синтакса:

|_+_|

Горња синтакса се може уписати у њен КСМЛ еквивалент на следећи начин:

|_+_|

Следећи пример ће вам помоћи да схватите како да користите ЈСП израз у ХТМЛ-у.

|_+_|

Добићете излаз као тренутни датум и време на следећи начин:

|_+_|
    Коментари

Коментари су изјаве које нису за извршење. Намењени су само програмерима и читаоцима. У ЈСП-у контејнер игнорише коментаре. Ако желите да сакријете неки део ЈСП програма, можете да коментаришете тај део користећи ЈСП коментаре. Следеће је синтакса за ЈСП коментаре.

Синтакса:

|_+_|

Извршићемо доњи пример који у себи садржи ЈСП коментар.

Пример:

|_+_|

Резултат овог кода је дат у наставку.

|_+_|

Постоји много других начина у ЈСП-у за навођење коментара. Испод је шест различитих синтакса коментара и њихова употреба:

Горе наведено се назива ХТМЛ коментаром и претраживач игнорише знакове или речи написане унутар коментара.

    %>

подразумева статички литерал.

    <\%

Горњи коментар се такође односи на статички литерал.

Одређује двоструки наводник који се користи у атрибуту.

Одређује један наводник који се користи у атрибуту.

    Директиве

У ЈСП постоје три директиве, , , и . Тхе директива се користи за дефинисање атрибута странице, као што су страница са грешком, језик скрипти и захтеви за баферовање. Друга директива, , укључује одређену датотеку која се користи током фазе превођења животног циклуса ЈСП-а. Најзад, директива се користи за декларисање библиотеке картица и прилагођених радњи потребних на ЈСП страници. Када се користе ЈСП директиве, оне утичу на структуру класе сервлета. Ево синтаксе за ЈСП директиву.

|_+_|
    Акције

Акције су функције које су већ дефинисане. ЈСП акције се користе за контролу понашања машине сервлета. Ове акције додају конструкцију у КСМЛ код. Користећи ЈСП радње, можете динамички уметнути било коју датотеку, креирати ХТМЛ за Јава додатак или поново користити ЈаваБеанс компоненте. Испод је синтакса ЈСП акција.

Синтакса:

|_+_|

У наставку наводимо неке значајне ЈСП акције и њихов опис:

    јсп:усеБеан: Ова радња инстанцира или идентификује ЈаваБеан.јсп:гетПроперти: Можете користити акцију јсп:гетПроперти за додавање својства ЈаваБеан у излаз.јсп:сетПроперти: Ова радња поправља својство ЈаваБеан-а.јсп:инцлуде: Када корисник затражи страницу, ова радња додаје датотеку.јсп: додатак: Креира ознаку ОБЈЕЦТ или ЕМБЕД и код специфичан за прегледач за Јава Плугин.јсп:атрибут: Ова радња се користи за дефинисање атрибута КСМЛ елемента који је динамички дефинисан.јсп:напред: Ова радња води корисника на нову страницу.јсп:елемент: Када треба да динамички дефинишете КСМЛ елементе, користите ову акцију.јсп:текст: Ова радња омогућава корисницима да додају текст шаблона на ЈСП страницу.јсп:тело: Користи се за дефинисање тела КСМЛ елемента, које се дефинише динамички.
    Имплицитни објекти

Постоји девет имплицитних објеката у ЈСП-у, захтев, одговор, сесија, излаз, пагеЦонтект, конфигурација, апликација, страница и изузетак. Обавестите нас о сваком имплицитном објекту детаљно овде.

    захтев: Објекат захтева је ХттпСервлетРекуест, повезан са захтевом клијента.одговор: Објект одговора је ХттпСервлетРеспонсе, повезан са одговором сервера клијенту.седница: Овај објекат укључује ХттпСессион и повезан је са објектом захтева клијента.оут: Још један имплицитни објекат је ван. Користи се за слање излаза клијенту користећи ПринтВритер објекат.пагеЦонтект: Овај имплицитни објекат специфицира примену карактеристика специфичних за сервер. Један пример функције специфичне за сервер је ЈспВритерс.цонфиг: Овај објекат укључује објекат СервлетЦонфиг, који се користи са ЈСП страницом.апликација: СервлетЦонтект објекат ЈСП-а се користи са контекстом апликације.страна: Имплицитни објекат странице позива све методе које су дефинисане класом сервлета.Изузетак: Одређени ЈСП може приступити подацима изузетака користећи Екцептион објекат.
    Изјаве тока контроле

ЈСП такође користи изјаве тока контроле, изјаве за доношење одлука и петље. Овде ћемо видети како се израз за доношење одлука и петље користе у ЈСП програмирању.

Изјаве о доношењу одлука

Изјаве о доношењу одлука користе се за одлучивање о доступним изборима. Постоје два начина спровођења изјаве о доношењу одлука. Један користи наредбу иф_елсе, а други наредбу свитцх-цасе. Сваки иф и елсе услов је затворен у засебним скриптлетима. Хајде да посматрамо пример иф_елсе исказа у ЈСП-у.

Пример:

|_+_|

Овде смо декларисали „месец=3“ и навели услове у иф_елсе наредбама. Дакле, излаз ће бити:

|_+_|

Сада ћемо имплементирати свитцх...цасе изјаве. Код у наставку се прилично разликује од горњег кода, пошто су услови у коду испод наведени у једном скриптлету.

Пример:

|_+_|

Излаз:

|_+_|

Изјаве петље

Користимо петљу у програму за понављање одређене инструкције одређени број пута. Постоје три различите врсте петљи које подржава ЈСП, фор, вхиле и до…вхиле. Погледајмо примере сваког типа петље у наставку.

За петљу:

|_+_|

Излаз:

|_+_|

Док петља:

|_+_|

Излаз:

|_+_|
    Оператери у ЈСП

У ЈСП се користе сви логички и аритметички оператори које подржава Јава. Оператори се користе у ЈСП изразима за њихову процену. Оператор са највећим приоритетом се прво оцењује, а са најмањим приоритетом на крају. Навели смо све ЈСП оператере са највећим приоритетом први, други највећи приоритет следећи, итд.

    Постфик: Постоје три постфикс оператора „()“. '[]', и '.'. Сви ови оператори имају асоцијативност с лева на десно.Унари: Унарни оператори су „++“, „–“, „!“ и „~“ који имају асоцијативност са десне на леву страну.Мултипликативно: Постоје три мултипликативна оператора, „*“, „/“ и „%“. Имају асоцијативност с лева на десно.Додатак: Адитивни оператори су „+“ и „-“. Такође имају асоцијативност с лева на десно.Смена: Оператори померања, „>>“, „>>>“ и „<<’ have left to right associativity. Релациона: Постоје четири релациона оператора, ‘>’, ‘=’ и ‘<=’. All of them have left to right associativity. Једнакост: Оператори једнакости су „==“ и „!=“ који имају асоцијативност с лева на десно.Битвисе АНД: Битовски АНД оператор (&) има асоцијативност с лева на десно.Битвисе КСОР: Битни КСОР оператор (^) има асоцијативност с лева на десно.Битвисе ОР: Битни оператор ОР (|) има асоцијативност с лева на десно.Логично И: Логички АНД оператор (&&) има асоцијативност с лева на десно.Логично ОР: Логички ОР оператор (||) има асоцијативност с лева на десно.Условни: Условни оператор (?:) има десну налеву асоцијативност.Додељивање: Постоји неколико оператора додељивања, као што су =, +=, -+, *=, %=, /=, >>=,<<=, &=, ^=, and |=. All these operators have the right to left associativity. Параграф: Оператор зарез (‘) има асоцијативност с лева на десно.

ЈСП подржава пет различитих литерала или типова података, Боолеан, цео број, покретни зарез, Стринг и НУЛЛ. Као резултат, Булов литерал враћа или тачно или нетачно. Цео број се користи за одређивање броја, а Флоатинг-поинт се користи за декларисање децималних бројева у ЈСП програму. Тип података Стринг у ЈСП-у се разликује од оног у језику Јава. Тип података НУЛЛ специфицира нулту вредност.

ЈСП Акције

Видели смо какве су акције ЈСП. Такође смо видели све радње ЈСП-а у горњем брифу. Акције нису ништа друго до функције које регулишу понашање ЈСП мотора. Подсетимо се синтаксе ЈСП акције.

Синтакса:

|_+_|

ЈСП акције су јсп:инцлуде, јсп:усеБеан, јсп:сетПроперти, јсп:гетПроперти, јсп:форвард, јсп:елемент, јсп:плугин, јсп:аттрибуте, јсп:боди и јсп:тект. Све ове ЈСП акције имају две заједничке компоненте, ИД и Обим.

Компонента ИД се користи за јединствену идентификацију било које ЈСП акције. Ова компонента ЈСП акције се користи у ЈСП програму, дефинишући радњу коју треба извршити. Други елемент је опсег, који се користи за идентификацију животног циклуса ЈСП акције. Користећи ИД акције, одређује се њен животни век. Дакле, ИД елемент и елемент Сцопе су директно пропорционални. Компонента Обим може да има могуће вредности: страница, сесија, захтев или апликације.

Акција

Акција усеБеан у ЈСП-у прво проналази објекат који поседује атрибуте ИД и Сцопе. Ако објекат није пронађен, ова радња креира објекат за тај одређени ИД и атрибуте опсега. Следи начин на који се учи усеБеан класа.

|_+_|

Након учитавања класе Беан, можете користити друге две ЈСП акције, јсп:сетПроперти и јсп:гетПроперти . Ове акције се користе за модификацију и преузимање својстава беан-а. Акција усеБеан користи три различита атрибути , класа , тип , и беанНаме. Тхе класа атрибут додељује назив пакета беан-а. Можете користити тип елемент за одређивање типа променљиве за објекат на који се позивамо. На крају, беанНаме даје име беан-а. Метода инстантиате() специфицира име беан-а.

Акција

Акција се користи за подешавање својства Беан-а. Једини захтев за постављање својства беан-а је да беан мора бити прво дефинисан. Постоје два начина за коришћење акције на следећи начин:

Први начин је коришћење спољашње и после компоненте.

|_+_|

У горњој синтакси, чак и ако нови елемент није инстанциран или постојећи није пронађен, акција се извршава.

Други начин дефинисања акције је унутар компоненте јсп:усеБеан.

|_+_|

За разлику од првог начина коришћења , други начин се извршава само ако се пронађе постојећи или се инстанцира нови.

јсп:сетПроперти укључује четири различита атрибута, име , својство , вредност , и зауставити . Тхе име атрибут додељује име бину чије својство треба да се подеси. Још један атрибут, својство , дефинише својство. Тхе вредност је вредност додељена својству, и зауставити атрибут дефинише име параметра који је примио својство.

Акција

Видели смо да акција јсп:сетПроперти поставља вредност својства. Овде радња преузима вредност својства. Након преузимања вредности, трансформише је у стринг и додаје је резултату.

Акција има само два атрибута, име и својство. Тхе име атрибут дефинише име беан-а који садржи одређено својство, и својство атрибут дефинише име својства Беан-а. У наставку је синтакса акције:

|_+_|

Хајде да посматрамо један пример који садржи пример пасуљ. Сачувајте датотеку испод као ЕкамплеБеан.јава .

|_+_|

Након писања овог кода у ЕкамплеБеан.јава датотеку, компајлирајте је да бисте генерисали ЕкамплеБеан.цласс фајл. Сада, копирајте ЕкамплеБеан.цласс фајл у Ц:апацхе-томцат-7.0.2вебаппсВЕБ-ИНФцлассесацтион фолдер. Уверите се да сте такође подесили ЦЛАССПАТХ променљива.

Сада морате да креирате датотеку маин.јсп и у њу упишете код испод.

|_+_|

Излаз:

|_+_|

Акција

Када желите да убаците Јава елементе у ЈСП програм, користи се акција. Ова радња такође идентификује тип претраживача и додаје или ознаке у ЈСП програм. Претпоставимо да вам је потребна Јава компонента, чији додатак није доступан. Радња преузима додатак потребан за извршавање Јава компоненте, као што је Апплет или Беан. Постоји више атрибута у радњи додатка, што одговара ХТМЛ ознакама.

Испод је један директан пример акције.

|_+_|

У горњем коду можемо уочити нови елемент, . Када компонента не успе, овај елемент шаље кориснику низ грешке.

Акције, као , , и дефинише КСМЛ елементе. Сви КСМЛ елементи се генеришу у време извођења, а не у време компајлирања, тј. генеришу се динамички.

Акција

Када желите да прекинете радњу тренутне странице и проследите је на други ресурс, можете да користите поступак. Синтакса ове акције је дата на следећи начин:

|_+_|

Само један атрибут је повезан са радњом, тхе страна . Ова страница мора да садржи релативну УРЛ адресу ресурса, где се радња преноси. Ресурс може бити ЈСП страница, Јава сервлет и статичка страница.

Сада ћемо видети један једноставан пример акције. Направићемо две датотеке, дате.јсп и маин.јсп . Дате.јсп датотека ће приказати тренутни датум, а маин.јсп датотека садржи радњу.

дате.јсп датотеку

|_+_|

маин.јсп фајл

|_+_|

Морате да сачувате обе датотеке у РООТ директоријуму. Сада ћемо приступити маин.јсп датотеци за резултат. Неће приказати садржај из маин.јсп датотеке; уместо тога, приказаће садржај из дате.јсп датотеке, пошто је то прослеђена датотека.

Излаз:

|_+_|

Акција

Користећи акцију, можемо писати текстуалне шаблоне или документе у ЈСП странице. Испод је синтакса акције:

|_+_|

Овде шаблон садржи само текст и ЕЛ изразе. У шаблону не могу бити присутни никакви други елементи. У КСМЛ датотекама немојте користити израз као ${шта год > 0} , пошто овај знак није дозвољен или незаконит. Уместо тога, можете користити ${шта год гт 0} .

ЈСП директиве

У одељку за синтаксу, видели смо шта су директоријуми у ЈСП-у. Овде ћемо детаљно научити ЈСП директоријуме. Директиви су од суштинског значаја у ЈСП-у, јер командују и усмеравају ЈСП контејнер за руковање и регулисање специфичних елемената ЈСП обраде. Читава структура класе сервлета је погођена због ЈСП директива.

Синтакса:

|_+_|

Атрибути у директивама су облика кључ/вредност. У директивама може бити неколико атрибута, а сваки је одвојен зарезом. У горњој синтакси можемо уочити размак између '<%@’ и име директиве, и вредност и „%>.“ Ови простори су опциони. Нема бриге ако не додате размаке између њих. Видели смо изнад да постоје три ознаке директиве, , , и . Хајде да детаљно размотримо сваку од ових ознака директиве.

Директива о страници

Директива о страници даје упутства тренутној страници контејнера. Директиву странице можете укључити било где у свом ЈСП програму. Генерално, директива странице се користи на врху ЈСП странице. Синтакса директиве странице је:

|_+_|

Горња синтакса је написана у КСМЛ-у као што је дато у наставку:

|_+_|

Постоји 13 атрибута повезаних са директивом странице, као што је објашњено у наставку.

    аутоФлусх: Овај атрибут регулише понашање излазног бафера сервлета.еррорПаге: еррорПаге приказује УРЛ другог ЈСП-а, који избацује Јава непроверене изузетке времена извршавања.протеже: Генерисани сервлет треба да прошири наведену суперкласу.тампон: Атрибут бафера дефинише модел баферовања излазног тока.Тип садржаја: Овај атрибут дефинише шему за кодирање знакова.исЕррорПаге: Предлаже да ли је тренутна ЈСП страница УРЛ дефинисан атрибутом еррорПаге друге ЈСП странице.инфо: Одређује стринг, коме се може приступити методом гетСервлетИнфо().Језик: Овај атрибут означава програмски језик који се користи на ЈСП страницама.исЕЛИгноред: Одређује да ли ће ЕЛ израз на ЈСП страници бити игнорисан.увоз: Ова изјава указује на све пакете и класе потребне за додавање у ЈСП. У Јави, Јава наредба импорт наводи све класе и пакете потребне за укључивање у Јава програм.исТхреадСафе: Овај атрибут специфицира модел навоја сервлета.седница: Атрибут сесије проверава да ли ЈСП страница учествује у ХТТП сесији или не.исСцриптингЕнаблед: Овај елемент одређује да ли да се користе скриптни елементи на ЈСП страници.

Директива о укључивању

Током фазе превођења, укључити директива се користи за укључивање датотеке у ЈСП страницу. Ова директива такође треба да упути контејнеру да комбинује све спољне датотеке са ЈСП страницом. Како је директива странице укључена само на врху ЈСП странице, директива укључивања може се користити било где на страници.

Синтакса:

|_+_|

Горња синтакса је написана у КСМЛ-у на следећи начин:

|_+_|

Овде је име датотеке релативни УРЛ. Ако не дефинишете путању датотеке, компајлер претпоставља да је ваша датотека присутна на локацији ЈСП-а.

Именик таглиб

Последњи тип директоријума је таглиб . Овај директоријум пружа много информација о ЈСП страници, као што је скуп прилагођених ознака које се користе, локација библиотеке и проналажење прилагођених ознака са ЈСП странице. Испод је синтакса директоријума таглиб.

|_+_|

Горња синтакса се може написати у КСМЛ-у на следећи начин:

|_+_|

атрибут, мржња , специфицира локацију коју контејнер може да разуме, и префикс атрибут говори контејнеру о саставу прилагођених радњи.

ЈСП имплицитни објекти

ЈСП имплицитни објекти су Јава објекти. ЈСП контејнер омогућава програмерима да користе ове имплицитне објекте на свакој ЈСП страници без експлицитне декларације. Ови објекти се такође називају унапред дефинисане варијабле . Постоји девет различитих имплицитних објеката: захтев, одговор, излаз, сесија, апликација, страница, пагеЦонтект, конфигурација и изузетак.

Тхе рекуест Објецт

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

Одговор Објекат

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

Оут Објецт

Тхе јавак.сервлет.јсп.ЈспВритер објекат креира инстанцу под називом тхе оут објекат. ЈСП мотор може додати садржај одговору који захтева клијент. Тхе ЈспВритер објекат има скоро исте методе присутне у јава.ио.ПринтВритер класа. Постоје неке додатне методе у ЈспВритер објекат који се користи за баферовање и избацује ИОЕкцептион.

Објекат апликације

Тхе јавак.сервлет.СервлетЦонтект ствара инстанцу под називом ан апликација објекат, који делује као омотач за СервлетЦонтект објекат. Овај објекат представља ЈСП страницу. Када се ЈСП страница иницијализује, креира се објекат апликације. Овај објекат се уклања пошто је ЈСП страница уништена помоћу методе јспДестрои().

Објекат сесије

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

Објекат изузетка

Омот који садржи изузетак са претходне ЈСП странице назива се објекат изузетка. Када дође до стања грешке, објекат изузетка се користи за руковање њиме.

Страница Објекат

Објекат странице даје референцу на инстанцу странице. Представља целу ЈСП страницу. „ ово' објекат и објекат странице су синоними један за другог.

Објекат пагеЦонтект

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

Цонфиг Објецт

Тхе јавак.сервлет.СервлетЦонфиг ствара инстанцу под називом цонфиг објекат. Овај објекат делује као омотач за СервлетЦонфиг објекат. Корисници могу користити овај објекат за приступ параметрима иницијализације сервлета или ЈСП машине. Следећи метод је онај који се користи на ЈСП страници помоћу објекта цонфиг.

|_+_|

Захтев ЈСП клијента

Веб сервер добија много информација када претраживач или клијент затраже одређену веб страницу. Ове информације се не могу директно користити, јер путују кроз заглавље ХТТП захтева. ХТТП заглавље садржи неколико елемената који чувају информације када претраживач затражи веб страницу. Ови елементи су аццепт, аццепт-цхарсет, аццепт-енцодинг, аццепт-лангуаге, цоннецтион, аутхоризатион, цоокие, цонтент-ленгтх, иф-модифиед-синце, хост, реферрер, иф-немодифиед-синце и усер-агент.

ХТТПСервлетРекуест објекат

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

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

Пример захтева ХТТП заглавља

Овде ћемо видети један директан пример ХТТП захтева за заглавље. У примеру захтева ХТТП заглавља, применићемо гетХеадерНаме() метод за читање информација ХТТП заглавља. Он производи набрајање које садржи информације о ХТТП заглављу захтева. Метод хасмореЕлементс() одређује када треба да се заустави метода нектЕлемент().

Пример:

|_+_|

Упишите горњи код у маин.јсп датотеку и приступите јој за читање информација заглавља ХТТП захтева. Даће вам све информације о заглављу ХТТП захтева, као што су хост, веза, контрола кеша, кориснички агент, прихватање, језик прихватања и кодирање прихватања.

Одговор ЈСП сервера

Када клијент или претраживач затраже веб страницу, веб сервер одговара на ХТТП захтев који се зове одговор. Овај одговор укључује празан ред, документ, статусну линију и неко заглавље одговора. ХТТП одговор изгледа овако:

|_+_|

У горњем коду, ХТТП верзија је ХТТП/1.1 , 200 је статусни код, и ок је порука статусног кода. Постоји више заглавља одговора, чија верзија ХТТП/1.1 шаље веб сервер у прегледач. Ова заглавља одговора су контрола кеша, дозволи, диспозиција садржаја, веза, дужина садржаја, кодирање садржаја, језик садржаја, истиче, тип садржаја, локација, последња измена, сет-колачић, освежавање и покушај после .

Објекат ХттпСервлетРеспонсе

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

    Стринг енцодеУРЛ(стринг урл): Овај метод се користи за кодирање одређене УРЛ адресе која укључује ИД сесије. Ако је кодирање потребно, овај метод шаље УРЛ без промене.Стринг енцодеРедирецтУРЛ(стринг урл): УРЛ укључен у функцију сендРедирецт је кодиран. Ако кодирање није потребно, УРЛ остаје непромењен.боолеан исЦоммиттед(): Ова функција даје логичку вредност, специфицирајући да ли је одговор урезан.боолеан цонтаинсХеадер (име стринга): Такође резултира логичком вредношћу која специфицира да ли је постављено заглавље одговора са именом.воид аддХеадер (име стринга, вредност стринга): Ова функција укључује заглавље одговора са његовим именом и вредношћу.воид аддДатеХеадер(име стринга, дуг датум): Такође укључује ново заглавље одговора са његовим именом и датумом.воид флусхБуффер(): Ова функција насилно уписује садржај присутан у баферу клијенту.воид аддИнтХеадер(име стринга, вредност инт): Ова функција укључује ново заглавље одговора са његовим именом и целобројном вредношћу.воид ресетБуффер(): Уклања или брише сав садржај из основног бафера, али не брише заглавља и статусне кодове.воид ресет(): Ова функција уклања или брише све податке присутне у баферу, заједно са статусним кодом и заглављима.воид сендЕррор(инт сц, стринг мсг): резултира тиме да порука о грешци има одређени статус и шаље се клијенту.воид сендЕррор(инт сц): Ова функција такође преноси поруку о грешци клијенту са специфичним статусним кодом брисањем података из бафера.воид сетБуфферСизе(инт сизе): Ова функција фиксира величину бафера за тело одговора.воид сетИнтХеадер(име стринга, вредност инт): Ова функција поставља заглавље одговора са његовим именом и специфичном целобројном вредношћу.

Пример одговора ХТТП заглавља

Ево примера одговора ХТТП заглавља, који користи функцију сетИнтХеадер() за подешавање Рефресх заглавља.

Пример:

|_+_|

Сачувајте горњи код са именом датотеке, маин.јсп . Након сваке 4 секунде, приказује се тренутно време система, као што је приказано испод.

Излаз:

|_+_|

ХТТП статусни код у ЈСП-у

ХТТП захтев и ХТТП одговор имају исту структуру као што следи:

  • Прво, укључује статусну линију, враћање каријеса (ЦРЛФ) и увод у линију. Лине Феед подразумева нови ред.
  • Следеће је нула или више редова заглавља и враћање каријеса (ЦРЛФ).
  • Затим долази празан ред, ЦРЛФ.
  • На крају, тело поруке је опционо. Тело поруке може да садржи излаз упита, податке упита или датотеку.

У горњем одељку видели смо како изгледа заглавље одговора.

Веб сервер враћа неке ХТТП кодове и њихове одговарајуће поруке клијенту. Ови ХТТП статусни кодови и њихове поруке описани су у следећем одељку.

Код Порука
100Настави
101Протоколи за пребацивање
200ок
201Цреатед
202Прихваћено
203Неауторитативне информације
204Без садржаја
205Ресетујте садржај
206Делимичан садржај
300Вишеструки избори
301Трајно се креће
302Нашао
303Види Остало
304Није измењено
305Користи проки
306Неискоришћено
307Привремено преусмеравање
400Лош захтев
401Неовлашћено
402плаћање је обавезно
403Забрањено
404Није пронађен
405Метод није дозвољен
406Није прихватљива
407Потребна је проки аутентикација
408Рекуест Тимеоут
409Сукоб
410Отишла
411Обавезна дужина
412Предуслов није успео
413Ентитет захтева је превелик
414Захтев-урл предугачак
415Неподржани тип медија
417Очекивање није успело
500Интерна грешка сервера
501Не спроводи
502Бад Гатеваи
503Услуга није доступна
504Гатеваи Тимеоут
505ХТТП верзија није подржана

Три различите методе се користе за постављање ХТТП статусног кода као што је дато у наставку:

    публиц воид сетСтатус(инт статусЦоде): Поставља статусни код, који користи целобројну вредност за статусни код као аргумент.публиц воид сендРедирецт (стринг урл): Ова функција креира одговор са кодом 302. Такође генерише заглавље локације, које наводи УРЛ адресу новог документа.публиц воид сендЕррор(инт код, стринг порука): Ова функција шаље 404 ХТТП статусни код претраживачу са кратком поруком.

Видећемо један једноставан пример, који ће клијенту приказати статусни код грешке 407.

Пример:

|_+_|

Горњи код ће приказати 407 ХТТП статусни код са Неед Аутхентицатион порука.

Обрада образаца у ЈСП-у

Много пута морамо да пренесемо податке из претраживача на веб сервер и на крају у програм. Постоје две методе, ГЕТ и ПОСТ које користи претраживач за пренос ових података на веб сервер. Четири методе се користе за читање података помоћу ЈСП-а, гетПараметер() , гетПараметерВалуес() , гетПараметерНамес() , и гетИнпутСтреам() .

Метода ГЕТ

Метода ГЕТ се користи за преношење кодираних корисничких информација и њихово додавање у захтев странице. Кодиране информације о кориснику и захтев за страницу одвојени су симболом „?“. Овај метод је подразумевани за пренос корисничких информација на веб сервер из претраживача. Враћа стринг који ће бити присутан у Локација: кутија претраживача. Ако имате поверљиве податке, као што су лозинке, немојте користити метод ГЕТ.

Пример ГЕТ методе користећи УРЛ

Хајде да креирамо УРЛ који ће проследити две различите вредности програму ГетУРЛФорм користећи ГЕТ метод.

|_+_|

Написаћемо доњи код у датотеку маин.јсп. Користили смо методе гетПараметер() за читање података помоћу ЈСП-а.

Пример:

|_+_|

Излаз:

|_+_|

Руковање колачићима

Шта су колачићи? Колачићи су текстуалне датотеке присутне на радној површини клијента и користе се у сврхе праћења. ЈСП подржава ХТТП колачиће. Овде ћемо видети анатомију ХТТП колачића, како поставити или ресетовати колачић и методе у колачићима.

Анатомија колачића

Колачић је увек присутан у ХТТП заглављу. Када ЈСП постави колачић у ХТТП заглавље, он има следећу структуру.

|_+_|

У Сет-Цоокие заглавље изнад, можете посматрати име-вредност пар, датум у ГМТ, а пут , и тхе домена . Овај пар име-вредност је присутан у УРЛ формату. Још један елемент у горњем колачићу је истиче , који говори претраживачу да заборави овај колачић након наведеног датума и времена.

Методе колачића

Следе неке значајне методе везане за колачиће, заједно са њиховим описима.

    јавни стринг гетДомаин(): Ова функција преузима домен колачића.публиц воид сетДомаин(стринг образац): Помоћу ове функције можете подесити домен за колачић.публиц инт гетМакАге(): Дохваћа максималну старост колачића. Старост је представљена у секундама.публиц воид сетМакАге(инт екпири): Ова функција ће поставити временско трајање пре него што колачић истекне.јавни стринг гетВалуе(): преузима вредност колачића.јавни стринг гетНаме(): Дохваћа име колачића. Не можете променити назив колачића након његовог креирања.публиц воид сетВалуе(Стринг невВалуе): Ова функција поправља вредност колачића.јавни стринг гетПатх(): Резултат је путања повезана са колачићем.публиц воид сетПатх(Стринг ури): Ова функција поставља путању за колачић.јавни стринг гетЦоммент(): Резултат је коментар који наводи сврху или употребу колачића. Ако колачић нема коментар, враћа НУЛЛ.публиц воид сетСецуре (боолеан флаг): Одређује логичку вредност која дефинише да ли да се колачић пошаље преко шифроване везе.публиц воид сетЦоммент (намена стринга): Ова функција поставља коментар за колачић одређујући његову сврху.

Како подесити колачић?

Постоје три једноставна метода за постављање колачића. Ове методе су објашњене у наставку:

  1. Прво, креирајте објекат колачића. Позовите конструктор колачића са именом колачића и одговарајућом вредношћу. И име и вредност су представљени у стрингу.
|_+_|

Приликом креирања колачића, морате запамтити да у називу и вредности не би требало да постоје празни размаци или посебни симболи.

  1. Након креирања колачића, сада ћемо поставити максималну старост за њега користећи сетМакАге функција.
|_+_|

Горња функција поставља максималну старост колачића од 24 сата.

  1. На крају, користите респонсе.аддЦоокие да додате колачић у заглавље ХТТП одговора.
|_+_|

Закључак

ЈаваСервер Пагес или Јакарта Сервер Пагес (ЈСП) је технологија која омогућава програмерима да креирају динамички садржај или веб странице. Постоји више напредних предности ЈСП-а, јер је једноставан за одржавање, захтева мање кода од сервлета и нуди брз развој. Овај чланак је брзи водич за учење ЈСП-а за почетнике.

Покрили смо све аспекте ЈСП-а који су потребни програмерима почетницима да науче. Пре покретања било ког ЈСП програма, прво подесите Јава окружење и Томцат путању класе. Ево комплетног упутства о свим битним ЈСП елементима.

Имамо а Кратки водич за теорију графова који детаљно говори о свим детаљима везаним за Теорију графова.