Шта је ЈСП филтер?
- Филтери се користе за филтрирање функционалности Јава веб апликације.
- Они пресрећу захтеве клијента пре него што покушају да приступе ресурсу
- Они манипулишу одговорима са сервера и шаљу их клијенту.
Врсте филтера у ЈСП-у
- Филтери за потврду идентитета
- Филтри за компресију података
- Филтри за шифровање
- МИМЕ ланчани филтери
- Филтери за евидентирање
- Токенизујући филтери
Филтери су дефинисани у веб.кмл и они су мапа за сервлет или ЈСП. Када ЈСП контејнер започне са веб апликацијом, он ствара инстанцу сваког филтера који су декларисани у опису примене.
Следе методе филтрирања:
-
Јавна воид доФилтер (СервлетРекуест, СервлетРеспонсе, ФилтерЦхаин)
То се назива сваки пут када се захтев / одговор прослеђује од сваког клијента када се тражи од ресурса.
-
Јавна воид инит (ФилтерЦонфиг)
Ово значи да је филтер пуштен у рад
-
Уништавање јавне празнине ()
Ово значи да је филтер искључен из сервиса.
Пример:
У овом примеру смо креирали филтер и мапирали у веб.кмл
Гуруфилтер.јава
пакет демотест;импорт јава.ио.ИОЕкцептион;импорт јава.утил.Дате;импорт јавак.сервлет.Филтер;импорт јавак.сервлет.ФилтерЦхаин;импорт јавак.сервлет.ФилтерЦонфиг;импорт јавак.сервлет.СервлетЕкцептион;импорт јавак.сервлет.СервлетРекуест;импорт јавак.сервлет.СервлетРеспонсе;увоз Јавак.сервлет.хттп.ХттпСервлетРекуест;јавна класа ГуруФилтер примењује Филтер {публиц воид доФилтер (СервлетРекуест захтев, СервлетРеспонсе одговор, Филтерцхаин ланац) баца ИОЕкцептион, СервлетЕкцептион {// ТОДО Аутоматски генерисани квар методеХттпСервлетРекуест рек = (ХттпСервлетРекуест) захтев;Стринг ипАддресс = рек.гетРемотеАддр ();Систем.оут.принтлн ("ИП адреса" + ипАддресс + ", време је"+ нови датум (). тоСтринг ());// прослеђивање захтева дуж ланца филтерацхаин.доФилтер (захтев, одговор);}/ *** @сее Филтер # инит (ФилтерЦонфиг)* /јавна воид инит (ФилтерЦонфиг фЦонфиг) баца СервлетЕкцептион {Стринг гурупарам = фЦонфиг.гетИнитПараметер ("гуру-парам");// Исписује параметар инитСистем.оут.принтлн ("Тест Парам: + гурупарам);}}
Веб.кмл
кмл версион = "1.0" енцодинг = "УТФ-8"?><веб-апп ид = "ВебАпп_ИД" версион = "2.4" кмлнс = "хттп://јава.сун.цом/кмл/нс/ј2ее" кмлнс: кси = "хттп://ввв.в3.орг/2001/ КСМЛСцхема-инстанце "кси: сцхемаЛоцатион = "хттп://јава.сун.цом/кмл/нс/ј2ее хттп://јава.сун.цом/кмл/нс/ј2ее/веб-апп_2_4.ксд"><дисплаи-наме>тест дисплаи-наме><филтер><десцриптион>десцриптион><дисплаи-наме>ГуруФилтер дисплаи-наме><филтер-наме> ГуруФилтер филтер-наме><филтер-цласс> демотест.ГуруФилтер филтер-цласс><инит-парам><парам-наме> гуру-парам парам-наме><парам-валуе> Ово је гуру парамтер парам-валуе>инит-парам>филтер><филтер-маппинг><филтер-наме> ГуруФилтер филтер-наме><урл-паттерн> / ГуруФилтер урл-паттерн>филтер-маппинг>
Објашњење кода:
Гуруфилтер.јава
Линија кода 17-32 : Овде користимо методу „доФилтер“ где добијамо објект захтева (у нашем примеру објекат захтева је рек (објекат ХттпСервлетРекуест)) и добијамо удаљену адресу клијента и штампање на конзоли, а такође и штампање датум и време на конзоли.
Линија кода 33-37 : Овде користимо методу инит где узимамо параметар инит и исписујемо параметар инит у конзоли.
Веб.кмл
Линија кода 10-11 - Мапирање ГуруФилтера са именом класе ГуруФилтер.јава где имамо име филтра као ГуруФилтер и класу филтера која је пут директоријума класе ГуруФилтер
Линија кода 13-15 - Мапирање инит параметра под називом гуру-парам и добијање његове вредности која се поставља испод ознаке филтра, тако да је овај инит-парам дефинисан за гуруфилтер
Излаз:
Када извршите горњи код, добићете следећи излаз:
- Излаз је Тест Парам из параметра инит
- И преузимање ИП адресе, датума и времена.