我有几种情况,servlet需要从数据库中检索的记录将数据传递给JSP中的表单。目前,我将这些信息存储在请求中,使用RequestDispatcher转发到页面,一切都很顺利。
但是,这不适合PRG模式(AFAIK),当然意味着刷新生成的JSP意味着重新运行servlet,这是不可取的。
我当然可以在会话中存储这些值,但这意味着事后清除它们,甚至使用会话看起来像是从数据库中显示记录的一些黑客。
我只是想知道在这种情况下最佳做法是什么?我应该继续使用请求,使用会话还是其他一些技术?
提前致谢。
修改 在阅读了几篇文章和堆栈溢出答案之后,我发现除了在将数据从servlet传递到JSP时使用请求和调度程序之外,还有任何其他选项。这对我来说似乎不对,但会议也没有。任何人都可以对此有所了解吗?
答案 0 :(得分:4)
我不确定我是否完全理解这个问题,但有两种模式是最佳实践:
那意味着你应该:
/product?id=<generatedId>
或/product/<generatedId>
当然,您可以选择重定向到其他页面,例如产品列表。
如果困扰你的是在从servlet转发到JSP时使用请求来存储数据,那么这不应该打扰你:它是唯一干净的方法。数据将仅限于请求范围,并在处理请求时进行垃圾收集。