Мапирање филтера Веб.кмл у ЈСП сервлету са примером

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

Anonim

Шта је ЈСП филтер?

  • Филтери се користе за филтрирање функционалности Јава веб апликације.
  • Они пресрећу захтеве клијента пре него што покушају да приступе ресурсу
  • Они манипулишу одговорима са сервера и шаљу их клијенту.

Врсте филтера у ЈСП-у

  • Филтери за потврду идентитета
  • Филтри за компресију података
  • Филтри за шифровање
  • МИМЕ ланчани филтери
  • Филтери за евидентирање
  • Токенизујући филтери

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

Следе методе филтрирања:

  • Јавна воид доФилтер (СервлетРекуест, СервлетРеспонсе, ФилтерЦхаин)

    То се назива сваки пут када се захтев / одговор прослеђује од сваког клијента када се тражи од ресурса.

  • Јавна воид инит (ФилтерЦонфиг)

    Ово значи да је филтер пуштен у рад

  • Уништавање јавне празнине ()

    Ово значи да је филтер искључен из сервиса.

Пример:

У овом примеру смо креирали филтер и мапирали у веб.кмл

Гуруфилтер.јава

пакет демотест;импорт јава.ио.ИОЕкцептион;импорт јава.утил.Дате;импорт јавак.сервлет.Филтер;импорт јавак.сервлет.ФилтерЦхаин;импорт јавак.сервлет.ФилтерЦонфиг;импорт јавак.сервлет.СервлетЕкцептион;импорт јавак.сервлет.СервлетРекуест;импорт јавак.сервлет.СервлетРеспонсе;увоз Јавак.сервлет.хттп.ХттпСервлетРекуест;јавна класа ГуруФилтер примењује Филтер {публиц воид доФилтер (СервлетРекуест захтев, СервлетРеспонсе одговор, Филтерцхаин ланац) баца ИОЕкцептион, СервлетЕкцептион {// ТОДО Аутоматски генерисани квар методеХттпСервлетРекуест рек = (ХттпСервлетРекуест) захтев;Стринг ипАддресс = рек.гетРемотеАддр ();Систем.оут.принтлн ("ИП адреса" + ипАддресс + ", време је"+ нови датум (). тоСтринг ());// прослеђивање захтева дуж ланца филтерацхаин.доФилтер (захтев, одговор);}/ *** @сее Филтер # инит (ФилтерЦонфиг)* /јавна воид инит (ФилтерЦонфиг фЦонфиг) баца СервлетЕкцептион {Стринг гурупарам = фЦонфиг.гетИнитПараметер ("гуру-парам");// Исписује параметар инитСистем.оут.принтлн ("Тест Парам: + гурупарам);}}

Веб.кмл

<веб-апп ид = "ВебАпп_ИД" версион = "2.4" кмлнс = "хттп://јава.сун.цом/кмл/нс/ј2ее" кмлнс: кси = "хттп://ввв.в3.орг/2001/ КСМЛСцхема-инстанце "кси: сцхемаЛоцатион = "хттп://јава.сун.цом/кмл/нс/ј2ее хттп://јава.сун.цом/кмл/нс/ј2ее/веб-апп_2_4.ксд"><дисплаи-наме>тест <филтер><десцриптион><дисплаи-наме>ГуруФилтер <филтер-наме> ГуруФилтер <филтер-цласс> демотест.ГуруФилтер <инит-парам><парам-наме> гуру-парам <парам-валуе> Ово је гуру парамтер <филтер-маппинг><филтер-наме> ГуруФилтер <урл-паттерн> / ГуруФилтер 

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

Гуруфилтер.јава

Линија кода 17-32 : Овде користимо методу „доФилтер“ где добијамо објект захтева (у нашем примеру објекат захтева је рек (објекат ХттпСервлетРекуест)) и добијамо удаљену адресу клијента и штампање на конзоли, а такође и штампање датум и време на конзоли.

Линија кода 33-37 : Овде користимо методу инит где узимамо параметар инит и исписујемо параметар инит у конзоли.

Веб.кмл

Линија кода 10-11 - Мапирање ГуруФилтера са именом класе ГуруФилтер.јава где имамо име филтра као ГуруФилтер и класу филтера која је пут директоријума класе ГуруФилтер

Линија кода 13-15 - Мапирање инит параметра под називом гуру-парам и добијање његове вредности која се поставља испод ознаке филтра, тако да је овај инит-парам дефинисан за гуруфилтер

Излаз:

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

  • Излаз је Тест Парам из параметра инит
  • И преузимање ИП адресе, датума и времена.