0

假设我们在“Page1.jsp”中有“form1”,在“page2.jsp”中有“form2”。

步骤是:

  1. 提交表格1。

  2. 我们在“page2.jsp”中获取输入文本字段值“t1”,然后

  3. 然后使用“form 2”中的隐藏字段将此“t1”值传递给相同的“page2.jsp”或“page3.jsp”。

  4. 提交“form2”。
  5. 通过访问表单 2 重定向的页面上的隐藏字段名称来获取相同的值“t1”。它可以是同一页面或其他页面,例如“page3.jsp”。

因此,这是一种在页面之间传递信息的简单方法。在这里看到只有隐藏字段有效但会话不能做的区别。如果使用隐藏字段将此“t1”值传递给相同的“page2.jsp”。这意味着如果我们将表单 2 重定向到相同的 page2 即步骤是:

假设我们在“Page1.jsp”中有“form1”,在“page2.jsp”中有“form2”。

  1. 提交“form1”。
  2. 我们在“page2.jsp”中获取输入文本字段值“t1”,然后
  3. 然后创建一个会话来保存这个“t1”值。
  4. 提交“form2”。
  5. 现在如果“form 2”重定向到“page3.jsp”,那么我们可以很容易地获取会话值,但是如果“form 2”重定向到“page2.jsp”(重定向到同一页面),那么会话值是空的。

为什么我们无法在隐藏字段可以的同一页面上获取会话值?请容忍我这个冗长的问题。但我想知道这背后的概念。

4

1 回答 1

1

确实,会话可以在同一页面上获得价值。会话驻留在服务器端。

JSP 容器jsession_id为每个访问者创建 on 并将此信息放入响应中(通过查询字符串或 cookie)。对于每个请求,浏览器都会发回jsession_id信息。回到服务器端,有一个以 jsession_id 为键、会话为值的映射。JSP 或 servlet 可以访问此对象内的信息。

但是,当然,t1例如您的示例中的值应该发送到服务器端并放入会话以在将来使用时恢复。

看这里

于 2012-12-13T10:47:23.210 回答