![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
Привет участникам форума.
Поискал на вашем форуме по Java по ключевому слову mod_rewrite и не нашел... Поэтому задам вопрос - есть ли на Java аналог мода под апач mod_rewrite, например какие нибудь фильтры которые это делают? Стоит сейчас задача по перезаписи url-запросов c параметрами, например http://host:8080/myappl/getObject?id=12&parent=44 будет заменяться на что то похожее http://host:8080/myappl/12/44 |
|||
|
||||
| Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 2 Всего: 18 |
Первая ссылка в гугле приведет куда надо: http://www.google.ru/search?q=rewrite+url+filter
--------------------
будешь на Земле - заходи |
|||
|
||||
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
спасибо! видимо под конец дня голова уже не варит составить запрос. я искал по mod_rewrite Java Filter...
|
|||
|
||||
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
спасибо всем за ответы.
скачал UrlRewriter фильтр для сервлета отсюда: http://tuckey.org/urlrewrite/ как настраивать почитал тут: http://tuckey.org/urlrewrite/manual/2.6/ в общем всё получилось. создал своё правило конвертации в файле urlrewrite.xml возник теперь такой вопрос: в своем сервлете я генерирую гиперссылки. как применить созданные мной правила, записанные в файле urlrewrite.xml, внутри сервлета для генерации ссылок? кто работал уже с этим пакетом - org.tuckey.web.filters.urlrewrite? |
|||
|
||||
| Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 2 Всего: 18 |
1) Что мешает генерить их в том виде, который этим правилам удовлетворяет?
2) Если что-то все-таки мешает, посмотри в сторону <outbound-rule> --------------------
будешь на Земле - заходи |
|||
|
||||
| UnicornMirage |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
2 Шмель: большое спасибо за подсказку насчет <outbound-rule>, действительно в руководстве сказано, что данное правило работает для вызовов методов response.encodeURL(); (модераторов прошу поставить + )
создал следующую test.jsp:
в правилах файла urlrewrite.xml создал одно входящее, а одно выходящее правило:
проверяю вначале как работает входящее правило: в строке браузера пишу адрес http://localhost:8080/myappl/123 страница выводится нормально, как будто бы был введен адрес http://localhost:8080/myappl/test.jsp?id=123 но вот почему то правило <outbound-rule> не сработало в листинге test.jsp у меня записано:
по идее он должен был декодировать строку "test.jsp?id=555" в "/555" но этого не происходит... Может быть Вы знаете почему? что я не так сделал? пытался выполнить пример вот по этому руководству: http://tuckey.org/urlrewrite/manual/2.6/) Это сообщение отредактировал(а) UnicornMirage - 17.12.2006, 00:19 |
||||||
|
|||||||
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
вроде бы нашел ошибку.
в моем паттерне для outbound-rule надо было экранировать символ '?' вот так работает:
но что странно, я делал согласно примеру в руководстве http://tuckey.org/urlrewrite/manual/2.6/ как то не верится что у них ошибка. в регулярных выражениях я не очень силен, поэтому хотелось уточнить - символ '?' нужно экранировать '\?' Это сообщение отредактировал(а) UnicornMirage - 16.12.2006, 16:28 |
|||
|
||||
| Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 2 Всего: 18 |
Да, его нужно экранировать, так как в регулярках, если мне не изменяет склероз, он является служебным символом. Возможно, опечатка. Подробности: http://java.sun.com/j2se/1.5.0/docs/api/ja...ex/Pattern.html --------------------
будешь на Земле - заходи |
|||
|
||||
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
столкнулся со следующей проблемой.
есть задача преобразования типа адресов http://server:8080/myappl/$KEYWORDS/, где $KEYWORDS - это список разных слов, разделенных пробелом. например, http://server:8080/myappl/some string/ http://server:8080/myappl/некоторая строка поиска/ проблема в том что браузер IE кодирует пробелы знаком + я посмотрел на правила http://java.sun.com/j2se/1.5.0/.../Pattern.html и согласно им составил следующие правила для Urlrewriter'a:
но это не работает. есть сомнения относительно правильности регулярного выражения /([!-я][\s]+)/ нужно чтобы оно описывала все символы ASCII содержащие также пробелы. правильно ли я составил данное выражение? |
|||
|
||||
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: нет Всего: 1 |
разобрался, паттерн таков: ([\u0000-\uFFFF]+) - включает всю юникодовскую таблицу.
Это сообщение отредактировал(а) UnicornMirage - 28.12.2006, 10:49 |
|||
|
||||
| simprimat |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2010 Репутация: нет Всего: нет |
Добрый день. У меня похожая проблема. Использую URLrewriter. ЧПУ ссылка имеет вид:
localhost/theme/id/page Когда я заменяю только localhost/theme, то вроде бы всё работает нормально. Правило:
Но! Когда пытаюсь заменить ссылку полностью localhost/theme/id/page, то у все остальные ссылки(пути к картинкам и т.д.) уезжают, к нам ещё прибавляется theme/id и в результате нет ни картинок и вообще ни куда уже не перейти... ПРавило:
|
||||
|
|||||
| simprimat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2010 Репутация: нет Всего: нет |
Может кто нибудь подсказать? Примерно хоть в чём дело
|
|||
|
||||
| simprimat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2010 Репутация: нет Всего: нет |
ау люди
|
|||
|
||||
| simprimat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2010 Репутация: нет Всего: нет |
Этот фильтр (UrlRewriter), указанный выше, смотрит на то, когда вызывается метод response.encodeURL . Затем выполняется. А как же быть если весь проект сделан не только на jsp, но ещё и есть HTML контент, в котором тоже море ссылок, которые надо привести к ЧПУ...
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |