jquery中的ajax应用

jquery中的ajax应用

jquery手册中还需要去了解

function checkname(obj){
  var val = obj.value;
   var url ="AjaxServlet.do";
    var param={uname:'张三2',tA:23};  //传对象
    var data= "data="+"123";              //传字符串
    var data2 ="data="+"123"+"&data2="+"456";  //传多个参数
   $.ajax({
                 url: url,   // 请求路径
                 type: "POST",  //提交方式
                 dataType:'text', //获取数据类型,还可以是json、xml
                 cache:false,    //是否缓存
                 async:false,    //是否异步   true(异步)或 false(同步)
                 data:param,      //传入的参数
                 beforeSend:function(){  //请求发送之前触发,
                  alert("我要出发啦。。。。");
                 },
                 success:function(data){  //请求成功后返回的数据
                   alert("jquery==="+data);
                   data = eval("(" + data +")" );  //对获取到的数据进行处理,通过eval()转化成js数组
                   alert("eval==="+data);
                     alert(data.userA.name);
                 }

   });

 }
当 dataType:’text’,时

servlet 只需将数据放入流中即可

              resp.setContentType("text/html"); //必须加上
              PrintWriter out =  resp.getWriter();
              out.write("传入的值,一般为字符串");
              out.flush();
              out.close();
当 dataType:’json’,时

在servlet中需要将数据转化为json,在放入流中
手动转换为json格式

//          String jsonStr="{'name':'张三','upw':'123','age':'23','sex':'女'}";
//              User user = new User("张三", "123", 12, "男");
//              String jsonStr="{\"uname\": \""+ user.getName()+"\",\"age\":\""+user.getAge()+"\"}";
//                  resp.setContentType("text/html");
//                  PrintWriter out =  resp.getWriter();
//                  out.write(jsonStr);
//                  out.flush();
//                  out.close();

自动转换为json

public static String transToJsonStr(Object obj){

         ObjectMapper mapper = new ObjectMapper();  
    //     mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //表示自动去掉值为null的
         StringWriter sw = new StringWriter();
         String strJson = null ;
         try {
            mapper.writeValue(sw, obj);
            strJson = sw.toString();
        } catch (JsonGenerationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return strJson ;
    }


    public static void outJsonStrAndColse(HttpServletResponse resp,String jsonStr){
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        PrintWriter out;
        try {
            out = resp.getWriter();
            out.write(jsonStr);
            out.flush();
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
 User userA = new User("张三a", "123", 12, "男");
              User userB = new User("张三b", "123", 122, "女");
              List list  = new  ArrayList<User>();
              list.add(userA);
              list.add(userB);

              String jsonstr = JsonUtil.transToJsonStr(list);
              JsonUtil.outJsonStrAndColse(resp, jsonstr);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值