【问题标题】:How to read HTTP POST request parameters如何读取 HTTP POST 请求参数
【发布时间】:2015-12-07 17:16:32
【问题描述】:

我收到一个带有多个名称-值-对参数的 application/x-www-form-urlencoded HTTP POST 请求。我得到的一些参数是运算符、操作数和值。运算符的参数从运算符 1 到运算符 20 运行,类似地,操作数和值的参数分别从操作数 1 到操作数 20 和值 1 到值 20。

示例 POST 数据....operator1=equals&operator2=equals&operand2=City&value1=John&operand1=Name&value2=Miami&operator3=&operator4=&operand3=&......

我的目标是为每个运算符、操作数和值三元组创建一个 POJO。

public class Criteria {

 private String operand;
 private String value;
 private String operator;

 public Criteria(String operand, String value, String operator) {
    super();
    this.operand = operand;
    this.value = value;
    this.operator = operator;
 }
}

读取参数并正确映射运算符、操作数和值三元组的最佳方法是什么。现在我有两张地图。 第一个映射关联操作数和操作符 = {operand1=operator1,operand2=operator2,....} 第二个映射关联操作数和值 = {operand1=value1,operand2=value2,....}

使用这些映射,我将三个参数关联起来形成 Criteria POJO。

请就如何更高效、更优雅地实现这一目标提供任何建议。

【问题讨论】:

  • 这不是GET 方法吗?由于日期是通过 URL 发送的

标签: java http post


【解决方案1】:

创建一个新的 servlet 并覆盖 doPost :

 @WebServlet("/PostMe")
public class PostMe extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ArrayList<String> Params = new ArrayList<>();
    for(int i=1;i<20;i++){
    Params.add(request.getParameter("operand"+i.toString()); }
    }

你得到的是一个包含所有参数的arrayList。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-08
    • 2021-07-08
    • 2019-06-14
    • 2012-08-02
    • 1970-01-01
    相关资源
    最近更新 更多