如何在servlet中处理已发布的String数组?

时间:2014-10-19 12:07:56

标签: java arrays ajax servlets request

在我的表单中,用户可以在将表单发布到servlet之前检查几个复选框:

  <input type="checkbox" class="genre" name="genre[]" value="1"><label for="1">First Person Shooter</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="2"><label for="2">Sports</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="3"><label for="3">Action/Adventure</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="4"><label for="4">Educational</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="5"><label for="5">Puzzle</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="6"><label for="6">Real Time Strategy</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="7"><label for="7">Beat em ups</label><br>
  <input type="checkbox" class="genre" name="genre[]" value="8"><label for="8">Survival Horror</label><br>

我使用AJAX调用将表单数据发布到servlet并序列化表单数据,如下所示:

$(".mainSurvey").submit(function(e){

    e.preventDefault(); //STOP default action
    var postData    = $(".mainSurvey").serializeArray();
    var botCatcher  = $("#botCatcher").val();

    if($(".mainSurvey input:checkbox:checked").length > 0 && botCatcher.length == 0){

        $.ajax(
        {
            type: "POST",
            url : "DatabaseService",
            data : postData,
            success: function(data) 
            {
                // continue
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                // handle error
            });

        }else{
            // handle error
        }
});

我通常使用以下方式访问文本输入值:

String input = request.getParameter("input");

如何在发布后访问servlet中的复选框值数组?

1 个答案:

答案 0 :(得分:1)

来自Servlet API文档:

  

的getParameter

     

public java.lang.String getParameter(java.lang.String name)返回   请求参数的值为String,如果参数为null   不存在。请求参数是随附发送的额外信息   请求。对于HTTP servlet,参数包含在查询中   字符串或发布的表单数据。 你应该只使用这种方法   确保参数只有一个值。如果参数可能有   不止一个值,使用getParameterValues(java.lang.String)。

     

如果将此方法与多值参数一起使用,则为该值   返回等于返回的数组中的第一个值   getParameterValues。

     

如果参数数据是在请求体中发送的,例如发生   使用HTTP POST请求,然后通过直接读取正文   getInputStream()或getReader()可能会干扰执行   这种方法。

     

参数:name - 指定参数名称的String   返回:表示参数的单个值的String   另外:getParameterValues(java.lang.String)