如何在 servlet 上访问这个数组?

how to access this array on a servlet?

function getboxvalues(){
var array = [];
$("input:checkbox[name=delbox]:checked").each(function() {
                array.push($(this).val());
            });
            
JSON.stringify(array);
console.log(array);

   $.ajax({
    url: 'Deletestudent',
    dataType: 'json',
    data: {
        object: {"delbox":array}
    },
    type: 'GET'
    });
}    

编辑: 这是servlet代码 我可能必须解析我得到的对象,但当我试图让它工作时,大多数人只是建议通过通常的方式访问它。

public class Deletestudent extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Deletestudent() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String[] idlistString = request.getParameterValues("delbox");
        
        
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(request.getParameter("delbox"));
        doGet(request, response);
    }

}

我尝试通过 request.getparameter 访问它,但它 returns 为 null eventho 我尝试将它记录在 JS 文件中,它作为一个普通数组出现。

您需要使用 POST 方法,因为您正在尝试发送 JSON 数据。 然后你会得到 as request.getparameter as String,但你可能需要再次将其设为 JSON 才能轻松使用它。

你有两个问题:

  1. 你已经完全忘记了 object,即使你明确地将它放在你的数据中
  2. jQuery 遵循 PHP 主义,即用数组值重命名参数,因此它们附加了 [] 而你没有考虑到这一点。

您的 URL 将类似于:

/Deletestudent?object%5Bdelbox%5D%5B%5D=foo&object%5Bdelbox%5D%5B%5D=bar

所以你需要问一些正确的名字。

request.getParameter("object[delbox][]"));