8

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

我确实理解这实际上是一件矛盾的事情,但我的问题是它在实践中是否有效。

所以我的问题是;

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

  2. 假设我使用 Java/JSP 来访问服务器端的值。那么在服务器端获取值的方法是什么?访问 param=value 的值以及文本框/单选按钮/复选框等表单元素的语法是否相同?

4

3 回答 3

1

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

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

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

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

${param.param_name}

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

在这种情况下,getParameter("param_name)将返回其中的第一个(如此所述),但是可以通过getParameterValues("param_name")以下方式使用该方法读取它们:

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

如需更多信息,请阅读此处

于 2014-12-21T03:43:52.683 回答
0

是的。您可以在您的操作类中检索这些参数。只是您必须使用 getter 和 setter 来创建同名的属性(在您的情况下为参数)。

示例代码

private String param;

{... getters and setters ...}

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

于 2015-12-15T06:15:39.607 回答
0

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

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

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

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

于 2016-01-10T16:54:05.807 回答