您的位置:首页 > Web前端 > JavaScript

servlet与json

2015-08-06 15:13 609 查看
在jsp页面js脚本中

<script type="text/javascript">

    

    window.onload = function validate(obj){

          var xmlhttp;

           if(window.XMLHttpRequest){

            xmlhttp=new XMLHttpRequest();

              }else{

            xmlhttp=new ActiveObject("Microsoft.XMLHTTP");

           }

           xmlhttp.onreadystatechange=function(){

            if (xmlhttp.readyState==4 && xmlhttp.status==200){          

                 var value =xmlhttp.responseText;

                  var obj = eval ("(" + value + ")");

                  //var json = JSON.parse(value);

                 

                alert(obj.person[0].name);

        //在这里遍历输出返回来的信息即可      

        }

   }

   var url ="fan/servlet/demo?name="+obj;   

   xmlhttp.open("POST",url,true);

   xmlhttp.send();

  }

</script> 

var url ="fan/servlet/demo?name="+obj;   

   xmlhttp.open("POST",url,true);

   xmlhttp.send();

这三行代码请求servlet

请求成功后就会返回servlet返回接送数据给jsp页面

     xmlhttp.onreadystatechange=function(){

            if (xmlhttp.readyState==4 && xmlhttp.status==200){          

                 var value =xmlhttp.responseText;

                  var obj = eval ("(" + value + ")");

                  //var json = JSON.parse(value);

                 

                alert(obj.person[0].name);

        //在这里遍历输出返回来的信息即可      

        }

   }

servlet代码

     @Override

     protected void doPost(HttpServletRequest req, HttpServletResponse resp)

       throws ServletException, IOException {

      // TODO Auto-generated method stub

      resp.setContentType("text/xml");

      resp.setCharacterEncoding("utf-8");

      resp.setHeader("Cache-Control", "no-cache");

      try{

       Person p =new Person();

       p.setName("小宝");

       p.setAge(3);

       p.setSex("男");

       List<Person> list =new ArrayList<Person>();

       list.add(p);

       try{

        JSONArray json =JSONArray.fromObject(list);

        

        JSONObject jb =new JSONObject();

        jb.put("person", json);

        System.out.println(jb.toString());

        resp.getWriter().write(jb.toString());

        

       }catch(IOException e){

        e.printStackTrace();

       }

      }catch(Exception e){

       e.printStackTrace();

      }

     }

jsonarray对象添加pojo类对象集合

然后在将集合传给jsonobject对象 建立键值对person jsonobject

  resp.getWriter().write(jb.toString());将数据返回给请求页面

     在请求页面中

js代码中获取数据 根据数据的json格式获取

    var value =xmlhttp.responseText;

                  var obj = eval ("(" + value + ")");

                  //var json = JSON.parse(value);

                 

                alert(obj.person[0].name);

obj 解析了json数据

obj.person 获取是person建的 jsonarray对象

person[0]获取list集合中第一个 建立person pojo类的数据

person[0].name 是person pojo类的一个属性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: