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

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

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

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0

    一、連接的建立

    <script type="text/javascript">
        
    var request;
        window.onload 
    = function()
        
    {
            listApi();
        }

        
        
    function createRequest()
        
    {
            
    try{
                request 
    = new XMLHttpRequest();
              }
    catch (trymicrosoft){
                
    try{
                  request 
    = new ActiveXObject("Msxml2.XMLHTTP");
                }
    catch (othermicrosoft){
                    
    try{
                      request 
    = new ActiveXObject("Microsoft.XMLHTTP");
                    }
     catch (failed) {
                      request 
    = false;
                    }

                }

              }

            
    if(!request)
                alert(
    "Error initializing XMLHttpRequest!");
        }

    二、服務(wù)器端Servlet 

            這是doGet方法,即將參數(shù)寫在調(diào)用串中。

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {


            response.setContentType(
    "text/xml");
            response.setHeader(
    "Cache-Control""no-cache");
            request.setCharacterEncoding(
    "GBK");
            response.setCharacterEncoding(
    "UTF-8");
            
    int restMethodId = Integer.parseInt(request.getParameter("restMethodId"));

            String xml_start 
    = "<methodDetail>";
            String xml_end 
    = "</methodDetail>";
            StringBuilder xml 
    = new StringBuilder();
            
            xml.append(xml_start);
            
            RestDao restDao 
    = new RestDao();
            RestMethod restMethod 
    = restDao.getRestMethod(restMethodId);
            
            xml.append(
    "<name>");
            xml.append(zhuanYi(restMethod.getRestMethodName()));
            xml.append(
    "</name>");
            
            xml.append(xml_end);
            
            String xmlString 
    = xml.toString();
            xmlString 
    = xmlString.replace("&nbsp;"" ");
            xmlString 
    = xmlString.replace("&""&amp;");


            response.getWriter().write(xmlString);
        }

    三、頁面發(fā)送請(qǐng)求

            這里調(diào)用的Servlet的Get調(diào)用,即調(diào)用doGet方法。這種方式適合于參數(shù)是簡(jiǎn)單數(shù)據(jù),這樣可以把參數(shù)卸載調(diào)用url中。
            對(duì)于參數(shù)是復(fù)雜的數(shù)據(jù)對(duì)象時(shí),應(yīng)該調(diào)用doPost方法,即在調(diào)用串中不包含調(diào)用參數(shù),而是把調(diào)用參數(shù)寫在request.send(參數(shù)對(duì)象)中,doGet調(diào)用時(shí)此處為null。

    function getMethodDetail(methodId)
        
    {
            
    var id = methodId.substr(6);
            
    var url = "servlet/getMethodDetail?restMethodId=" + escape(id);
            call(url);
        }

        
        
    function call(url)
        
    {
            createRequest();

            
    if(request){
                request.open(
    "GET",url,true);
                request.onreadystatechange 
    = callback;
                request.send(
    null);
            }

        }

    四、回調(diào)函數(shù)

     function callback(){
            
    if(request.readyState ==4){
                
    if(request.status ==200){
                    parseMessage();
                }
    else{
                    alert(
    "不能得到方法信息:" + req.statusText);
                }

            }

        }

    五、解析返回XML、操作Dom以實(shí)現(xiàn)頁面動(dòng)態(tài)變化

     //解析返回xml的方法
        function parseMessage()
        
    {
            
    var xmlDoc = request.responseXML.documentElement;
            
            
    if(xmlDoc.nodeName == "apis")
            
    {
                updateApi(xmlDoc);
            }

            
    else if(xmlDoc.nodeName == "methods")
            
    {
                updateMethod(xmlDoc);
            }

            
    else if(xmlDoc.nodeName == "methodDetail")
            
    {
                updateMethodDetail(xmlDoc);
            }

             
    else
            
    {
                alert(
    "NO Api");
            }

        }

        
        
    function updateApi(xmlDoc)
        
    {
            
    var apis = xmlDoc.getElementsByTagName("api");
            
    var apiul = document.getElementById("apiul");
            equalCount(apis.length, apiul);
            
            
    var apiliArray = apiul.getElementsByTagName("li");
            
            
    for(var i=0; i<apiliArray.length; i++)
            
    {
                apiliArray[i].onclick 
    = function(){listMethod(this.id);}
                
                
    var apiId = apis[i].childNodes[0].firstChild.nodeValue;
                apiliArray[i].id 
    = "api" + apiId;
                
                
    var apiName = apis[i].childNodes[1].firstChild.nodeValue;
                
    var nameText=document.createTextNode(apiName);
                
                apiliArray[i].removeChild(apiliArray[i].childNodes[
    0]);
                
                apiliArray[i].appendChild(nameText);
            }

        }

    posted on 2009-12-04 11:07 胖胖泡泡 閱讀(144) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 香蕉视频在线观看免费国产婷婷| 日韩免费无码视频一区二区三区| 91免费资源网站入口| 久久久亚洲欧洲日产国码是AV| 日韩精品无码免费专区午夜| 国产l精品国产亚洲区在线观看| 国产男女爽爽爽免费视频| 中文字幕亚洲天堂| 久久免费视频观看| 97se亚洲综合在线| 免费国产成人高清在线观看网站| 精品日韩99亚洲的在线发布| 在线视频免费观看www动漫| 日韩av无码成人无码免费| 亚洲人6666成人观看| 免费观看毛片视频| 看一级毛片免费观看视频| 亚洲国产精品无码久久久久久曰| 国产在线观看免费av站| 亚洲日本一区二区| 免费一本色道久久一区| 国产精品亚洲一区二区三区 | 成人免费视频小说| 国产精品亚洲综合一区在线观看 | 亚洲国产综合无码一区二区二三区| 窝窝影视午夜看片免费| 亚洲AV永久无码精品| 日本阿v免费费视频完整版| 国产成人亚洲综合在线| 久久青青成人亚洲精品| 久久久久久99av无码免费网站| 日本亚洲高清乱码中文在线观看| 中文字幕日韩亚洲| 在线观看日本免费a∨视频| 亚洲av纯肉无码精品动漫| 国产成人精品日本亚洲| 无人在线观看完整免费版视频| 日产久久强奸免费的看| 亚洲精品综合久久中文字幕| 日本免费v片一二三区| 香蕉免费一区二区三区|