有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java维护不同表单提交之间的状态

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

步骤如下:

  1. 提交表格1

  2. 我们在“page2.jsp”中得到输入文本字段值“t1”,并且

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

  4. 提交“表格2”
  5. 通过访问表单2重定向页面上的隐藏字段名,获得相同的值“t1”。它可以是同一个页面,也可以是其他页面,比如“page3.jsp”

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

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

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

为什么我们不能在同一个页面上获得会话值,而隐藏字段可以?请允许我回答这个长问题。但我想知道这背后的概念


共 (1) 个答案

  1. # 1 楼答案

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

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

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

    See here