HTML表单POST方法,在操作URL中使用查询字符串

时间:2012-04-25 06:49:47

标签: forms query-string struts-1

假设我的页面上有一个带有method = POST的表单。 现在这个表单有一些基本的表单元素,如文本框,复选框等 它的操作网址为http://example.com/someAction.do?param=value

我确实理解这实际上是一件相互矛盾的事情,但我的问题是它是否会在实践中发挥作用。

所以我的问题是;

  1. 由于form方法是POST,我的URL中也有一个查询字符串(?param = value) 它会正常工作吗?即我能否在我的接收页面上检索param = value(someAction.do)

  2. 假设我使用Java / JSP访问服务器端的值。那么在服务器端获取值的方法是什么?语法相同是访问param = value的值以及textbox / radio button / checkbox等表单元素吗?

3 个答案:

答案 0 :(得分:1)

1)是的,您可以访问POST和GET变量,因为您的请求将同时包含这两个变量。所以你可以相应地使用$ _GET [" param_name"]和$ _POST [" param_name"]。

2)使用JSP,您可以使用以下代码:

<%= request.getParameter("param_name") %>

如果您正在使用EL(JSP表达式语言),您还可以通过以下方式获取它们:

${param.param_name}

编辑:如果请求QueryString和POST数据中都存在param_name,则它们都将作为值数组返回,第一个是QueryString。

在这种情况下,getParameter("param_name)将返回其中的第一个(如here所述),但是可以使用getParameterValues("param_name")方法以下列方式读取它们:< / p>

String[] values = request.getParameterValues("param_name"); 

有关详细信息,请read here

答案 1 :(得分:0)

是。您可以在操作类中检索这些参数。 只需要用吸气剂和固定剂制作同名物品(在你的情况下是param)。

示例代码

private String param;

{... getters and setters ...}

当您执行此操作时,参数值(通过URL传递)将保存到该特定属性的getter中。通过这个,你可以用这个价值做任何你想做的事。

答案 2 :(得分:0)

POST方法只是隐藏用户提交的表单数据。除非使用了特殊工具,否则他/她无法看到哪些数据已发送到服务器。

GET方法允许任何人查看它拥有的数据。您可以轻松地从URL中查看数据(例如,通过查看查询字符串中的键值对)。

换句话说,您可以通过在表单操作中使用查询字符串向用户显示(可能不重要)数据。例如,在数据表过滤器中。要保持当前的分页状态,您可以将domain.com/path.do?page=3用作action。您可以隐藏表单组件中的其他数据,例如inputtextarea等。

可以使用相同的方法在服务器中捕获这两种方法。例如,在Java中,使用request.getParameter("page")