0

我需要读取 servlet 中的 HTTP POST 请求数据。数据在名称-值对中。以下是发送到服务器的数据(我从谷歌浏览器的检查元素工具的网络选项卡中选择了这些数据)。

data1[roll_no]:32
data1[section]:A
data1[standard]:2
data1[marks][]:54
data1[marks][]:23

我能够读取除列表之外的所有值marks。我尝试读取这些值是:

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    log(this.getClass().getSimpleName());
    Enumeration<String> name = request.getParameterNames();
    while(name.hasMoreElements()){
        String param = name.nextElement();
        log(param+" = "+request.getParameter(param));
    }
}

而且,在这里我需要一些线索来迭代整个标记param列表data1[marks][]

4

2 回答 2

1

使用 getParameterValues()

String param = ...;
if(param.equals("data1[marks][]")) {
    String[] marks = request.getParameterValues(param);
    for(String m : marks) { //iterate over param data1[marks][]
        //do
    }

}

getParameterValues<select multiple>在获取元素的值时也可以派上用场

<select name="multiParams" multiple>
    ...
</select>
于 2013-06-29T18:50:43.653 回答
1

在这种情况下,有些参数不是唯一的data1[marks][]

您可以尝试使用request.getparameterValues(param)which 用于存在非唯一参数键的场景

request.getParameterValues(param)将返回一个字符串数组。有关详细信息,请参阅ServletRequest API

于 2013-06-29T18:51:21.920 回答