WedX - журнал о программировании и компьютерных науках

Фильтры — игнорировать другие запросы, кроме приветственного файла.

Я написал фильтр, определяющий целевую страницу пользователя до того, как она попадет в мой приветственный файл. Приветственный файл написан таким образом, что он принимает входные данные от фильтра и направляет пользователя на определенную страницу.

Мой тег приветственного файла...

<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

и моя конфигурация фильтра

<filter>
    <filter-name>LandingPageFilter</filter-name>
    <filter-class>com.mypack.test.filters.LandingPageFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>LandingPageFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Приведенный выше формат работает хорошо, пока каждый запрос проходит через этот фильтр, чего я хочу избежать. Когда я нажимаю https://localhost:8000/landing, он должен достичь фильтра только в первый раз, а позже, даже если я получу доступ к https://localhost:8000/landing/edit, он должен фактически выполнить соответствующий сервлет, минуя фильтр.

Я тоже пробовал это <url-pattern>/*/index.jsp</url-pattern>, но бесполезно. Почему я использую это, потому что контекст может отличаться, но приложение будет одинаковым.

28.08.2013

Ответы:


1

Использовать

<url-pattern>/index.jsp</url-pattern>

вместо

<url-pattern>/*/index.jsp</url-pattern>

Таким образом, ваша часть сопоставления фильтров станет такой

<filter-mapping>
    <filter-name>LandingPageFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
</filter-mapping>

Это работает независимо от контекста, потому что / представляет путь после пути контекста.

Например, если у вас есть два контекстных пути, скажем, a и b с двумя развертываниями одного и того же приложения на вашем сервере, и вы обращаетесь к ним, используя URL-адреса

https://localhost:8000/a/

и

https://localhost:8000/b/

тогда / в url-pattern представляет / после корней контекста a и b. Таким образом, ваш фильтр будет выполняться только для index.jsp.

05.09.2013
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: wedx@cp9.ru