JSP / Servlet验证 - 转发与重定向

时间:2013-06-28 05:10:46

标签: java validation servlets redirect forward

我想完成以下任务:

我有一个JSP中表示的表单 - 让我们称之为input.jsp。此表单提交给将在DB中创建对象的servlet - 让我们调用此CreateServlet。成功提交表单后,servlet应将用户定向回input.jsp并显示成功消息。验证失败时,它应重定向回input.jsp,显示错误消息,保留输入值。

我可以想到几个选项:

  1. 在验证失败时,我可以使用RequestDispatcher执行转发到input.jsp。这样我就可以轻松地从表单中显示验证错误和输入参数。但是,我知道a forward should not be used in the case of performing an edit operation,所以当请求成功时,我不应该进行转发,而应该进行重定向。重定向的问题在于我不能轻易地设置属性,除非我在URL中传递属性,例如input.jsp?success=true

  2. 我可以在会话中存储验证消息,成功消息和输入值,并始终执行重定向。在JSP显示页面之后,它可以从会话中删除这些属性。

  3. 我使用的是普通的servlet和JSP,而不是像Struts这样的任何框架。在这种情况下推荐的做法是什么?

1 个答案:

答案 0 :(得分:0)

如果我是你,我会选择第二个选项。我的理由:

  • 使其成为封装该表单中所有输入的对象。它会    如果我需要向表单添加属性,则更容易维护。
  • 它更安全,因为您的网址会从属性中清除。

如果您使用像struts这样的框架,那将非常容易。一切都将由他们处理。