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

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

Anonim

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

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

Колико имплицитних објеката је доступно у ЈСП-у?

У контејнеру је доступно 9 врста имплицитних објеката:

  1. напоље
  2. захтев
  3. одговор
  4. цонфиг
  5. апликација
  6. седница
  7. пагеЦонтект
  8. страна
  9. изузетак

Хајде да проучавамо један по један

напоље

  • Оут је један од имплицитних објеката који записује податке у међуспремник и шаље излаз клијенту као одговор
  • Оут објекат нам омогућава приступ излазном току сервлета
  • Оут је објекат класе јавак.сервлет.јсп.јспВритер
  • Док радимо са сервлетом, потребан нам је објекат писача

Пример:

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни гуру ЈСП1 <боди><% инт нум1 = 10; инт нум2 = 20;оут.принтлн ("нум1 је" + нум1);оут.принтлн ("нум2 је" + нум2);%>

Објашњење кода:

Цоде Лине 11-12 - оут користи се за испис у излазни ток

Када извршимо горњи код, добијамо следећи излаз:

Излаз:

  • У излазу добијамо вредности нум1 и нум2

Захтев

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

Пример:

Имплицит_јсп2.јсп (образац из којег се захтев шаље гуру.јсп)

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни гуру из ЈСП2 <боди><форм ацтион = "гуру.јсп"><инпут типе = "тект" наме = "усернаме"><инпут типе = "субмит" валуе = "субмит">

Гуру.јсп (где се предузима радња)

Објашњење кода:

Линија кода 10-13: У имплицит_јсп2.јсп (образац) се шаље захтев, стога се променљива корисничко име обрађује и шаље гуру.јсп што је акција ЈСП-а.

Гуру.јсп

Линија кода10-11: Ради се о акцији јсп где се захтев обрађује, а корисничко име преузима из обрасца јсп.

Када извршите горњи код, добићете следећи излаз

Излаз:

Када напишете тест и кликнете на дугме за слање, добићете следећи излаз „Тест добродошлице“.

Одговор

  • „Одговор“ је инстанца класе која имплементира интерфејс ХттпСервлетРеспонсе
  • Контејнер генерише овај објекат и као параметар прелази на методу _јспсервице ()
  • Спремник ће за сваки захтев створити "објект одговора".
  • Представља одговор који се може дати клијенту
  • Имплицитни објекат одговора користи се за тип садржаја, додавање колачића и преусмеравање на страницу одговора

Пример:

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни Гуру ЈСП4 <боди><% респонсе.сетЦонтентТипе ("тект / хтмл"); %>

Објашњење кода:

Линија кода 11: У објекту одговора можемо поставити тип садржаја

Овде постављамо само тип садржаја у објекту одговора. Дакле, за ово нема резултата.

Цонфиг

  • „Цонфиг“ је типа јава.сервлет.сервлетЦонфиг
  • Креира га контејнер за сваку јсп страницу
  • Користи се за добивање параметра иницијализације у веб.кмл

Пример:

Веб.кмл (наводи име и мапирање сервлета)

Имплицит_јсп5.јсп (добијање вредности имена сервлета)

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни Гуру ЈСП5 <боди><% Стринг име сервлет = цонфиг.гетСервлетНаме ();оут.принтлн ("Име сервлета је" + име сервлета);%>

Објашњење кода:

У веб.кмл

Редак 14-17: У веб.кмл имамо мапирање сервлета у класе.

Имплицит_јсп5.јсп

Линија кода 10-11: Да бисмо добили име сервлета у ЈСП-у, можемо користити цонфиг.гетСервлетНаме, који ће нам помоћи да добијемо име сервлета.

Када извршите горњи код, добићете следећи излаз:

Излаз:

  • Име сервлета је „ГуруСервлет“ јер је име присутно у веб.кмл

Апликација

  • Објекат апликације (линија кода 10) је инстанца јавак.сервлет.СервлетЦонтект и користи се за добијање информација о контексту и атрибута у ЈСП.
  • Објект апликације креира контејнер један по апликацији, када се апликација постави у употребу.
  • Објекат Сервлетцонтект садржи скуп метода које се користе за интеракцију са контејнером сервлета. Можемо пронаћи информације о контејнеру сервлета

Пример:

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Гуру имплицитни ЈСП6 <боди><% апплицатион.гетЦонтектПатх (); %>

