English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie Ajax Json und xml Daten überträgt

Ajax Übertragung XML-Daten:Es reicht aus, die Daten in das XML-Format zu verpacken, um die Übertragung zu ermöglichen. Der Client empfängt die XML-Parameter über responseXML, der Server liest sie mit Streams und DOM4j verwendet

Vordergrundseite

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajax XML Datenverarbeitungsdemonstration</title>
<script type="text/javascript">
  //Ajax über GET-Method
  function send1(){
   alert("ok");
   var name=document.getElementsByName("name")[0].value;
   var age=document.getElementsByName("age")[0].value;
   var xhr=null;
   if(window.XMLHttpRequest){
    xhr=new XMLHttpRequest();
   }else{
    xhr=new ActiveXObject("Microsoft.XMLHttp");
   }
   var url="<c:url value='/XmlServlet?name='/">"+name+"&age="+age;
   //3Setzen Sie den Zugriffsweg
   xhr.open("GET", url, true);
   //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
   xhr.onreadystatechange=function(){
    if(xhr.readyState==4{//zurückgeben
     if(xhr.status==200){//Antwortcode normal
      var txt=xhr.responseText;
      alert(txt);
     }
    }
   };
   xhr.send(null);
  }
 </script>
!-- Der Client sendet Daten im XML-Format an den Server -->
<script type="text/javascript">
  //Ajax über POST-Method
  function send2(){
   alert("222");
   //1Erstellen Sie das AJAX-Objekt
   var xhr = null;
   if(window.XMLHttpRequest){//neue Version
    xhr = new XMLHttpRequest();
   }else{//alte Version
    xhr = new ActiveXObject("Microsoft.XMLHttp");
   }
   //2Anfrage-Adresse
   var url = "<c:url value='/XmlServlet'/>";
   //3Setzen Sie den Zugriffsweg
   xhr.open("POST", url, true);
   //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
   xhr.onreadystatechange=function(){
    if(xhr.readyState==4{//zurückgeben
     if(xhr.status==200){//Antwortcode normal
      var xmlObj=xhr.responseXML;
      var users=xmlObj.getElementsByTagName("user");
      for(var i=0;i<users.length;i++{
       var id=users[i].getAttribute("id");
       var name=users[i].childNodes[0].firstChild.data;//die Operationen im DOM-Modell von XML unterscheiden sich etwas von denen in HTML
       var age=users[i].childNodes[1].firstChild.data;//kann nicht childNodes["age"]
       alert(id+","+name+","+age);
      }
     }
    }
   };
   var name=document.getElementsByName("name")[0].value;
   var age=document.getElementsByName("age")[0].value;
   var xml="<user><name>"+name+"</name><age>"+age+"</age></user>";
   xhr.send(xml);
  }
 </script>
</head>
<body>
 Name:
 <input type="text" name="name">
 <br /> Alter:
 <input type="text" name="age">
 <br />
 <input type="button" value="Get Einreichung" onclick="send1();" />
 <br />
 <input type="button" value="Post Einreichung" onclick="send2()" />
 <br />
</body>
</html>

Hintergrundseite

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajax XML Datenverarbeitungsdemonstration</title>
<script type="text/javascript">
  //Ajax über GET-Method
  function send1(){
   alert("ok");
   var name=document.getElementsByName("name")[0].value;
   var age=document.getElementsByName("age")[0].value;
   var xhr=null;
   if(window.XMLHttpRequest){
    xhr=new XMLHttpRequest();
   }else{
    xhr=new ActiveXObject("Microsoft.XMLHttp");
   }
   var url="<c:url value='/XmlServlet?name='/">"+name+"&age="+age;
   //3Setzen Sie den Zugriffsweg
   xhr.open("GET", url, true);
   //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
   xhr.onreadystatechange=function(){
    if(xhr.readyState==4{//zurückgeben
     if(xhr.status==200){//Antwortcode normal
      var txt=xhr.responseText;
      alert(txt);
     }
    }
   };
   xhr.send(null);
  }
 </script>
!-- Der Client sendet Daten im XML-Format an den Server -->
<script type="text/javascript">
  //Ajax über POST-Method
  function send2(){
   alert("222");
   //1Erstellen Sie das AJAX-Objekt
   var xhr = null;
   if(window.XMLHttpRequest){//neue Version
    xhr = new XMLHttpRequest();
   }else{//alte Version
    xhr = new ActiveXObject("Microsoft.XMLHttp");
   }
   //2Anfrage-Adresse
   var url = "<c:url value='/XmlServlet'/>";
   //3Setzen Sie den Zugriffsweg
   xhr.open("POST", url, true);
   //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
   xhr.onreadystatechange=function(){
    if(xhr.readyState==4{//zurückgeben
     if(xhr.status==200){//Antwortcode normal
      var xmlObj=xhr.responseXML;
      var users=xmlObj.getElementsByTagName("user");
      for(var i=0;i<users.length;i++{
       var id=users[i].getAttribute("id");
       var name=users[i].childNodes[0].firstChild.data;//die Operationen im DOM-Modell von XML unterscheiden sich etwas von denen in HTML
       var age=users[i].childNodes[1].firstChild.data;//kann nicht childNodes["age"]
       alert(id+","+name+","+age);
      }
     }
    }
   };
   var name=document.getElementsByName("name")[0].value;
   var age=document.getElementsByName("age")[0].value;
   var xml="<user><name>"+name+"</name><age>"+age+"</age></user>";
   xhr.send(xml);
  }
 </script>
</head>
<body>
 Name:
 <input type="text" name="name">
 <br /> Alter:
 <input type="text" name="age">
 <br />
 <input type="button" value="Get Einreichung" onclick="send1();" />
 <br />
 <input type="button" value="Post Einreichung" onclick="send2()" />
 <br />
</body>
</html>

--------------------------------------------------------------------------------

Ajax Übertragung Json Datenwird die JSONArray-Klasse von Apache oder Alibaba verwendet, um die Übertragung durchzuführen
Vordergründiger Code

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajax Json Datenverarbeitungsdemonstration</title>
<script type="text/javascript">
 function ask1() {
  //1Erstellen Sie das AJAX-Objekt
  var xhr = null;
  if (window.XMLHttpRequest) {//neue Version
   xhr = new XMLHttpRequest();
  } else {//alte Version
   xhr = new ActiveXObject("Microsoft.XMLHttp");
  }
  //2Anfrage-Adresse
  var url = "<c:url value='/JsonServlet1'/>";
  //3Setzen Sie den Zugriffsweg
  xhr.open("POST", url, true);
  //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
  xhr.onreadystatechange = function() {
   if (xhr.readyState == 4) {//zurückgeben
    if (xhr.status == 200) {}}//Antwortcode normal
     //※※※※※Parsing der von der Rückseite zurückgegebenen JSON-Kette
     //Funktion des js-eval(): Es überprüft, ob der Parameter-Textfolge dem js-einem Datenformat entspricht und wandelt ihn in das entsprechende Objekttyp um
     var txt = xhr.responseText;
     var users = eval("(" + txt + ")"); //Konvertieren von Textfolgen im JSON-Format in JSON-Objekte
     for ( var i = 0; i < users.length; i++) {
      alert(users[i].id + "," + users[i].name + ","
        + users[i].age);
     }
    }
   }
  };
  //5 Senden
  xhr.send(null);
 }
 function ask2() {
  //1Erstellen Sie das AJAX-Objekt
  var xhr = null;
  if (window.XMLHttpRequest) {//neue Version
   xhr = new XMLHttpRequest();
  } else {//alte Version
   xhr = new ActiveXObject("Microsoft.XMLHttp");
  }
  //2Anfrage-Adresse
  var url = "<c:url value='/JsonServlet2'/>";
  //3Setzen Sie den Zugriffsweg
  xhr.open("POST", url, true);
  //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
  xhr.onreadystatechange = function() {
   if (xhr.readyState == 4) {//zurückgeben
    if (xhr.status == 200) {}}//Antwortcode normal
     //※※※※※Parsing der von der Rückseite zurückgegebenen JSON-Kette
     //Funktion des js-eval(): Es überprüft, ob der Parameter-Textfolge dem js-einem Datenformat entspricht und wandelt ihn in das entsprechende Objekttyp um
     var txt = xhr.responseText;
     //alert(txt);
     //Konvertieren von Textfolgen im JSON-Format in JSON-Objekte
     var users = eval("(" + txt + ")"); 
     for ( var key in users)//Map-Leistungsweg
      alert("Eigenschaft:\ + key + ",Wert:\ + users[key]);
     }
     //for ( var i = 0; i < users.length; i++) {//Listenumlaufart
      //alert(users[i].id +","+users[i].name+","+users[i].age);
     //}
   };
  };
  //5 Senden
  xhr.send(null);
 }
 function ask3() {
  //1Erstellen Sie das AJAX-Objekt
  var xhr = null;
  if (window.XMLHttpRequest) {//neue Version
   xhr = new XMLHttpRequest();
  } else {//alte Version
   xhr = new ActiveXObject("Microsoft.XMLHttp");
  }
  //2Anfrage-Adresse
  var url = "<c:url value='/JsonServlet2'/>";
  //3Setzen Sie den Zugriffsweg
  xhr.open("POST", url, true);
  //4Setzen Sie die Aktion nach dem erfolgreichen Zugriff zurück
  xhr.onreadystatechange = function() {
   if (xhr.readyState == 4) {//zurückgeben
    if (xhr.status == 200) {}}//Antwortcode normal
     //※※※※※Parsing der von der Rückseite zurückgegebenen JSON-Kette
     //Funktion des js-eval(): Es überprüft, ob der Parameter-Textfolge dem js-einem Datenformat entspricht und wandelt ihn in das entsprechende Objekttyp um
     var txt = xhr.responseText;
     //alert(txt);
     //Konvertieren von Textfolgen im JSON-Format in JSON-Objekte
     var users = eval("(" + txt + ")"); 
     for ( var key in users)//Map-Leistungsweg
      alert("Eigenschaft:\ + key + ",Wert:\ + users[key]);
     }
     //for ( var i = 0; i < users.length; i++) {//Listenumlaufart
      //alert(users[i].id +","+users[i].name+","+users[i].age);
     //}
   };
  };
  //5 Senden
  xhr.send(null);
 }
