我做了一些研究,我发现的大多数示例都使用表单(显然用于用户输入)来收集数据,然后通过请求对象将这些数据传递到另一个 JSP 页面。
我的问题是:如果未在 HTML 中设置参数,是否可以在 JSP 页面之间传递参数 <form>
标签?
最佳答案
有几种方法可以将信息从一个 JSP 页面传递到另一个页面。
1。隐藏值。
只需将数据写入“隐藏”类型的表单中的输入字段,例如
<input type="hidden" name="mydata" value="<%=thedata%>">
这样写入的数据将在提交相关表单时返回。当用户填写一系列对话框时,这可能是一种“携带”信息的有用方式,因为所有状态都是用户端的,后退和前进按钮将按预期工作。
2。网址编写。
将参数附加到页面链接中的 URL,例如
<a href="another.jsp?mydata=<%=thedata>>Go!</a>
这也维护了客户端的状态,同时消除了提交表单元素的需要。
3。 cookies 。
应该不言而喻。状态仍然是用户端,但现在由 cookie 处理。在某些方面更脆弱,因为有些人禁用 cookie。如果您不小心,后退和前进按钮可能会做出意想不到的事情
4。服务器端( session )
最后,您可以将数据存储在一个 JSP 的 session 变量中,并在下一个 JSP 上检索它,例如
session.setAttribute(String key, Object value)
和
session.getAttribute(String key)
这里的状态保持在服务器端,这有一些好处(用户可以浏览并返回而不会丢失他的位置,但往往会使浏览器中的后退和前进按钮有点不可靠,除非你小心。还有值适用于所有页面。
不过,它确实有一个优势,即信息永远不会发送给客户端,因此更安全、更防篡改。
关于java - 在 JSP 中不使用 HTML 表单传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/862440/