powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Изменение вызова сервлета - перестало работать
22 сообщений из 22, страница 1 из 1
Изменение вызова сервлета - перестало работать
    #34239447
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для создания и тестирования сайта изначально использовал для вызова сервлета в web.xml url-pattern в виде "/main".

Таким образом, вызов осуществлялся как http://localhost:8080/myApp/main (ну, или аналогия на серваке). Все работало отлично, никаких нюансов или недоразумений не было. Соответственно, во всех jsp-шках тэг <form> имел параметр action=main.

Однако работа над проектом подошла к концу, был куплен свой домен и приспичила необходимость отказаться от "/main". В web.xml url-pattern поменян с "/main" на "/". В тэге <form> параметр action ставил равным "/", "", "http://localhost:8080/myApp/", но страница не грузится. Точнее, грузится все, что не имеет ссылок, то есть все элементы показываются, но не подгружается *.сss, все картинки, флешки и т.д. - все то, что имеет ссылки.

Естественно, Томкет перегружался, его manager тоже, но результат остался прежним.

Поскажите, пожалуйста, почему перестало работать отображение страниц?

Спасибо.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34239450
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да, забыл ...
Если установить чекпоинт в сервлете, то дебаггинг показывает, что вызов сервлета происходит бесконечное количество раз.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34239611
smbdy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<link href="<%=request.getContextPath()%>/css/style.css" rel="stylesheet" type="text/css">
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34240282
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но, к сожалению, этот вариант не подходит. Он добавляет фактически "/webApp" к пути. Реакция та же самая.

Я просмотрел все топики, которые тем или иным образом могут относиться к моей проблеме и нашел несколько сходных. Но ни в одном не было дано решения. То есть если из маппинга убраны служебные слова, то сразу же автоматически прекращает подгружать сорс.

Плиз, помогите: время поджимает, а уделять такой проблеме пару дней просто нет возможности. Возможно, кто-то использует "пустой" маппинг. Возможно, где-то есть заковырка.

Спасибо.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34240651
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где лежат css-ки? как к ним прописан путь?
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34240661
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура стандартная:
/myApp/, в ней styles, pages, images, META-INF, WEB-INF и т.д.

В системе адресации, построения сайтов и т.д. я разбираюсь неплохо. Суть именно в том, что я хочу вызвать главный сервлет БЕЗ ключевых слов, только localhost:8080/myApp (браузер автоматически добавляет в конце "/"), а не так как раньше: localhost:8080/myApp/ключевое_слово_вызова_сервлета.

Сервлет вызывается, но вызывается много раз, а сорс не хочет ... ни картинки, ни флешки, ни стили.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34240670
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну прально, он же у тебя подмепливается на рутовый контекст с которого все грузится, и картинки и стили и т.д... естественно, каждый реквест продергивает и твой сервлет тоже, он же у тебя туда подмеплен
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34240897
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я понял, судя по количеству обращений, но проблема не решилась.

Я пробовал указать вручную:
href = "http://localhost:8080/myApp/styles/main.css"
href = "myApp/styles/main.css"
href = "/myApp/styles/main.css" (тот же вариант, что и href="<%=request.getContextPath()%>")

Хотя попробовал такую, на первый взгляд, абсурдную структуру:
<%@ include file="<%=request.getContextPath()%>/include/global.inc" %>
и на стадии компиляции страницы выдало ошибку о неправильности адреса как
<%@ include file="pages/myApp/include/global.inc" %> - то есть начинает строить путь из текущей, где лежит сама jsp-шка.

