将自定义消息从Servlet传递到JSP页面?

时间:2010-07-14 07:17:47

标签: java jsp servlets

我是JSP和Servlets的新手。

我想知道的是将一些自定义消息传递到客户端网页的最佳方式。

例如,假设我有一个网页,上面写着student.jsp,它有一个表格,可以将新学生注册到我们的在线申请中。在成功插入表格的所有字段后, 用户提交表单并将数据提交给我们的servlet进行进一步处理。现在,Servlet验证它并将其添加到我们的数据库中。现在,servlet应该发送一条消息指示一个 成功插入最终用户输入的数据给最终用户(在我们的例子中是student.jsp)。

所以,我可以将这种类型的消息传递给任何客户端网页。

我不想将此消息作为URL查询字符串传递。

是否有其他更好,更安全的方式来传递这些类型的消息......

2 个答案:

答案 0 :(得分:5)

使用request.setAttribute("message", yourMessage)然后转发(request.getRequestDispatcher("targetPage.jsp").forward())到结果页面。

然后你可以通过JSTL(<c:out value="${message}" />)或request.getAttribute(..)阅读目标页面中的消息(这不是首选 - 在jsp中应避免使用scriptlet)

如果您确实需要response.sendRedirect(..),则可以将消息放入会话中,并在检索后将其删除。为此,您可能有一个自定义标记,因此您的jsp代码看起来不太“丑陋”。

答案 1 :(得分:1)

我认为它在JSTL中看起来像这样:

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

我还认为,如果“message”是一个Java String,它可以在使用之后设置为空字符串,如下所示:

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

实际上,如果“message”是一个Java字符串数组,它看起来也有效:String [] ......