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

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

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

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    AJAX 中從遠程 URL 動態取得 xml 的方法

    需求:

    JavaScript中動態的從一個URL取得xml文件,然后,動態的更新數據。

    問題的難點:

    Javascript 不能實現從一個URL讀取xml數據。

    使用動態的參數的時候,如后使用GET方法,那么,參數有可能太長。

    解決的辦法:

    這個辦法使用AJAX可以實現。

    因為AJAX可以從URL來動態的讀取xml數據。

    同時也可以很方便的分析和處理XML數據。

    問題的關鍵點:

    AJAX 不能從一個不同Context的服務器上來讀入XML,所以要想讀取xml數據的話,那就一定要在同一個Context中,如果不在,那么就使用一個Servlet來實現從一個遠程的URL上讀取數據,然后可以通過調用此Servlet來取得遠程的數據。

    我的實現:

    ?

    ? 寫一個Servlet來實現從遠程url上讀取xml數據,這個url參數是用戶根據自己的需要傳遞的。

    ??? public void doGet(HttpServletRequest request, HttpServletResponse response)

    ??????????? throws ServletException, IOException {

    ??????? System.out.println(" --------------? Get ----------------? ");

    ??????? response.setContentType("text/xml");

    ??????? response.setCharacterEncoding("UTF-8");

    ??????? //????? PrintWriter out = response.getWriter();

    ??????? //doPost(request,response);

    ???????

    ??????? String url = request.getParameter("url");

    ??????? //out.println(url);

    ??????? //String url = "";

    ??????? System.out.println("url is :? " + url);

    ???????

    ??????? //response.setContentType("text/xml");

    ???????

    ??????? PrintWriter out = response.getWriter();

    ???????????

    ??????? BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(url).openStream()));

    ???????

    ??????? StringBuffer xmlData = new StringBuffer();

    ??????? String tmp = "";

    ???????

    ??????? while((tmp = reader.readLine())!=null){

    ??????????? log.info(tmp);

    ??????????? out.print(tmp);

    ??????????? //System.out.println(" tmp :? " + tmp);

    ??????????? xmlData.append(tmp);

    ??????? }

    ???????

    ???????

    ??????? try {

    ??????????? out.println(XMLUtil.format(xmlData.toString()));

    ??????? } catch (DocumentException e) {

    ??????????? // TODO Auto-generated catch block

    ??????????? e.printStackTrace();

    ??????? }

    ??????? reader.close();

    ???????

    ??? }

    ? ?? AJAX來調用servlet取得此數據

    ?????? < script type = "text/javascript" >

    ?

    ?????????? var xmlHttp= new ActiveXObject( "Msxml2.XMLHTTP" );

    ?????????? //alert(xmlHttp);???

    ?????????? 這個 url 是你的 servlet uri, 只能是在同一個 context 內的,否則不能調用。所以,如果需要跨服務器的話,或者需要跨 context 的話,就需要使用在本 context 上使用一個 servlet 做跳轉。

    ?????????? var sevUrl = "../servlet/PullXmlData?url=" ;

    ?????????? ?

    ?????????? 下面的那個 url 參數其實是我們的遠程的 xml 的數據的 url, 因為在參數里面有等號,所以在調用之前就要通過一個處理和轉換,這一步也是必須的。

    ?????????? var url = sevUrl + encodeURIComponent( "http://192.168.1.50:8080/remoteServer /XmlInvoke?aaa=aaa&bbb=bbb " );????

    ???

    ?????????? alert( "url :? " + url);?????

    ???

    ?????????? xmlHttp.open( "post" , url , false );

    ?????????? xmlHttp.onreadystatechange= function () {?????????????

    ????????????? if (xmlHttp.readyState==4) {

    ????????????? ? ? alert(xmlHttp.responseText);

    ????????????? ?? document.write(xmlHttp.responseText);

    ????????????? }

    ?????????? }

    ?????????? xmlHttp.send();????? ??????

    ?????? </ script >

    ??????

    ?????? 我也剛接觸 Ajax, 所以也只能想到這個解決方案,如果大家有好的解決辦法,還請多多指教。



    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://www.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2007-05-14 16:28 zhyiwww 閱讀(3240) 評論(3)  編輯  收藏 所屬分類: javascript

    FeedBack:
    # re: AJAX中從遠程URL動態取得xml的方法
    2007-05-14 17:36 | ltw
    可以啊 是這么做的  回復  更多評論
      
    # re: AJAX中從遠程URL動態取得xml的方法
    2007-05-14 17:38 | ltw
    不過 為什么返回信息不用responseXML直接好解析呢  回復  更多評論
      
    # re: AJAX中從遠程URL動態取得xml的方法
    2007-05-14 19:05 | TiGERTiAN
    一般就是這樣調用的,叫做Proxy  回復  更多評論
      
    主站蜘蛛池模板: 国产精品免费αv视频| 特级av毛片免费观看| 暖暖日本免费中文字幕| 亚洲综合精品网站| 国产免费久久久久久无码| 亚洲毛片网址在线观看中文字幕 | 91麻豆精品国产自产在线观看亚洲 | 狠狠久久永久免费观看| 亚洲色成人网站WWW永久四虎| 国产精品白浆在线观看免费| 亚洲精品中文字幕无码蜜桃 | 又大又硬又粗又黄的视频免费看 | 永久免费观看的毛片的网站| 亚洲国产精品无码观看久久| 日本牲交大片免费观看| 无套内谢孕妇毛片免费看看| 国产精品亚洲综合一区| 日韩免费高清播放器| 亚洲高清在线mv| 成年午夜视频免费观看视频| 国产精品亚洲精品日韩电影| 亚洲狠狠爱综合影院婷婷| 三级网站免费观看| 亚洲美女视频免费| 国产精品视_精品国产免费| 亚洲精品偷拍视频免费观看| 亚洲天天在线日亚洲洲精| 中文字幕无码成人免费视频| 亚洲精品动漫免费二区| 精品国产日韩亚洲一区| **真实毛片免费观看| 亚洲AV无码国产精品永久一区| 国产成人免费高清激情视频| 日本一区二区在线免费观看| 亚洲AV无码国产在丝袜线观看| 最近中文字幕电影大全免费版| 亚洲男人的天堂久久精品| 亚洲片一区二区三区| 午夜免费1000部| 日韩在线观看免费完整版视频| 精品国产日韩亚洲一区|