如何阅读HTTP POST请求参数

时间:2015-12-07 17:16:32

标签: java http post

我收到了一个带有多个名称 - 值对参数的application / x-www-form-urlencoded HTTP POST请求。我得到的一些参数是运算符,操作数和值。运算符的参数从operator1到operator20运行,操作数和值的参数分别从operand1到operand20和value1到value20运行。

示例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;
 }
}

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

使用这些地图,我将这三个参数关联起来形成标准POJO。

请提供有关如何更有效和更优雅地实现这一目标的任何建议。

1 个答案:

答案 0 :(得分: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。