Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Servlet, Очитска адресной строки 
V
    Опции темы
Kars
Дата 27.4.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Всем привет. У меня к вам вопросик  smile 
Описание программы :
 На сервлет поступает URL  запрос с параметрами , он их обрабатывает и выдает результат .
Суть "проблемы" :
 1. После обработки  поступившых данных , что бы увидеть результат необходимо обновлять страничку 
( нажимать Ф5 ).
 2. Параметры которые передались в сервлет через  адресную строку не очищаются после обработки ,
и после нажатия клавиши Ф5 снова выполняются .

Что делать ?  smile  
PM MAIL   Вверх
batigoal
Дата 27.4.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Делай в своем сервлете после обработки редирект. Либо редирект можно делать на стороне клиента - через JavaScript. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kars
Дата 27.4.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Цитата(Lamer George @ 27.4.2006,  12:05)
Делай в своем сервлете после обработки редирект. Либо редирект можно делать на стороне клиента - через JavaScript.

Я делал через forward  но что то не получалось , а через редирект это как  smile  
PM MAIL   Вверх
batigoal
Дата 27.4.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Kars @  27.4.2006,  14:10 Найти цитируемый пост)
Я делал через forward  но что то не получалось , а через редирект это как  smile   

Именно так. А что не получалось? 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kars
Дата 27.4.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Строка адреса не очищалась .  smile 

Я делал так :

Код



RequestDispatcher rd=request.getRequestDispatcher ("Index");
rd.forward(request,response);

  

Это сообщение отредактировал(а) Kars - 27.4.2006, 13:18
PM MAIL   Вверх
batigoal
Дата 27.4.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Я так понимаю, что в данном случае ты делешь редирект с тем же самым запросом, т.е. на ту же страницу с теми же параметрами. А тебе нужно поменять URL. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kars
Дата 27.4.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Конечно можно после окончания перейти на другой сервлет или страничку , но это меня не устраивает . Надо что бы после обработки он вызывал себя снова , но уже без параметров. 
  

Это сообщение отредактировал(а) Kars - 27.4.2006, 13:34
PM MAIL   Вверх
Goliath
Дата 27.4.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



А не проще воспользоваться XMLHttpRequest (чистый AJAX)?  
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
Kars
Дата 27.4.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Цитата

А не проще воспользоваться XMLHttpRequest (чистый AJAX)?   


 2 Goliath 
Если не сложно , можиш примерчик написать . Ну с использыванием XMLHttpRequest .  
PM MAIL   Вверх
batigoal
Дата 27.4.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Kars @  27.4.2006,  14:25 Найти цитируемый пост)
Конечно можно после окончания перейти на другой сервлет или страничку , но это меня не устраивает . Надо что бы после обработки он вызывал себя снова , но уже без параметров. 

Тогда подмени УРЛ на такой же, но без параметров. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kars
Дата 27.4.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Я вот нашел кое что , аналог метода forward  - sendRedirect. Но в отличие от первого sendRedirect заставляет браузер запросить другой URL . Как этот метод используется , я так и не нашол , если кто знает то киньте примерчик с его участием , буду очень признателен .

Добавлено @ 14:08 
Цитата

Тогда подмени УРЛ на такой же, но без параметров.  

Я так и делаю :
Цитата

RequestDispatcher rd=request.getRequestDispatcher ("Index");
rd.forward(request,response);


Index - это тот сервлет что принимает и обрабатывает . Но если параметр поступает пустой  ("Index"); то сервлет просто показывает общую табличку .  
PM MAIL   Вверх
batigoal
Дата 27.4.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Я так понял, что надо ему просто скормить строку адреса, и всё... 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kars
Дата 27.4.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Вот собственно тот метод который выполняется первый при загрузке сервлета:
Код


protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
        response.setContentType("text/html; charset=windows-1251");
        PrintWriter out = response.getWriter(); 
        
        request.setCharacterEncoding("windows-1251");
        
        String id = request.getParameter("id"); 
        String act = request.getParameter("act"); 
        String del = request.getParameter("del");

        sendPageHeader(response,"Выбор записи"); 

try{
            
   

        
        
        if (id==null )
        {  
               // код           
  
        }else            
        {
               
            // код
 
        }
        
        
        if (act!=null) 
            {
               if (del!=null)
               {
                     
                     
                     // код
                     
                    
               }else 
               {
                   
                   // код
               }
               
            }
       
}
catch(Exception e)
        {
            
            out.println("Ошибка:" + e.toString());
            
        }
        
        sendPageFooter(response);
        

        out.close();

}



Чего и куда вы мне посоветуете вставить   smile  
PM MAIL   Вверх
katala
Дата 28.4.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 15.4.2006

Репутация: нет
Всего: нет



я так понимаю например в теге 
<forward name="/change" path="/templates/account.vm"  />
надо просто добавимть redirect="false"????? то есть :
<forward name="/change" path="/templates/account.vm" redirect="false" /> 
PM MAIL   Вверх
wadissimo
Дата 29.4.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 28.4.2006

Репутация: 1
Всего: 1



вообще редирект это не аналог форварда.
форвард переходит на страницу без ведома браузера(то есть когда ты нажмешь f5 у тебя выполнится сервлет с которого ты форвардился с его параметрами)
редирект переход на новую страницу с запросом браузеру(здесь при нажатии f5 обновится только та страница, на которую ты редиректнулся. )
тебе нужен, как я понял, response.sendRedirect("...."); 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.