ajax学習ノート2


第2の方法:XMLデータオブジェクトのDOMオブジェクトがajax学習ノート1において既にアライメントされている作業と必要な知識について、XMLデータオブジェクトのresponseXMLを受け入れる方法について詳しく説明する、本節では主に修正が必要なコードおよび新規のコード1について説明する.servletクラスを追加
AJAXXMLServer.java
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
//XML   
public class AJAXXMLServer extends HttpServlet {     
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {         
        //response.setContentType("text/html;charset=utf-8");         
        response.setContentType("text/xml;charset=utf-8"); //     text/xml           
        PrintWriter out=response.getWriter();         
        //1.            
        String old=request.getParameter("name");         
        StringBuffer sb=new StringBuffer();         
        sb.append("<message>");         
        //2.                
        if(old==null||old.length()==0){              
            sb.append("       ").append("</message>"); //  XML         
        }else{             
            //3.                
            String name=old;             
            if(name.equals("pan")){               
                //4.         。                    ,                 //     ,                    
                sb.append("   ["+name+"]    ").append("</message>"); //  XML   
            }else{                
                sb.append("   ["+name+"]    ").append("</message>"); //  XML 
            }         
        }             
        out.println(sb.toString());//  ,        ,         
    }          
                 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);          
    } 
}


2.webを修正する.xml AJAXXXXMLServerクラスの構成を追加
     
<servlet>        
    <servlet-name>AJAXXMLServer</servlet-name>        
    <servlet-class>AJAXXMLServer</servlet-class>     
</servlet>     
<servlet-mapping>        
    <servlet-name>AJAXXMLServer</servlet-name>        
    <url-pattern>/AJAXXMLServer</url-pattern>     
</servlet-mapping>


3.verifyを修正する.jsファイルの最初の場所:xmlhttp.open("GET","AJAXServer?name="+username,true); xmlhttpに変更します.open("GET","AJAXXMLServer?name="+username,true);//responseXML方式,修正类名第2处:
responseText  //                        
//     :                           
var responseText=xmlhttp.responseText;             
//             dom     div                    
var divNode=document.getElementById("result");             
//        html                
divNode.innerHTML=responseText;

変更後:
3つ目:
text/html
if(xmlhttp.overrideMimeType){     xmlhttp.overrideMimeType("text/html"); }

変更後:
if(xmlhttp.overrideMimeType){     xmlhttp.overrideMimeType("text/xml");//XML             }

IEブラウザの場合は3番目に修正しないとエラーは報告されませんが、firefoxブラウザの場合、ここで修正しないと、以下の文はvar domObj=xmlhttpとエラーが報告されます.responseXML; alert文を追加して検証することで、IEブラウザのときに3番目に修正されたコードのif文は実行されず、firefoxブラウザのときにこのif文が実行される説明:アクセスパス、実行スクリーンショット、ajax学習ノート1ではすでに、省略されています.