将文本框的值传递给java servlet

时间:2012-01-26 17:28:58

标签: java servlets

好吧无法在任何地方找到它,我想知道如何从jsp或servlet中获取文本框的值并将其显示在另一个servlet中。

现在我的问题不是传递数据并实际显示它,我的问题是,只要空间在值中,我只能得到第一位信息。例如:

<form method="post" action="Phase1Servlet">

  <p>Favorite Place:</p> <input type="text" name="place"></div>

  <input id="submit" type="submit"  value="Submit">

</form>

说用户输入“The Mall”

我使用的Servlet中的

String place = request.getParameter("place"); 

然后在我的代码中的某处输出变量位置我只得到“The”这个词

我是否需要使用request.getParameterValues(“place”);代替?如果是这样,我如何通过隐藏字段将值从servlet传递给servlet?当我这样做时:

String [] placeArr = request.getParameterValues("place");

out.println("<input type=\"hidden\" name=\"place\" value="+ placeArr +">");

隐藏字段实际存储[Ljava.lang.String; @ f61f5c

我必须解析这个或以某种方式转换它吗?

2 个答案:

答案 0 :(得分:3)

应该是

String placeArr = request.getParameterValue("place");
out.println("<input type=\"hidden\" name=\"place\" value=\""+ placeArr +"\">");

在隐藏字段中转义字符串

答案 1 :(得分:2)

你确实在使用

时确定
String place = request.getParameter("place");

place变量在第一个空格之前只包含单词?因为这是相当奇怪的情况。如果要将参数传递给另一个servlet(假设从该servlet调用另一个servlet),可以在第一个servlet中设置一个request属性,然后将该请求分派给另一个servlet,例如:

request.setAttribute("place", "The mail");
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher( path_to_another_servlet );
dispatcher.forward( request, response );

然后在另一个servlet中,ypu可以将它用作:

String place = request.getAttribute("place");