Возможно, это чем-то может помочь. Хотя не очень понимаю смысла в вызове сервлета при обращении к, например, картинке: если бы в маппинге стояло <url-pattern>/*</url-pattern>, то тогда да, а так ... :(
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34245037
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может фильтр поставить? и отправлять картинки и проч. куда-то... куда не соображу...
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34251928
Фотография MalkoLinge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
./css/test.css
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34306535
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, но снова возвращаюсь к этому вопросу ... ничего не помагает.

В web.xml поменял mapping с "/main" на "/" и все ... все ресурсы, которые вызываются из jsp, не грузятся. Я сверял все параметры в обоих случаях - они идентичны.

Возникло подозрение, что каким-то образом поменялся scope - ресурсы перестали быть видными для приложения. Возможно ли это?

В описании web.xml в папках tomcat есть такое описание:
<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

Но не работает!
Спасибо за содействие.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34306668
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оставить /main в покое никак нельзя?
Вы считаете это неправильным или некрасивым?
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307040
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть купленный домен www.{myApp}.com, поэтому хотелось бы, чтобы все вертелось просто на этом адресе.

Естественно, возможен "выход" - ставить окно приветствия на <welcome-page>, а из него вызывать уже сервлет посредством www.{myApp}.com/main - естественно, это выход, и мне, возможно, придется им воспользоваться, но а) считаю это не очень красивым; б) как программиста меня интересует вопрос - почему?

Я даже указывал URI буквально - через application.getRealPath("") - не загружает.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307062
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckЕсть купленный домен www.{myApp}.com, поэтому хотелось бы, чтобы все вертелось просто на этом адресе.

Естественно, возможен "выход" - ставить окно приветствия на <welcome-page>, а из него вызывать уже сервлет посредством www.{myApp}.com/main - естественно, это выход, и мне, возможно, придется им воспользоваться, но а) считаю это не очень красивым; б) как программиста меня интересует вопрос - почему?

Логичный выход — ставить index.htm (index.html, index.jsp и так далее), в котором приписан редирект на вашу первую страницу.
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307649
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выход-то выход, и очень даже логичный, но ПОЧЕМУ не работает именно так, как я этого хочу? - Тем более, что упоминание о таком варианте есть наже в самом первоисточнике.

Да и к тому же я дебаггил сервлет - вызов странички есть, подгрузка jsp есть, даже тэги выполняются (например, в <BODY> фон закрашивается в некий цвет) - все есть, текущее местонахождение такое же, как и с "/main", но не грузятся внешние ресурсы. Парадокс!
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307655
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Менять <url-pattern>/</url-pattern> на <url-pattern></url-pattern> тоже пробовали?
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307670
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще момент интересный: на первой странице у меня 5 внешних подзагрузки: css-файл, png-файл и 3 swf-файла. Если сделать дебаггинг сервлета, то при загрузке этой страницы идет 6 обращений к нему: 1 директ и 5 внешних файла.

Соответственно, меняются и параметры: к примеру, у переменной request типа HttpServletRequest поле coyoteRequest при первом обращении (вызове страницы) имеет значение "/myApp/", а при втором (когда доходит до строки <link href="styles/main.css" rel=stylesheet type="text/css">) уже "/myApp/styles/main.css".

Вот и возникает логичный вопрос: как обратиться к данным, не обращаясь к сервлету?
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34307679
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
raidanМенять <url-pattern>/</url-pattern> на <url-pattern></url-pattern> тоже пробовали?

Нельзя. Непопустимо пустое поле Illegal.... (не помню точно название exception)
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34354666
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не начинать новую тему ...

А можно для всех "www.mywebsite.com" указать вызов "www.mywebsite.com/main"? - Надо полагать, это не редирект, так как от "/main" надо избавиться ...
Возможно, добавить что-то в mod_jk или вообще через Apache (new Alias) ... очень мелко тут плаваю. Но понимаю, что решить эту проблему можно ...
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34354714
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В Apache для этого есть mod_rewrite
2. Вы можете использовать фильтры в web-приложении
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34356132
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую фильтр для изменения кодировки. А как фильтр может помочь в моей проблеме? - Что "фильтровать"?
...
Рейтинг: 0 / 0
Изменение вызова сервлета - перестало работать
    #34356169
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckА как фильтр может помочь в моей проблеме? - Что "фильтровать"?
- перенаправлять запросы forward-ом. Если запрос на www.site.ru или www.site.ru/ forward на /main?kuku
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Изменение вызова сервлета - перестало работать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]