java - 在 JSP 中不使用 HTML 表单传递参数

标签 java jsp

我做了一些研究,我发现的大多数示例都使用表单(显然用于用户输入)来收集数据,然后通过请求对象将这些数据传递到另一个 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/

相关文章:

java - 使用 Java 打印菱形

java - 如何在 TABLE FORM 中显示来自不同表的列

html - datebox 中的 dateFormat 不会生效

java - Android :"Unexpected end of stream"下载大文件异常

java - 扩展枚举

java - 如果服务器不支持所使用的协议(protocol),JSSE 是否会实现回退?

java - Java中无法访问子类中的父类对象属性

jquery - 访问控制允许 JSP 中的来源

java - 使用 jsp 和 struts 1 自动聚焦 html 标签

java - 如何使用Java(JSP)将单独选择的日期插入mysql