Можно ли использовать UrlRewriter вне сервлета и фильтра в Java? - PullRequest
2 голосов
/ 06 июля 2010

Я настроил UrlRewriterFilter (Tuckey) со многими правилами, и он очень хорошо работает для моего сервлета. Но я хочу использовать тот же конфиг для переписывания URL-адресов вне сервлета - в коде, который генерирует электронные письма с URL-адресами.

Итак, мне нужно каким-то образом запустить UrlRewriter (или какую-то оболочку) для обработки исходящего URL, т.е. переписать их с моими исходящими правилами, уже определенными в config (urlrewrite.xml).

Я хотел бы использовать это так:

String prettyUrl = urlRewriter.rewriteOutgoingUrl(uglyUrl);

Возможно ли это вообще? Как достичь этой цели?

Ответы [ 2 ]

0 голосов
/ 20 июля 2010

Это открытый исходный код. Вы можете просмотреть его исходный код (http://code.google.com/p/urlrewritefilter/source/browse/trunk/src/java/org/tuckey/web/filters/urlrewrite/UrlRewriteFilter.java) и посмотреть, доступна ли логика в автономном классе (ах), которые не зависят от объектов запроса / ответа сервлета. Если это так, просто используйте его. В противном случае вы можете создать он сам основан на оригинальном источнике, используя как можно большую часть библиотеки.

0 голосов
/ 06 июля 2010

Возможно, вам просто нужно инициализировать UrlRewriteFilter. Поскольку вы должны добавить это в свой файл web.xml, файлы конфигурации UrlRewriteFilter обычно загружаются один раз Я попытался бы загрузить это в статическом инициализаторе в некотором классе обертки, который вы определяете. Чтобы определить статический инициализатор, все, что вам нужно сделать, это внутри класса иметь следующее:

static {
   //Your initialization code goes here
}

Этот код будет инициализирован только один раз, во время выполнения. Для получения дополнительной информации, пожалуйста, посмотрите здесь: http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html

...