Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сервлеты. Запрет повторного ввода данных.

1.9K
07 октября 2007 года
burst
94 / / 04.09.2006
Есть два сервлета: А и Б.
Сервлет А выдает пользователю форму для ввода определенных данных. Пользователь вводит данные, нажимает на кнопку и данные отправляются на сервер, в сервлет Б.
Сервлет Б обрабатывает данные и вычисляет некий результат и выводит их на страницу.

Как сделать так, чтобы пользователь после того, как ввел данные и попал на страницу с результатом, не смог нажать на стрелочку <- в браузере и заново ввести данные и отправить на сервер?
552
07 октября 2007 года
Ivanhoe
373 / / 30.04.2006
Не нажимать кнопочку - это вопрос к JavaScript.
Не вводить данные повторно - сохранять где-то флажок о том, что данные уже введены. Например, в сессии. Или в базе. Или в файле. Как в голову стукнет :)
1.9K
07 октября 2007 года
burst
94 / / 04.09.2006
Ну это понятно конечно, но это как-то...примитивно чтоли.
Вот в asp.net например можно это сделать так: if(isPostBack){...} в классе странице....а что-то наподобие здесь сделать можно? или это уже к JSP вопросы ?
63
08 октября 2007 года
Zorkus
2.6K / / 04.11.2006
Кто сказал, что простые решения плохи? :)
Это один из фундаментальных принципов экстремального программирования.
По сабжу.
Можно предложить пару вариантов навскидку.
Тот факт, отправлял до этого пользователь данные нужно хранить на сервере, как атрибут сессии, чтобы пользователь не имел к нему доступа, куки тут не сработают.

В яваскрипте на странице устанавливается по дефолту кнопка в состояние disabled. Затем посылается асинхронный запрос к серверу, который проверяет состояние флага, и по нему включает или не включает кнопку. Минут в том, что пользователь может вырубить в браузере яваскрипты вообще.
Тогда остается только опять-таки храня данные как атрибут сессии, делать проверку в самом сервлете, после сабмита. И если там попытка хакнуть, то посылать пользователя редиректом на какую-нибудь error-page.
1.9K
08 октября 2007 года
burst
94 / / 04.09.2006
Да да да, всем спасибо. Сделал через атрибут сессии.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог