servlet查询字符串

时间:2016-02-12 05:08:55

标签: java mysql servlets

我使用查询字符串将参数发送到表单操作标记中的其他页面 但是当我在下一页上获取值时,它显示null并且null存储在数据库中。

我的代码如下:

out.println("<html>");
out.println("<form action=SubmitTimesheet?manager="+manager+">");

在另一页上,我试图以下列方式获取参数值:

String manager=request.getParameter("manager");
out.println(manager);

但它正在打印null,如果我试图将获取的值存储在数据库中,则存储为空。

请帮忙。

2 个答案:

答案 0 :(得分:0)

如果@Override public void onBackPressed() { if (mWebView.canGoBack()) { mWebView.goBack(); return; } // Otherwise defer to system default behavior. super.onBackPressed(); } 值为空,请不要添加manager查询参数。

还记得对查询参数进行编码。

最后,应引用manager属性的值。

action

您也可以使用out.print("<form action=\"SubmitTimesheet"); if (manager != null) out.print("?manager=" + URLEncoder.encode(manager, "UTF-8")); out.println("\">");

代替"UTF-8"字符串文字

<强>更新

实际上,您不应该将查询参数添加到StandardCharsets.UTF_8的操作中。表单将发布<form>和其他表单相关元素的所有值,因此您应该做的是将<input>值添加为隐藏输入字段:

manager

以上使用回答问题Recommended method for escaping HTML in Java建议的库。

答案 1 :(得分:0)

我使用会话对象并在会话变量而不是查询字符串中传递了manager的值。 我使用了以下代码:

ses.putValue(&#34;经理&#34;,经理);

在第一个servlet页面上然后在第二个servlet页面上我获取了这样的值:

String manager=ses.getValue("manager").toString();

out.println(manager);

现在它正在打印正确的值而不是null