</script>
</head>
<body>
 <input type="button" onclick="ask1();" value="Datenanfrage vom Backend (manuelle Verpackung von JSON)" />
 <br />
 <input type="button" onclick="ask2();"
  value="Datenanfrage vom Backend (Verwendung von apache zum Verpacken von JSON)" />
 <input type="button" onclick="ask3()" value="Datenanfrage vom Backend (Verwendung von fastjson zum Verpacken von JSON)" />
</body>
</html>

JsonServlet1.java

package cn.hncu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hncu.domain.User;
public class JsonServlet1 extends HttpServlet {
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  //Aufruf des Backend-Service.dao.query(), um Informationen aus der Datenbank zu lesen
  //Um das Verständnis der Themen zu vereinfachen, wird hier die Backend-Funktion direkt simuliert
  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  List<User> users = new ArrayList<User>();
  users.add(new User("A001"," Jack ",20));
  users.add(new User("A002"," Rose ",22));
  users.add(new User("B001"," Zhang San ",20));
  users.add(new User("B002"," Li Si ",30));
  String json="";
  //Mit Java eine JSON-Formatkette verpacken: [{name:"Jack",age:25}, {...}, {...} ]
  for(User u:users){
   if(json.equals("")){
    json="{name:\""+u.getName()+"\",id:\""+u.getId()+"\",age:"+u.getAge()+"}";
   }else{
    json = json +",{ name:\""+u.getName()+"\",id:\""+u.getId()+"\",age:"+u.getAge()+"}" ;
   }
  }
  json="["+json+"]";
  out.print(json);
 }
}

