Передача данных с одной веб-страницы на другую, как это сделать? - PullRequest
0 голосов
/ 27 февраля 2012

Предположим, я собираюсь создать веб-страницу с двумя полями для ввода идентификатора пользователя и пароля пользователя соответственно. И затем, как только я нажму кнопку отправки, он проверит базу данных в фоновом режиме, существует ли этот пользователь. Если он совпадает с кем-либо в базе данных, идентификатор пользователя и пароль пользователя будут перенаправлены на другую страницу, в то же время он будет перенаправлен на главную страницу этого пользователя.

Могу ли я просто использовать сервлет для выполнения этой задачи?

Я обнаружил, что есть запрос. API-интерфейс диспетчера, но достаточно ли этого для задачи?

String name = "Tom" 
request.setAttribute("name",name); 

RequestDispatcher dis = request.getRequestDispatcher 
("Servlet2"); 

request.Forward(request,response); 

во втором файле сервлета

request.getAttribute("name"); 
//this line will display "Tom" 

Еще один вопрос, который нужно задать, как насчет нажатия на ссылку (INSTEAD OF BUTTON), чтобы передать некоторые данные и перенаправить на другие страницы сервлета? Любая идея? Большое спасибо за ваш ответ.

1 Ответ

0 голосов
/ 27 февраля 2012

Да, вы можете использовать сервлет для этого.Достаточно ли диспетчера или нет, зависит от конкретных функциональных требований, которые не совсем понятны из вашего вопроса.Однако канонический подход заключается в том, чтобы сохранить зарегистрированного пользователя в области сеанса, а не в области запроса.В противном случае пользователь должен входить в систему каждый раз, когда пользователь хочет посетить страницу с ограниченным доступом.

Кроме того, вы обычно хотели бы отправить перенаправление после успешного входа в систему.Таким образом, новый URL отражается в адресной строке браузера.Кроме того, нажатие клавиши F5 впоследствии не вызовет никаких неожиданностей.Пересылка от одного сервлета к другому - это тоже своеобразный дизайнерский запах.В том числе было бы разумно, но пересылка нет.Как уже говорилось, вместо этого отправьте перенаправление.

Что касается использования ссылки для отправки формы, просто выполните JS form.submit() во время события нажатия.

<form id="login">
    ...
    <a href="#" onclick="document.getElementById('login').submit(); return false;">login</a>
</form>

Альтернативой является стилизациякнопка, чтобы выглядеть как ссылка с небольшой помощью CSS.Таким образом, он также будет работать на клиентах, у которых отключен JS (например, на мобильных устройствах).

...