<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)航:
     
    主站蜘蛛池模板: 亚洲一区二区三区影院| 久久www免费人成看片| 春意影院午夜爽爽爽免费| 亚洲熟妇无码AV| 男人天堂2018亚洲男人天堂| 亚洲香蕉久久一区二区三区四区| 国产成人精品亚洲日本在线 | 久久WWW免费人成人片| av免费不卡国产观看| 欧美a级在线现免费观看| 成**人免费一级毛片| 国产成人免费片在线观看| 亚洲乱亚洲乱少妇无码| 亚洲色偷偷偷鲁综合| 久久狠狠高潮亚洲精品| 亚洲AV无码国产精品色| 亚洲精品日韩一区二区小说| 人人爽人人爽人人片A免费| 中文字幕无码毛片免费看| 99久久免费精品高清特色大片| 国产a视频精品免费观看| 午夜视频免费成人| 亚洲成A人片在线观看无码3D | 无码国产精品一区二区免费| 皇色在线视频免费网站| 国产嫩草影院精品免费网址| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久亚洲AV无码精品色午夜麻| 久久亚洲精品中文字幕| 亚洲无mate20pro麻豆| 无套内谢孕妇毛片免费看看| 免费观看一区二区三区| 日本在线高清免费爱做网站| 免费v片在线观看| 亚洲精品乱码久久久久66| 亚洲国产高清美女在线观看 | 亚洲视频手机在线| 亚洲高清一区二区三区电影 | 亚洲精品9999久久久久无码 | 亚洲国产成人精品无码区花野真一 | 亚洲精品天堂在线观看|