2010-07-14 3 views
0

Я новичок в JSP и сервлетах.Передача настроенных сообщений с сервлета на страницу JSP?

Что я хочу знать, это лучший способ передать какое-то настроенное сообщение на клиентские веб-страницы.

Например, предположим, что у меня есть веб-страница say student.jsp, которая имеет форму, чтобы зарегистрировать нового ученика в нашем онлайн-приложении. После успешного ввода всех полей формы, пользователь отправляет форму и данные отправляется на наш сервлет для дальнейшей обработки. Теперь сервлет проверяет его и добавляет в нашу базу данных. Теперь сервлет должен отправить сообщение с сообщением об успешном вводе данных конечным пользователем (в нашем случае student.jsp).

Итак, я могу передать этот тип сообщения на любую клиентскую веб-страницу.

Я не хочу передавать это сообщение в виде URL-запроса строки.

есть муравей другие лучше и безопасный способ передать эти типы сообщений ...

ответ

5

использование request.setAttribute("message", yourMessage), а затем вперед (request.getRequestDispatcher("targetPage.jsp").forward()) на странице результатов.

Тогда вы можете прочитать сообщение в целевой страницы с помощью JSTL (<c:out value="${message}" />) или через request.getAttribute(..) (этот вариант не является предпочтительным - скриптлеты следует избегать в JSP)

Если вам действительно нужно response.sendRedirect(..), то вы можете разместить сообщение в сеансе и удалить его после его получения. Для этого у вас может быть собственный тег, так что ваш jsp-код не выглядит слишком «уродливым».

+0

т Хэнки для этого хорошего предложения. , но что делать, если я использую response.sendRedirect вместо request.getRequestDispacther. Могу ли я использовать методы атрибутов с sendRedirect? любое специальное пособие Использование методов атрибутов? Спасибо Mihir Parekh – Mihir

+0

перенаправление делает другой запрос, поэтому атрибуты теряются. – Bozho

+0

спасибо за ваш ответ. Но вы можете предложить способ отправки сообщения на клиентскую сторону, пока я использую response.sendRedirect ?? – Mihir

1

Я думаю, что это выглядит, как это в JSTL:

<c:remove var="message" scope="session" />

Я также считаю, что, если «сообщение» является Java String, он может быть установлен в пустую строку, после того, как она была использована, как это :

<c:set var="message" scope="session" value="" />

на самом деле, это также выглядит, как это работает, если "сообщение" является массивом Java Strings: String [] ...

+0

спасибо за ваш ответ, хотя он другой, я проголосовал за вас. – Mihir

Смежные вопросы