<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    RESTful Web Service(三):使用ajax創建客戶端

    上個文章中使用eclipse創建的web service。根據rest的思想,每一個資源都有唯一標識的URI。在REST Web service explorer 中可以看到每個資源的URI。

    這里放出一些調用的例子:

    1.get請求獲得Category xml 數據。

    $("#btncall").click(function (){
        $.ajax({
            url:"/restblog/services/category",
            type:"GET",
            dataType:'xml',
            success :function (data){
                var tablehtml="<table class='tableresult' border='1' bordercolor='#ccc'><tr><th>編號</th><th>名稱</th></tr>";
                $("category",data).each(function (i,category){
                    var id=$("id",category).text();
                    var name=$("name",category).text();
                    tablehtml+=("<tr><td>"+id+"</td><td>"+name+"</td></tr>");
                });
                tablehtml+="</table>";
            $(tablehtml).appendTo("#result");
            },error:function (){
                alert("get category list failed!");
        }});
    });

    jquery的ajax調用有一個參數dataType是期望得到的數據格式,目前版本的可選值為xml,json,html,jsonp.默認的是html。指定了該屬性,jquery會自動解析數據格式。

    上面的例子接受到的數據形如:

    <?xml version="1.0" encoding="UTF-8"?>
       <Categories>
           <category>
               <id>1</id>
               <name>第一個分類</name>
           </category>
           <category>
               <id>2</id>
               <name>第二個分類</name>
           </category>
       </Categories>

    data是一個xml對象,在沒有jquery的情況下解析xml是一件很麻煩的事情。但是使用jquery,xml解析起來和html一樣。

    $("category",data)是查找標簽名(tagName)為category節點,返回jquery對象。注意獲得節點值用的是text()方法。

    還得注意的地方就是url 這里的路徑和請求jsp的規則是一樣。

    2.發送json的例子。

    $("#btnAddbyjson").click(function (){
        $.ajax({
            url:"/restblog/services/category/add",
            type:"PUT",
            data:"{\"id\":1,\"name\":\"category1\"}",
            contentType:'application/json',
            success :function (result){
                alert(result);
            },error:function (){
                alert("add category failed!");
        }});
    });

    注意type: 通常的ajax調用都只是GET POST 這里用的是PUT,要回過神來。

    contentType:與服務方法上的Consume 標注屬性一樣。在ajax調用的時候會在請求的Header添加{"contentType","application/json"}的鍵/值標明發送的數據格式是json。

    即便發送的數據格式是json,但是真正的數據是以字符串的形式在網絡傳輸的,所以data屬性只是json的字符串,由服務器端解析成Category對象。這里的json字符串格式比較嚴格,不能適用單引號' ,這里要注意。

    data屬性即可以是字符串又可以是json,jquery會根據contentType解析成需要發送的格式。

    下面的截圖是在FireBug下看到的數據發送情況:

    1 

    這張圖旨在說明發送的數據不是一個鍵/值類型。區別與下面的例子。

    3.POST的表單提交。

    $("#btnAdd").click(function (){
        $.ajax({
            url:"/restblog/services/category/addbyname",
            type:"POST",
            data:{'categoryname':$("#txtName").val()},
            success :function (result){
                alert(result);
            },error:function (){
                alert("add category failed!");
        }});
    });

    addbyname方法的categoryname標識為@FormParam 所以用POST提交的數據被當做Form提交的數據。下面的截圖說明瀏覽器發送的是一個標準的鍵/值數據

    2

    4.調用帶@Context標識參數的方法

    $("#btncommonProcess").click(function (){
        $.ajax({
            url:"/restblog/services/category/commonProcess",
            type:"GET",
            data:"a=b&a=e&c=d",
            success :function (result){
                alert(result);
            },error:function (){
                alert("commonProcess failed!");
        }});
    });

    服務端的代碼見上一篇文章。

    控制臺上打?。?/p>

    c : [d]
    a : [b, e]

    總結

    REST Web service 不但提供了標準的調用方法,同時擁有非常簡便的ajax調用。由于請求的純數據,所以他更適合于ajax調用。而且的客戶端可以跨平臺,跨應用。他的優勢是無可比擬的,我相信他的未來不可估量。

    posted on 2009-02-10 21:34 衡鋒 閱讀(3873) 評論(1)  編輯  收藏 所屬分類: restful webservice

    評論

    # re: RESTful Web Service(三):使用ajax創建客戶端 2009-11-07 12:34 王大力

    謝謝你的文章!  回復  更多評論   

    主站蜘蛛池模板: 亚洲精品国产手机| 亚洲AV无码1区2区久久| 亚洲欧洲春色校园另类小说| 色欲A∨无码蜜臀AV免费播| 亚洲国产三级在线观看| 国产成人AV免费观看| 亚洲AV无码一区二区三区系列| 9久久免费国产精品特黄| 亚洲高清专区日韩精品| 日本亚洲欧洲免费天堂午夜看片女人员 | 一级特黄录像视频免费| 国产精品亚洲mnbav网站| 怡红院免费的全部视频| 亚洲成a人片77777老司机| 亚洲综合免费视频| 亚洲日日做天天做日日谢| 麻豆国产入口在线观看免费| 午夜免费国产体验区免费的| 黑人精品videos亚洲人| 91精品国产免费久久国语蜜臀 | 亚洲日韩精品国产3区| 亚洲A丁香五香天堂网| 怡红院免费全部视频在线视频| 亚洲精品高清视频| 最近免费中文字幕视频高清在线看| 亚洲AV无码专区在线观看成人| 久久亚洲中文字幕精品一区| 午夜视频在线免费观看| 中文字幕亚洲码在线| 久久亚洲国产精品五月天婷| 8x8x华人永久免费视频| 亚洲美国产亚洲AV| 亚洲日韩精品射精日| 拍拍拍又黄又爽无挡视频免费| 免费人成网站永久| 亚洲第一成年网站大全亚洲| 免费午夜爽爽爽WWW视频十八禁| 大地资源中文在线观看免费版 | 五月天国产成人AV免费观看| 91亚洲国产在人线播放午夜| 成年女人永久免费观看片|