Објашњење кода:

  • У горе наведеном коду, атрибут апликације помаже да се добије пут контекста ЈСП странице.

Седница

  • Сесија садржи објект „хттпсессион“ (кодни ред 10).
  • Објекат сесије се користи за добијање, постављање и уклањање атрибута у опсег сесије, а такође се користи и за добијање информација о сесији

Пример:

Имплицит_јсп7 (атрибут је постављен)

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни ЈСП <боди><% сессион.сетАттрибуте ("корисник", "ГуруЈСП"); %><а хреф="имплицит_јсп8.јсп"> Кликните овде да бисте добили корисничко име 

Имплицит_јсп8.јсп (гетАттрибуте)

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> имплицитни Гуру ЈСП8 <боди><% Стринг наме = (Стринг) сессион.гетАттрибуте ("усер");оут.принтлн ("Корисничко име је" + име);%>

Објашњење кода:

Имплицит_јсп7.јсп

Линија кода 11: постављамо корисника атрибута у променљиву сесије и та вредност се може преузети из сесије у зависности од тога који се јсп од ње позива (_јсп8.јсп).

Редак кода 12: Позивамо други јсп на хреф у којем ћемо добити вредност за корисника атрибута која је постављена.

Имплицит_јсп8.јсп

Линија кода 11: Добијамо вредност корисничког атрибута из објекта сесије и приказујемо ту вредност

Када извршите горњи код, добићете следећи излаз:

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

Излаз:

  • Када кликнемо на везу дату у имплицит_јсп7.јсп, тада смо преусмерени на другу јсп страницу, тј. (_Јсп8.јсп) страницу и добијамо вредност из објекта сесије корисничког атрибута (_јсп7.јсп).

пагеЦонтект:

  • Овај објекат је типа пагецонтект.
  • Користи се за добијање, постављање и уклањање атрибута из одређеног опсега

Опсези су 4 врсте:

  • Страна
  • Захтев
  • Седница
  • Апликација

Пример:

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни Гуру ЈСП9 <боди><% пагеЦонтект.сетАттрибуте ("студент", "гурустудент", пагеЦонтект.ПАГЕ_СЦОПЕ);Име низа = (Низ) пагеЦонтект.гетАттрибуте ("студент");оут.принтлн ("име ученика је" + име);%>

Објашњење кода:

Линија кода 11: атрибут постављамо помоћу објекта пагеЦонтект и он има три параметра:

  • Кључ
  • Вредност
  • Обим

У горњем коду кључ је студент, а вредност је „гурустудент“, док је опсег обим странице. Овде је опсег „страница“ и може се добити само користећи опсег странице.

Редак кода 12: Вредност атрибута добијамо помоћу пагеЦонтект

Када извршите горњи код, добићете следећи излаз:

Излаз:

  • Излаз ће исписати „име ученика је гурустудент“.

Страна

  • У имплицитној променљивој странице налази се тренутно извршени објекат сервлета за одговарајући јсп.
  • Делује као овај објекат за тренутну јсп страницу.

Пример:

У овом примеру користимо објект странице да бисмо добили име странице методом тоСтринг

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни Гуру ЈСП10 <боди><% Стринг име_стране = паге.тоСтринг ();оут.принтлн ("Име странице је" + име странице);%>

Објашњење кода:

Линија кода 10-11: У овом примеру покушавамо да користимо методу тоСтринг () објекта странице и покушавамо да добијемо назив низа ЈСП странице.

Када извршите код добијате следећи излаз:

Излаз:

  • Излаз је име низа изнад јсп странице

Изузетак

  • Изузетак је имплицитни објекат класе која се може бацити.
  • Користи се за руковање изузецима у ЈСП-у.
  • Објекат изузетка може се користити само на страницама са грешкама.

    Пример:

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1" исЕррорПаге = "труе"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Имплицитни Гуру ЈСП 11 <боди><% инт [] нум1 = {1,2,3,4};оут.принтлн (нум1 [5]);%><% = изузетак%>

Објашњење кода:

Кодна линија 10-12 - Има низ бројева, тј. Нум1 са четири елемента. У излазу покушавамо да одштампамо пети елемент низа из нум1, који није декларисан на листи низова. Дакле, користи се за добијање објекта изузетка из јсп-а.

Излаз:

Добијамо АрраиИндекОфБоундсЕкцептион у низу где добијамо нум1 низ петог елемента.