![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
доброго времени суток
в приложении есть следующие файлы /test.jsp /start.jsp /test.css в web.xml просано следующее:
если в бразвере набрать: http://site.loc:8080/test/ то получу start.jsp, что логично, так как она замепина на сервлет по умолчанию если набрать: http://site.loc:8080/test/test.jsp то получу test.jsp, что тоже логично, так как я указал полный uri а вот если набрать: http://site.loc:8080/test/test.css то я опять получу start.jsp, что с мое колокольни абсолютно не логично, так как указан полный uri и я ожидаю что мне выдадут test.css соответственно и test.css при таком размещении на страницах не рабтотает. отсюда вопрос: чего я не допонял? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Такой маппинг
означает, что все URL будут перенаправляться сервлету. |
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
но ведь http://site.loc:8080/test/test.jsp возвращает test.jsp?
|
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
сори, нашел
контейнер сначала ищет сервлеты, а только потом остальные ресурсы, соответстенно так как он находит севлет по умолчани, то до test.css дело не доходит. есть еще один вопрос в ту же степь. если подправить web.xml следующим образом
то мепинг на текущий сервлет отрубается и при запросе: http://site.loc:8080/test/ я получаю ошибку 404. Почему так происходит? Это сообщение отредактировал(а) le_chat - 12.5.2007, 15:45 |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
может, для решения проблемы просто welcome-file использовать? который и будет откликаться на контекст /
|
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
это был только пример. приложение более сложное, севлет по умолчанию лежит глубже в защещенной папке. а насколько я понял welcome-file это только файл, без всякого пути к нему...
обходные пути найти кончено можно, только понимания процесса это не прибавит.. и почему мэпинг отрубается, если jsp-config указать мне непонятно.. |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Никакого пути быть не может, этот список для другого предназначен. welcome-file показывается если нет имени файла в url, например http://site.ru или http://site.ru/info. Тогда Tomcat смотрит в welcome-file-list и пытается найти в папке файл из этого списка. |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
многие контейнеры умеют выводить сервлет как welcome-file. это зависит от поддерживаемой версии J2ee и особенностей контейнера.
все правильно. le_chat, тебе подойдет такой вариант? Это сообщение отредактировал(а) ekr - 12.5.2007, 16:28 |
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
упс. опоздал с ответом. вариант как возможный, но все же хочется понять почему пропадает мапинг на дефолтный сервлет, если прописать jsp-config как указано выше?
Это сообщение отредактировал(а) le_chat - 12.5.2007, 16:31 |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
какой у тебя tomcat? я дома проверю
|
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
tomcat 5.5.20.
я глянул спеку (2.4). welcome-file для неполных url. я так понимаю (в спеке вроде бы не указано) это те, где послдений сегмент без точки (то есть нельзя получить расширение), при этом для них не должно быть установлено мэпинга. (в общем как и говорил Maksym) тогда контейнер добавляет по очереди welcome-file файлы и заново разбирает url. соответственно сначала ищет сервлеты, потом все остальные ресурсы Это сообщение отредактировал(а) le_chat - 12.5.2007, 16:57 |
|||
|
||||
| Maksym |
|
||||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
да. те, которые имплементируют Servlets 2.4, например Tomcat 5.5 если:
то можно:
Но это, в отличие от файла, работает только для рутовой папки. |
||||
|
|||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
нуу...
если прописать вот так:
то http://site.loc:8080/test/dd/ выдает start.jsp а http://site.loc:8080/test/dd ошибку 404 - что вроде бы как странно - потому как по спеке он вроде бы должен редиректится на http://site.loc:8080/test/dd/ и далее соответственно на start.jsp |
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
проблема была решена по последнему методу Максима. Замэпивание на дефолтный сервлет оказалось плохой идеей, так как обратится к ресурсам, отличным от сервлета оказалось невозможно из-за порядка обработки uri контейнером - сначала он ищет сервлеты, а потом уже все остальные ресурсы.
с jsp-config ситуация до конца не понятна, потому как на мой взгляд не логична. получается что контейнер обрабатывает jsp-config и servlet-mapping в общей куче в порядке конкуренции uri, что с моей колокольни немного не логично. ведь jsp-config должен лишь задавать общие параметры для jsp-страниц, мэпингом этот тэг вроде бы не занимается... может баг? потому как если задать в jsp-config uri по расширению(*.jsp), то все работает правильно... на данном этапе вопрос разрешен, спасибо всем за ответы Это сообщение отредактировал(а) le_chat - 14.5.2007, 09:30 |
|||
|
||||
![]()
|
| Правила форума "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. |