michael: AJAX XML

Hallo,

wie bekomme ich an das XML-Element <test> im Servlet?

Client JS mit Ext-Ajax-Bibliothek:

var xml = "<test>abc</test>";
function saveXML(){
Ext.Ajax.request({
   url: 'http://localhost:8080/FormTree/AjaxServlet',
   success: function(xhr) {
alert('Response is "' + xhr.responseText + '"');
},
   failure: errorAlert,
   method: 'POST',
   xmlData : xml
});
}

Server Tomcat Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
	PrintWriter out = response.getWriter();  

<Klappt nicht>
String command = request.getParameter("test");
</Klappt nicht>
out.close();
}

Vielen Dank
Michael

  1. Hallo,

    wie bekomme ich an das XML-Element <test> im Servlet?

    Du meinst: "in der Response"?

    req.responseXML.getElementsByTagName('test');

    req (Dein xhr, das Object, was für den Request erstellt wurde)

    Hotte

    1. Ne, ich meine Serverseitig das request Object. Ich schicke ein XML vom Client an den Server.

      Grüße
      Michael

  2.   Ext.Ajax.request({  
         url: 'http://localhost:8080/FormTree/AjaxServlet',  
         success: function(xhr) {  
      		alert('Response is "' + xhr.responseText + '"');  
      	},  
         failure: errorAlert,  
         method: 'POST',  
         xmlData : xml  
      });  
    

    Vermutlich POSTet das das Dokument direkt. Also kein application/x-www-form-urlencoded, sondern direkt XML im POST-Body. Prüfe das mit Firebug.

    <Klappt nicht>
    String command = request.getParameter("test");
    </Klappt nicht>

    Greife direkt den POST-Body zu. Ich weiß nicht, wie das geht, ich kenne Java nicht, aber du kannst das sicher recherchieren.

    Mathias

  3. Hi,

      String command = request.getParameter("test");  
    

    wieso sollte das auch klappen?

    Du übergibst ja keinen Parameter namens test.

    Wenn Du an den Body des Requests willst:

    HttpServletRequest bzw. schon ServletRequest bietet getInputStream und getReader.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.