Java 在JSP中不使用HTML表单而传递参数

Java 在JSP中不使用HTML表单而传递参数,java,jsp,Java,Jsp,我做了一些研究,发现的大多数示例都使用表单(显然是用于用户输入)收集数据,然后通过请求对象将数据传递到另一个JSP页面 我的问题是:如果参数没有在HTML标记中设置,是否可以在JSP页面之间传递参数?JSP页面无法区分手动构建的GET url,例如: ,而不是类似于: <form method="get" action="/foo.jsp"> <input name="bar" value="baz"> </form> 无论哪种方式,都可以通过getPa

我做了一些研究,发现的大多数示例都使用表单(显然是用于用户输入)收集数据,然后通过请求对象将数据传递到另一个JSP页面


我的问题是:如果参数没有在HTML
标记中设置,是否可以在JSP页面之间传递参数?

JSP页面无法区分手动构建的GET url,例如:

,而不是类似于:

<form method="get" action="/foo.jsp">
<input name="bar" value="baz">
</form>

无论哪种方式,都可以通过
getParameter
getParameterValues


这就是您要问的吗?

您通常在servlet/JSP或JSP页面之间以作用域属性(在请求、会话或应用程序中)传递数据。例如,
request.setAttribute(“key”,data)
可以在一个JSP中设置“key”属性,
request.getAttribute(“key”)
在另一个JSP中获取此数据(如果多个JSP正在处理同一个请求)

如果您真正需要的话,可以通过包装您的请求并重写getParameter和类似的方法来创建假参数


更新:我的答案是在处理同一请求的多个参与方之间传递数据。这可能是您想要的,也可能不是,因为您的问题并不清楚。

有几种方法可以将信息从一个JSP页面传递到另一个JSP页面

1.隐藏值。 只需将数据写入表单中类型为“hidden”的输入字段,例如

<input type="hidden" name="mydata" value="<%=thedata%>">

在这里,状态保持在服务器端,这有一些好处(用户可以在不丢失位置的情况下浏览和返回,但如果您不小心,浏览器中的后退和前进按钮会变得有点不可靠。此外,该值适用于所有页面


但是,它的优点是,信息永远不会发送到客户端,因此更安全、更防篡改。

对我来说,不完全清楚“在JSP页面之间传递参数”是什么意思?这些JSP页面是来自浏览器的不同请求还是服务器端请求分派?您希望传递什么样的参数?用户输入、某些处理/用户状态等?第五种方法是创建服务器端POST。
<a href="another.jsp?mydata=<%=thedata>>Go!</a>
session.setAttribute(String key, Object value)
session.getAttribute(String key)