我是JSP和Servlets的新手。
我想知道的是将一些自定义消息传递到客户端网页的最佳方式。
例如,假设我有一个网页,上面写着student.jsp,它有一个表格,可以将新学生注册到我们的在线申请中。在成功插入表格的所有字段后, 用户提交表单并将数据提交给我们的servlet进行进一步处理。现在,Servlet验证它并将其添加到我们的数据库中。现在,servlet应该发送一条消息指示一个 成功插入最终用户输入的数据给最终用户(在我们的例子中是student.jsp)。
所以,我可以将这种类型的消息传递给任何客户端网页。
我不想将此消息作为URL查询字符串传递。
是否有其他更好,更安全的方式来传递这些类型的消息......
答案 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 [] ......