Шта је ЈСП имплицитни објекат?
- ЈСП имплицитни објекти се креирају током фазе превођења ЈСП-а на сервлет.
- Ови објекти се могу директно користити у скриптама које иду у методу услуге.
- Контејнер их аутоматски креира и може им се приступити помоћу објеката.
Колико имплицитних објеката је доступно у ЈСП-у?
У контејнеру је доступно 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 низ петог елемента.