Как сделать динамическое переписывание URL в J2EE - PullRequest
4 голосов
/ 10 ноября 2009

В свое время в ASP.NET я использовал URLRewriter.NET для динамической перезаписи URL. По сути, это HTTPModule, который перехватывает запросы страниц и переписывает URL-адреса в соответствии с определенными вами правилами, очень похожими на MOD_REWRITE. Тем не менее, он также позволяет вам определить «Пользовательское преобразование», класс с единственным методом, который выполняет преобразование URL для вас на лету. Вы можете использовать этот метод для доступа к БД, доступа к коллекции Application [] и делать все, что душе угодно.

Есть ли что-нибудь подобное в мире J2EE? Я хочу иметь возможность динамически переписывать URL-адреса и делегировать это переписывание некоторому коду Java. Я НЕ хочу просто настроить список статических переписываний. Кроме того, он должен выполнять фактическое маскирование URL, а НЕ 3XX перенаправления.

Если нет ничего, что могло бы сделать это, как бы я сам смог реализовать эту функцию?

Ответы [ 3 ]

4 голосов
/ 10 ноября 2009

Как насчет этих:

http://ocpsoft.com/prettyfaces/

PrettyFaces - расширение сервлетов на основе фильтра OpenSource с расширенная поддержка JavaServer Faces - JSF 1.1, 1.2 и 2.0 - позволяет создавать красивые закладки с возможностью создания закладок. PrettyFaces решает проблема «RESTful URL» элегантно, включая такие функции, как: действия при загрузке страницы, плавная интеграция с навигацией по лицам, динамическая присвоение идентификатора вида, анализ управляемых параметров и отсутствие конфигурации совместимость с другими веб-фреймворками.

http://ocpsoft.com/rewrite/

Rewrite - расширение сервлетов на основе фильтра OpenSource для Java - позволяет создавать красивые закладки с возможностью создания закладок. Переписать решает Проблема «RESTful URL» элегантно, включая такие функции, как загрузка страницы действия, анализ управляемых параметров, бесшовная интеграция с CDI, Весна и совместимость без конфигурации с другими сетями рамки.

http://tuckey.org/urlrewrite/

На основе популярного и очень полезного mod_rewrite для apache, UrlRewriteFilter - веб-фильтр Java для любого J2EE-совместимого веб-приложения сервер (например, смола, орион или Tomcat), который позволяет переписать URL-адреса, прежде чем они попадут в ваш код. Это это очень мощный инструмент, так же, как Apache's mod_rewrite.

4 голосов
/ 10 ноября 2009

Вы исследовали Фильтры сервлетов ? Я не пытался изменить URL-адрес напрямую и полагаю, что параметры будут предварительно проанализированы в объекте запроса, но мы широко используем фильтры для парсинга URL-адресов и помещения информации о пути в БД для использования в других сервлетах и ​​JSP.

Вы можете очень легко обернуть объект запроса, когда он соединится с целевыми сервлетами.

0 голосов
/ 12 ноября 2009

Другой вариант - написать свой выигранный Сервлет . Теперь напишите некоторый код манипулирования URL-адресом, используя объект запроса и найденный URL-адрес, и снова вызовите намеченное действие страницы или сервлет.

Например.

Вы должны позвонить сервлету, используя URL

домен / urlServlet / param1 / param2 /...

И ваш сервлет переведет его на

домен / requestedPage? P1 = param1 & p2 = param2 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...