JsonServlet2.java

package cn.hncu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hncu.domain.User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonServlet2 extends HttpServlet {
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  List<User> users = new ArrayList<User>();
  users.add(new User("A001"," Jack ",20));
  users.add(new User("A002"," Rose ",22));
  users.add(new User("B001"," Zhang San ",20));
  users.add(new User("B002"," Li Si ",30));
  String strJson=com.alibaba.fastjson.JSONArray.toJSONString(users);
  System.out.println(strJson);
  //Verwenden Sie das Tool fastjson (es gibt nur eine jar-Datei), um die Liste in eine JSON-Zeichenfolge zu konvertieren
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("addr", "Hunan");
  map.put("height", "170");
  map.put("marry", "no");
  map.put("user", new User("A003"," Xiao Li ",25));
  String strMap=com.alibaba.fastjson.JSONArray.toJSONString(map);
  out.print(strMap.toString());
 }
}

JsonServlet3.java

package cn.hncu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import cn.hncu.domain.User;
public class JsonServlet3 extends HttpServlet {
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  List<User> users = new ArrayList<User>();
  users.add(new User("A001"," Jack ",20));
  users.add(new User("A002"," Rose ",22));
  users.add(new User("B001"," Zhang San ",20));
  users.add(new User("B002"," Li Si ",30));
  //Verwenden Sie das Tool fastjson (es gibt nur eine jar-Datei), um die Liste in eine JSON-Zeichenfolge zu konvertieren
  JSONArray json=JSONArray.fromObject(users);
  String strJson=json.toString();
  System.out.println(strJson);
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("addr", "Hunan");
  map.put("height", "170");
  map.put("marry", "no");
  map.put("user", new User("A003"," Xiao Li ",25));
  JSONObject obj = JSONObject.fromObject(map);
  System.out.println(obj.toString());
  out.print(obj.toString());
 }
}

Das ist der gesamte Inhalt dieses Artikels. Wir hoffen, dass er Ihnen bei Ihrem Lernen hilft und dass Sie die Anleitung von Rufen stark unterstützen.

Erklärung: Der Inhalt dieses Artikels stammt aus dem Internet und ist dem Urheberrecht des jeweiligen Autors unterliegt. Der Inhalt wurde von Internetnutzern selbstständig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht von Hand bearbeitet. Sie übernimmt auch keine Haftung für rechtliche Fragen. Wenn Sie Inhalte mit urheberrechtlichen Bedenken finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @, wenn Sie eine Meldung senden, und geben Sie relevante Beweise an. Sobald die Anzeige überprüft wurde, wird diese Website den beschuldigten Inhalt sofort löschen.)

Gefällt Ihnen