PostingXMLExample.java
上传用户:shen332233
上传日期:2021-09-03
资源大小:7478k
文件大小:2k
源码类别:

Ajax

开发平台:

Java

  1. package ajaxbook.chap3;
  2. import java.io.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import javax.xml.parsers.DocumentBuilderFactory;
  6. import javax.xml.parsers.ParserConfigurationException;
  7. import org.w3c.dom.Document;
  8. import org.w3c.dom.NodeList;
  9. import org.xml.sax.SAXException;
  10. public class PostingXMLExample extends HttpServlet {
  11.     
  12.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  13.     throws ServletException, IOException {
  14.         
  15.         String xml = readXMLFromRequestBody(request);
  16.         Document xmlDoc = null;
  17.         try {
  18.             xmlDoc = 
  19.                     DocumentBuilderFactory.newInstance().newDocumentBuilder()
  20.                     .parse(new ByteArrayInputStream(xml.getBytes()));
  21.         }
  22.         catch(ParserConfigurationException e) {
  23.             System.out.println("ParserConfigurationException: " + e);
  24.         }
  25.         catch(SAXException e) {
  26.             System.out.println("SAXException: " + e);
  27.         }
  28.         /* Note how the Java implementation of the W3C DOM has the same methods
  29.          * as the JavaScript implementation, such as getElementsByTagName and 
  30.          * getNodeValue.
  31.          */
  32.         NodeList selectedPetTypes = xmlDoc.getElementsByTagName("type");
  33.         String type = null;
  34.         String responseText = "Selected Pets: ";
  35.         for(int i = 0; i < selectedPetTypes.getLength(); i++) {
  36.            type = selectedPetTypes.item(i).getFirstChild().getNodeValue();
  37.            responseText = responseText + " " + type;
  38.         }
  39.         
  40.         response.setContentType("text/xml");
  41.         response.getWriter().print(responseText);
  42.     }
  43.     
  44.     private String readXMLFromRequestBody(HttpServletRequest request){
  45.         StringBuffer xml = new StringBuffer();
  46.         String line = null;
  47.         try {
  48.             BufferedReader reader = request.getReader();
  49.             while((line = reader.readLine()) != null) {
  50.                 xml.append(line);
  51.             }
  52.         }
  53.         catch(Exception e) {
  54.             System.out.println("Error reading XML: " + e.toString());
  55.         }
  56.         return xml.toString();
  57.     }
  58. }