【发布时间】:2016-04-20 18:40:00
【问题描述】:
简介: JAVA Web 应用程序中包含的多个 Servlet。 有些值用于所有 servlet,而其他值仅与指定的 servlet 相关。 因此,使用了一个输入表单 (JSP),然后将这些值/表单输入发布到另一个“新”JSP。从这个 JSP 中,来自先前表单 (JSP) 的值应该被发布到一个 servlet(-有时,来自新表单的附加值。)
使用简单的 HTML 表单,来自 JSP 的值成功发布到另一个 JSP。
问题: 喜欢使用“第二个”JSP 将值(输入字符串)从先前的 JSP 发送到 JAVA servlet(使用 POST 方法)。但是失败了,因为它们没有从“第二个”JSP 发送到 Servlet,即使“第二个”JSP 可以从“第一个”JSP 获取它们。
第一个 JSP:
<form name="calca" action="math.jsp" method="POST">
<br>
<input type="text" name="Number1" value="0" />
<br><br>
<input type="text" name="Number2" value="0" />
<br><br><br><br>
<input type="submit" value="Update" name="update" />
</form>
第二个 JSP:(math.jsp)
<form name="calcsum" action="PlusServlet" method="POST">
<% String Number1 = request.getParameter("Number1"); %>
<% String Number2 = request.getParameter("Number2"); %>
<br>
<span>Number1= <%= Number1 %> from calc.jsp form. </span>
<br>
<span>Number2= <%= Number2 %> from calc.jsp form. </span>
<br><br><br><br><br>
<input type="submit" value="Plus-Calc" name="Plus-Calc" />
</form>
Servlet 进程请求:
String num1=request.getParameter("Number1");
String num2=request.getParameter("Number2");
结果:值在第一个 JSP 到第二个 JSP 之间发布,而不是从第二个 JSP 到 Servlet。
如何使用“第二个”jsp 将先前表单/jsp 中的值“发送”/发布到 servlet?
【问题讨论】:
-
如果您希望您的表单帖子包含给定参数,那么表单中需要有一个与该参数对应的 元素。您可以使用
type='hidden'来提供此功能,而无需呈现这些参数的任何表示。请注意,在任何情况下,最终用户都可以对他提交的数据进行尽可能多的控制,因此您不能认为从隐藏元素中获得的参数值比其他任何参数值更安全。 -
谢谢。 *是否有另一种简单的方法可以在不使用 HTML 表单的情况下从 JSP 集合中使用先前 JSP 中的值 POST 参数?但仍然使用 POST,例如使用一些“转发”会话并调用 servlet?
-
我认为这可能对你有用:request.getRequestDispatcher("newUrl?" + request.getParameter("Number1")).forward(request,response);
-
这会将您的请求转发到 servlet 而不提交表单
-
您可以考虑将要共享的数据设置为会话属性,这样您就根本不需要通过中间 JSP 进行转发。如果您不想让它们暴露在客户的检查或操纵之下,这是一种特别好的方法。