java维护不同表单提交之间的状态
假设我们在“Page1.jsp”中有“form1”,在“page2.jsp”中有“form2”
步骤如下:
提交表格1
我们在“page2.jsp”中得到输入文本字段值“t1”,并且
然后使用“form 2”中的隐藏字段将这个“t1”值传递给相同的“page2.jsp”或“page3.jsp”
- 提交“表格2”李>
- 通过访问表单2重定向页面上的隐藏字段名,获得相同的值“t1”。它可以是同一个页面,也可以是其他页面,比如“page3.jsp”李>
因此,这是一种在页面之间传递信息的简单方法。这里可以看到只有隐藏字段起作用,而会话不能起作用的区别。如果使用隐藏字段将此“t1”值传递给同一个“page2.jsp”。这意味着如果我们将表格2重定向到同一页面2,即步骤如下:
假设我们在“Page1.jsp”中有“form1”,在“page2.jsp”中有“form2”
- 提交“表格1”李>
- 我们在“page2.jsp”中得到输入文本字段值“t1”,然后
- 然后创建一个会话来保存这个“t1”值李>
- 提交“表格2”李>
- 现在,如果“form 2”重定向到“page3.jsp”,那么我们可以很容易地获得会话值,但是如果“form 2”重定向到“page2.jsp”(重定向到同一页面),那么会话值是空的李>
为什么我们不能在同一个页面上获得会话值,而隐藏字段可以?请允许我回答这个长问题。但我想知道这背后的概念
# 1 楼答案
实际上,会话可以在同一页上获得价值。会话驻留在服务器端
JSP容器为每个访问者在
jsession_id
上创建,并将此信息作为响应(通过查询字符串或cookie)。对于每个请求,浏览器都会发回jsession_id
信息。回到服务器端,有一个以jsession_id为键、session为值的映射。JSP或servlet可以访问这个对象中的信息然而,当然,
t1
中的值(例如您的示例)应该发送到服务器端,并放入会话中,以便在将来使用时恢复See here