![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Всем привет. У меня к вам вопросик
![]() Описание программы : На сервлет поступает URL запрос с параметрами , он их обрабатывает и выдает результат . Суть "проблемы" : 1. После обработки поступившых данных , что бы увидеть результат необходимо обновлять страничку ( нажимать Ф5 ). 2. Параметры которые передались в сервлет через адресную строку не очищаются после обработки , и после нажатия клавиши Ф5 снова выполняются . Что делать ? ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Делай в своем сервлете после обработки редирект. Либо редирект можно делать на стороне клиента - через JavaScript.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Я делал через forward но что то не получалось , а через редирект это как ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Именно так. А что не получалось? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Строка адреса не очищалась .
![]() Я делал так :
Это сообщение отредактировал(а) Kars - 27.4.2006, 13:18 |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Я так понимаю, что в данном случае ты делешь редирект с тем же самым запросом, т.е. на ту же страницу с теми же параметрами. А тебе нужно поменять URL.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Конечно можно после окончания перейти на другой сервлет или страничку , но это меня не устраивает . Надо что бы после обработки он вызывал себя снова , но уже без параметров.
Это сообщение отредактировал(а) Kars - 27.4.2006, 13:34 |
|||
|
||||
Goliath |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 1.3.2005 Репутация: нет Всего: 5 |
А не проще воспользоваться XMLHttpRequest (чистый AJAX)?
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
2 Goliath Если не сложно , можиш примерчик написать . Ну с использыванием XMLHttpRequest . |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Тогда подмени УРЛ на такой же, но без параметров. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Kars |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Я вот нашел кое что , аналог метода forward - sendRedirect. Но в отличие от первого sendRedirect заставляет браузер запросить другой URL . Как этот метод используется , я так и не нашол , если кто знает то киньте примерчик с его участием , буду очень признателен .
Добавлено @ 14:08
Я так и делаю :
Index - это тот сервлет что принимает и обрабатывает . Но если параметр поступает пустой ("Index"); то сервлет просто показывает общую табличку . |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Я так понял, что надо ему просто скормить строку адреса, и всё...
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Вот собственно тот метод который выполняется первый при загрузке сервлета:
Чего и куда вы мне посоветуете вставить ![]() |
|||
|
||||
katala |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
я так понимаю например в теге
<forward name="/change" path="/templates/account.vm" /> надо просто добавимть redirect="false"????? то есть : <forward name="/change" path="/templates/account.vm" redirect="false" /> |
|||
|
||||
wadissimo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.4.2006 Репутация: 1 Всего: 1 |
вообще редирект это не аналог форварда.
форвард переходит на страницу без ведома браузера(то есть когда ты нажмешь f5 у тебя выполнится сервлет с которого ты форвардился с его параметрами) редирект переход на новую страницу с запросом браузеру(здесь при нажатии f5 обновится только та страница, на которую ты редиректнулся. ) тебе нужен, как я понял, response.sendRedirect("...."); |
|||
|
||||
Tirael |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 31.1.2006 Где: Москва Репутация: 1 Всего: 7 |
Ну например так:
Когда ты делаешь foward браузер ничего не знает о том куда ты форвадишься , в случае с sendRedirect браузер знает об этом. Вообщем, как я понял, ты посылаешь сервлету строку с параметрами. Внутри сервлета делаешь forward и не понимаешь почему в строке браузера все тот же урл. Собственно, если так, то решение - заменить forward на sendRedirect ( и думать почему не работает следующий кусок кода ![]() Вообще, forward и include очень хорошие вещи, если ты хочешь скрыть собственно всю свою реализацию. Например, я из сервлета вызываю incude на jsp страницу. И пользователь ничего об этом не знает. Господа знатоки, ![]() 1. Вы пишите в строке адреса www.bla-bla.org/aaa/bbb.html Как сделать быстро и удобно так, чтобы никакого расширения не надо было. Например www.bla-bla.org/aaa/bbb Естественно, чтоб вызывалась эменно HTML (или какая другая) страница, а не сервлет. 2. У меня есть фильтр, который слушает все запросы на все сервлеты. Но мне хочется ( для удобства), чтоб этот фильтр слушал все запросы на все сервлеты, КРОМЕ одного (двух - трех). Конечно можно замапить фильтр на каждую страницу в отдельности, опустив те что мне не нужны. Но это как-то не гламурно ...... --------------------
|
|||
|
||||
katala |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
ничего не выходит:
есть класс public class SendMail extends AbstractVelocityAction { public ActionForward processActionLogic(VelocityContext context, ActionMapping mapping, ActionForm form, HttpServletRequest request) throws Exception { template = Velocity.getTemplate("mail.vm"); ... return mapping.findForward("/send"); } } потом в struts-config.xml <action path="/templates/mail" type="struts.action.client.SendMail" scope="request"> <forward name="/send" path="/templates/mail.vm" redirect="false" /> </action> вроде все нормально заполняю форму, отправляю данные(после нажатия кнопки) и появляется эта же страница то есть так как мне надо. но как только нажимаю F5 сразу выбрасывает на главную страницу а надо оставаться на этой. так в чем проблема???? |
|||
|
||||
Kars |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Спасибо всем за помощь , и полезные советы . Я решил этот вопрос несколько иначе , и ефективние .
Обяснять не буду там и так всё ясно ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |