将javascript数组传递给servlet问题
早上好,我正在使用将javascript数组传递给servlet问题,javascript,servlets,jquery-post,Javascript,Servlets,Jquery Post,早上好,我正在使用jQuery.post()将java脚本数组从JSP发送到servlet,但这里的问题是它抛出了java.lang.NullPointerException 执行操作时,在servlets.DeleteServlet.doPost(DeleteServlet.java:45)上 下面是将数组发送到servlet的java脚本方法: <script type="text/javascript" src="jquery-1.9.1.min.js"></script
jQuery.post()
将java脚本数组从JSP发送到servlet,但这里的问题是它抛出了java.lang.NullPointerException
执行操作时,在servlets.DeleteServlet.doPost(DeleteServlet.java:45)
上
下面是将数组发送到servlet的java脚本方法:
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
request.getParameterValues(“arrayData”)
将返回名为“arrayData”的所有HTTP请求参数的字符串数组。参数可以在查询字符串中,也可以在HTTP POST正文中
但是,
$.post('DeleteServlet', {
arrayData : myIdsArray,
mode : "insert"
});
不使用此名称创建任何参数。这就是为什么在第45行有一个空指针
在本例中,发送到服务器的是JSON字符串。您需要做的是在服务器上解析这个字符串。这意味着(1)从POST主体获取字符串。(2) 解析它。您可能需要使用第三方JSON解析器。json simple是一个很好的例子
或者,如果希望保持服务器代码不变,可以更改客户端代码以创建这些请求参数。最简单的方法可能是将它们放在查询字符串上。那么DeleteServlet.java中的第45行在哪里?早上好?这里是22点42分!在js中使用console.log(myIdsArray)时会得到什么?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] arrayData=request.getParameterValues("arrayData");
PrintWriter out=response.getWriter();
for (String string : arrayData) { // line 45
out.println(string);
}
$.post('DeleteServlet', {
arrayData : myIdsArray,
mode : "insert"
});