java - 仅检索 POST 参数 (Java)

标签 java post servlets

有谁知道从 HttpServletRequest 对象中只获取 POST 参数的方法吗?

IE,PHP 有 $_POST 超全局,如果 HTTP 方法是 POST(默认),Perl 的 CGI.pm 将只检索 POST 参数。

HttpServletRequest.getParameter(String) 将包含 GET URL 参数,即使 HTTP 方法是 POST。

最佳答案

据我了解,HTTP中没有POST参数和GET参数之类的东西,有POST和GET方法。当使用 POST 方法发出请求时,参数位于消息正文中。在 GET 请求的情况下,参数进入 URL。

我的第一个想法是这是您的 servlet 容器中的一个实现错误。但是,由于事情并不总是像您期望的那样,java servlet 规范(至少 2.4 版本)没有区分这两种参数。因此,无法使用 servlet API 获取 post 或 url 参数。

当然,您已经有了 B 计划。但是,为了以防万一,我发布了我想到的两个备选方案:

  1. 如果您有权访问参数名称定义,则可以在迭代 getParameterNames() 结果时使用前缀来区分两者。

  2. 您可以解析 URL,创建 URL 对象并使用 getQuery() 方法仅获取参数。然后,使用一些实用程序类(例如 ParameterParser)解析查询字符串中的参数在 HttpClient图书馆。最后,从 getParameterNames() 结果中减去该名称。

关于java - 仅检索 POST 参数 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197729/

相关文章:

multithreading - Servlet 线程池 vs Servlet 实例池 - 通过 Web 容器

java - 字符串比较,Java

java - Android:从 Volley 回调中填充 fragment 中的 ListView

java - 使用 Apache-POI 库获取单元格内容时,我得到了 "Cannot get a numeric value from a text cell"和相反的结果。我如何解决它?

java - 为 Spring @Scheduled 提供时区?

java - 如何从 Java 中的 post 请求中提取 httponly cookie?

php - 插入MYSQL字符串、PHP时POST值变空

node.js - 长 POST node.js 上的套接字超时

java - jax-ws 更改或包装 WSServlet

java - 如何获得所有可用 servlet 的列表?