Шта су ЈСП директиве?
- ЈСП директиве су поруке ЈСП контејнеру. Они пружају глобалне информације о целој ЈСП страници.
- ЈСП директиве се користе за давање посебних упутстава контејнеру за превод ЈСП-а у код сервлета.
- У фази животног циклуса ЈСП-а, ЈСП се мора претворити у сервлет који је фаза превођења.
- Они дају упутства контејнеру о начину руковања одређеним аспектима ЈСП обраде
- Директиве могу имати много атрибута зарезом одвојене као парови кључ / вредност.
- У ЈСП-у је директива описана у ознакама <% @%>.
Синтакса Директиве:
<%@ directive attribute %>
Постоје три врсте директива:
- Директива о страници
- Укључи директиву
- Таглиб директива
Свака од њих је детаљно описана у наставку са примерима:
У овом упутству ћете научити -
- ЈСП Директива странице
- ЈСП Укључи директиву
- Директива ЈСП Таглиб
ЈСП Директива странице
Синтакса директиве Паге:
<%@ page… %>
- Пружа атрибуте који се примењују на целу ЈСП страницу.
- Дефинише атрибуте који зависе од странице, попут језика скриптирања, странице грешке и захтева за међуспремником.
- Користи се за давање упутстава контејнеру који се односи на тренутну ЈСП страницу.
Следи листа атрибута повезаних са директивом странице:
- Језик
- Продужава
- Увоз
- Тип садржаја
- инфо
- седница
- исТхреадСафе
- аутофлусх
- тампон
- ИсЕррорПаге
- пагеЕнцодинг
- еррорПаге
- исЕЛИгоноред
Више детаља о сваком атрибуту
- језик : дефинише програмски језик (основни језик) који се користи на страници.
Синтакса језика:
<%@ page language="value" %>
Овде је вредност програмски језик (основни језик)
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Објашњење кода: У горњем примеру, вредност језика атрибута је Јава која је основни језик у овом случају. Стога би се код у ознакама израза компајлирао помоћу јава компајлера.
- Проширује : Овај атрибут се користи за проширивање (наслеђивање) класе као што то чини ЈАВА
Синтакса ектендс:
<%@ page extends="value" %>
Овде вредност представља класу из које мора да се наследи.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Објашњење кода: У горњем коду ЈСП проширује ДемоЦласс који се налази у пакету за тестирање и проширит ће све функције класе.
- Увоз : Овај атрибут је најчешће кориштен атрибут у атрибутима директиве странице. Користи се да каже контејнеру да увози друге јава класе, интерфејсе, енуме итд. Док генерира код сервлета. Сличан је увозу наредби у јава класама, сучељима.
Синтакса увоза :
<%@ page import="value" %>
Овде вредност означава класе које треба увести.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Објашњење кода:
У горњи код увозимо класу Дате из пакета јава.утил (све класе услужних програма) и може користити све методе следеће класе.
- цонтентТипе :
- Он дефинише шему кодирања знакова, односно користи се за подешавање типа садржаја и скупа знакова одговора
- Подразумевани тип цонтентТипе је „тект / хтмл; цхарсет = ИСО-8859-1“.
Синтакса цонтентТипе:
<%@ page contentType="value" %>
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Објашњење кода:
У горњем коду, тип садржаја је постављен као тект / хтмл, поставља кодирање знакова за ЈСП и за генерисану страницу одговора.
- инфо
- Дефинише низ којем се може приступити методом гетСервлетИнфо ().
- Овај атрибут се користи за постављање описа сервлета.
Синтакса информација:
<%@ page info="value" %>
Овде вредност представља информације сервлета.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Објашњење кода:
У горенаведеном коду, низ "Гуру Дирецтиве ЈСП" може се добити помоћу интерфејса сервлета помоћу гетСервлетИнфо ()
- Седница
- ЈСП страница подразумевано креира сесију.
- Понекад нам није потребна сесија да би се креирала у ЈСП-у, па у том случају можемо да поставимо овај атрибут на фалсе. Подразумевана вредност атрибута сесије је тачна и сесија се креира.
Када је постављено на фалсе, тада можемо указати компајлеру да не креира сесију по дефаулту.
Синтакса сесије:
<%@ page session="true/false"%>
У овом случају атрибут сесије може бити постављен на труе или фалсе
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Објашњење кода:
У горњем примеру, атрибут сессион је постављен на "фалсе", па показујемо да не желимо да креирамо ниједну сесију у овом ЈСП-у
- исТхреадСафе:
- Дефинише модел навоја за генерисани сервлет.
- Означава ниво заштите нити имплементиран на страници.
- Његова подразумевана вредност је труе, тако истовремено
- Овај атрибут можемо користити за имплементацију интерфејса СинглеТхреадМодел у генерисани сервлет.
- Ако га поставимо на фалсе, он ће применити СинглеТхреадМодел и моћи ће приступити било којим дељеним објектима и може произвести недоследност.
Синтакса исТхреадСафе:
<% @ page isThreadSafe="true/false" %>
Овде труе или фалсе представља ако је синхронизација тада постављена као труе и постављена је као фалсе.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Објашњење кода:
У горњем коду, исТхреадСафе је постављено на „труе“, па ће се синхронизација извршити и може се користити више нити.
- АутоФлусх:
Овај атрибут наводи да би ме успремљени излаз требало аутоматски испрати или не, а задата вриједност тог атрибута је истинита.
Ако је вредност постављена на фалсе, бафер се неће аутоматски испрати и ако је пун, добићемо изузетак.
Када је међуспремник никакав, онда је фалсе нелегитиман и нема међуспремника, па ће се аутоматски испрати.
Синтакса аутоФлусх:
<% @ page autoFlush="true/false" %>
Овде тачно / нетачно представља да ли је потребно баферисање или не
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Објашњење кода:
У горе наведеном коду, аутоматско испирање је постављено на фалсе и стога се баферисање неће извршити и ручно је испрало излаз.
- Пуфер:
- Коришћењем овог атрибута излазни објекат одговора може бити баферован.
- Помоћу овог атрибута можемо дефинисати величину међуспремника који треба обавити, а подразумевана величина је 8КБ.
- Усмерава сервлет да напише ме успремник пре писања у објекат одговора.
Синтакса бафера:
<%@ page buffer="value" %>
Овде вредност представља величину бафера који треба дефинисати. Ако нема међуспремника, тада можемо писати као ниједан, а ако не поменемо ниједну вредност, подразумевана вредност је 8КБ
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Објашњење кода:
У горњем коду величина бафера је наведена као 16 КБ, при чему би бафер био те величине
- исЕррорПаге:
- Означава да ће ЈСП страница која има еррорПаге бити проверена на другој ЈСП страници
- Свака ЈСП датотека декларисана атрибутом „исЕррорПаге“ је тада способна да прими изузетке са других ЈСП страница које имају странице са грешкама.
- Изузеци су доступни само на овим страницама.
- Подразумевана вредност је фалсе.
Синтакса исЕррорПаге:
<%@ page isErrorPage="true/false"%>
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Објашњење кода:
У горњем коду исЕррорПаге је постављено као тачно. Стога ће проверити да ли сви други ЈСП-ови имају скуп својстава еррорПаге (описан у следећем атрибуту) и да ли могу да обрађују изузетке.
- ПагеЕнцодинг:
Подразумевана вредност је наведена као „ИСО-8859-1“ ако није наведена ниједна друга.
Синтакса пагеЕнцодинг:
<%@ page pageEncoding="vaue" %>
Овде вредност специфицира вредност знака за ЈСП
Пример:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Објашњење кода:
У горњем коду „пагеЕнцодинг“ је постављен на подразумевани скуп знакова ИСО-8859-1
- еррорПаге:
Синтакса еррорПаге:
<%@ page errorPage="value" %>
Овде вредност представља вредност грешке ЈСП странице
Пример:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Објашњење кода:
У горњем коду, за руковање изузецима имамо еррроХандлер.јсп
- исЕЛИгноред:
- ИсЕЛИгноред је атрибут заставице где морамо да одлучимо да ли ћемо игнорисати ЕЛ ознаке или не.
- Његов тип података је јава енум, а подразумевана вредност је фалсе, тако да је ЕЛ подразумевано омогућен.
Синтакса исЕЛИгноред:
<%@ page isELIgnored="true/false" %>
Овде тачно / нетачно представља вредност ЕЛ било да га треба занемарити или не.
Пример:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Објашњење кода:
У горњем коду, исЕЛИгноред је тачно и стога се језик за изражавање (ЕЛ) овде занемарује.
У доњем примеру користимо четири атрибута (кодна линија 1-2)
Пример са четири атрибута
<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл;" пагеЕнцодинг = "ИСО-8859-1"исЕЛИгноред = "фалсе"%><% @ паге импорт = "јава.утил.Дате"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Дирецтиве Гуру ЈСП1 титле>хеад><боди><а> Датум је: а><% = нев јава.утил.Дате ()%>боди>хтмл>
Објашњење кода:
Линија кода 1-2: Овде смо дефинисали четири атрибута, тј
- Језик: Постављен је као Јава као програмски језик
- цонтентТипе: постављен као тект / хтмл како би компајлеру рекао да хтмл мора бити формат
- пагеЕнцодинг: подразумевани скуп знакова је постављен у овом атрибуту
- исЕЛИгноред: Ознака израза је лажна, стога се не занемарује
Линија 3: Овде смо користили атрибут импорт, а он увози „Класу датума“ која је из Јава утил пакета, а ми покушавамо да прикажемо тренутни датум у коду.
Када извршите горњи код, добићете следећи излаз
Излаз :
- Датум је: Тренутни датум помоћу методе датума за класу датума
ЈСП Укључи директиву
- ЈСП „укључи директиву“ (код 8) користи се за укључивање једне датотеке у другу датотеку
- Ова укључена датотека може бити ХТМЛ, ЈСП, текстуалне датотеке итд.
- Такође је корисно у креирању шаблона са корисничким приказима и разбијањем страница на акције заглавља и подножја и бочне траке.
- Садржи датотеку током фазе превода
Синтакса укључују директиву:
<%@ include… .%>
Пример:
Дирецтиве_јсп2.јсп (главна датотека)
<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><% @ инцлуде филе = "директива_хеадер_јсп3.јсп"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Гуру директива ЈСП2 титле>хеад><боди><а> Ово је главна датотека а>боди>хтмл>
Дирецтиве_хеадер_јсп3.јсп (која је укључена у главну датотеку)
<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1">хеад><боди><а> Датотека заглавља: а><% инт цоунт = 1; цоунт ++;оут.принтлн (цоунт);%>:боди>хтмл>
Објашњење кода:
Дирецтиве_јсп2.јсп:
Линија кода 3: У овом коду користимо ознаке укључивања где укључујемо датотеку Дирецтиве_хеадер_јсп3.јсп у главну датотеку (_јсп2.јсп) и добија излаз и главне и укључене датотеке.
Дирецтиве_хеадер_јсп3.јсп:
Линија кода 11-12: Узели смо број променљивих иницијализован на 1, а затим смо га повећали. Ово ће дати излаз у главној датотеци као што је приказано доле.
Када извршите горњи код, добићете следећи излаз:
Излаз:
- Резултат је датотека заглавља: 2: Ово је главна датотека
- Излаз се извршава из датотеке Дирецтиве_јсп2.јсп, док ће се датотека са директивом_хеадер_јсп3.јсп прво компајлирати.
- По завршетку укључене датотеке извршава се главна датотека, а излаз ће бити из главне датотеке „Ово је главна датотека“. Тако ћете добити излаз као „Датотека заглавља: 2“ од _јсп3.јсп и „Ово је главна датотека“ од _јсп2.јсп.
Директива ЈСП Таглиб
- ЈСП таглиб директива користи се за дефинисање библиотеке ознака са „таглиб“ као префиксом, који можемо користити у ЈСП.
- Више детаља биће покривено у одељку ЈСП прилагођене ознаке
- ЈСП таглиб директива користи се на ЈСП страницама користећи ЈСП библиотеке стандардних ознака
- Користи скуп прилагођених ознака, идентификује локацију библиотеке и пружа средства за идентификовање прилагођених ознака на ЈСП страници.
Синтакса таглиб директиве:
<%@ taglib uri="uri" prefix="value"%>
Овде је атрибут „ури“ јединствени идентификатор у опису библиотеке ознака, а атрибут „префикс“ је име ознаке.
Пример:
<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><% @ таглиб префик = "гурутаг" ури = "хттп://јава.сун.цом/јсп/јстл/цоре"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Гуру директива ЈСП титле><гурутаг: здраво />хеад><боди>боди>хтмл>
Објашњење кода:
Линија 3: Овде је „таглиб“ дефинисан са атрибутима ури и префиксом.
Линија 9: „гурутаг“ је дефинисана прилагођена ознака и може се користити било где