我通过js中的方法,获得到了页面上的数据,比如是(1 2 3 4)四个数,然后把这四个数放在一个数组中,我再通过$ajax方法中的post方法把这个数组对象发送给servlet,然后输出servlet接收到的数组对象,发现那四个数之间被逗号隔开了,请问这是什么原因啊?是servlet里面的处理机制直接对数组处理了嘛?

解决方案 »

  1.   

    $ajax是哪个JS类库里的,你在servlet中得到的数据可能是那个类库给你改的
    如果servlet中通过request获得数据,那用request.getParameter("url中的名字"),它返回一个字符串数组,你可以自己再做处理假设GET的URL=http://localhost/xxx/xxxServlet?aaa=1&aaa=2&aaa=3&aaa=4
    在xxxServlet中doGet方法中使用request.getParameter("aaa")会得到一个1 2 3 4 的字符串数组
      

  2.   

     我用的js类库是jquery,url:"../DelCheckedServelt?checkids=" + checkids,checkids中的内容是{1 2 3 4},checkids是数组对象;在servlet中是这样的:String checkids = request.getParameter("checkids");System.out.println(checkids);输出来之后结果是这样的:1,2,3,4!我就是想问一下这是servlet里面的处理机制的作用吗?
      

  3.   

    不好意思,我刚才写错了 得到数组需要用 request.getParameterValuesString checkids = request.getParameter("checkids");System.out.println(checkids); 如果url中有好几个checkids,String checkids的值是取得的第一个值,只有用getParameterValues才行
    package cn.com.year2009.month04.day07;import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    import java.io.IOException;/**
     * Created by IntelliJ IDEA.
     * User: Administrator
     * Date: 2009-4-7
     * Time: 23:29:11
     * To change this template use File | Settings | File Templates.
     */
    public class TestServlet extends HttpServlet {    protected void service(HttpServletRequest request, HttpServletResponse httpServletResponse) throws ServletException, IOException {
            String a=request.getParameter("a");
            System.out.println(a);        String b[]=request.getParameterValues("a");
            for(int i=0;i<b.length;i++){
                System.out.println(b[i]);
            }
        }
    }
    url = http://localhost:7001/web/TestServlet?a=1&a=2
    打印结果 
    1
    1
    2