歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android入門:通過XML數據與服務器進行通信

一、與服務器通信


類似於浏覽器與服務器通信,Android應用也可以與Web服務器通信,比如Android應用可以訪問Servlet、JSP、圖片等等;

Web服務器通過指定Content-Type可以指定返回的數據的類型,比如text/html表示網頁,text/xml表示XML數據,image/jpeg為圖片;


二、通過XML讓客戶端和服務器交流數據





比如Android客戶端打開相親網,則返回的是多個人的序列,包含人的姓名、年齡等信息,而怎麼組織這些數據返回給客戶端呢?用XML很方便;

三、代碼實現


服務器使用了dom4j組織XML數據,並返回給客戶端;
代碼結構如下:


 
  1. package org.xiazdong.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6.   
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.annotation.WebServlet;  
  9. import javax.servlet.http.HttpServlet;  
  10. import javax.servlet.http.HttpServletRequest;  
  11. import javax.servlet.http.HttpServletResponse;  
  12.   
  13. import org.dom4j.Document;  
  14. import org.dom4j.DocumentHelper;  
  15. import org.dom4j.Element;  
  16. import org.xiazdong.domain.Person;  
  17.   
  18.   
  19. @WebServlet("/ListServlet")  
  20. public class ListServlet extends HttpServlet {  
  21.     private static final long serialVersionUID = 1L;  
  22.   
  23.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  24.         doPost(request,response);  
  25.     }  
  26.   
  27.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  28.         List<Person> list = new ArrayList<Person>();  
  29.         for(int i=0;i<4;i++){  
  30.             Person person = new Person(i,"xiazdong-"+i,20+i);  
  31.             list.add(person);  
  32.         }  
  33.         Document document = DocumentHelper.createDocument();  
  34.         Element persons = DocumentHelper.createElement("persons");  
  35.         document.add(persons);  
  36.         for(int i=0;i<4;i++){  
  37.             persons.addElement("person").addAttribute("id", list.get(i).getId()+"");  
  38.             persons.addElement("name").addText(list.get(i).getName());  
  39.             persons.addElement("age").addText(list.get(i).getAge()+"");  
  40.         }  
  41.         String xml = document.asXML();  //用dom4j組織一個XML字符串   
  42.         response.setContentType("text/xml; charset=UTF-8"); //設置返回值的類型   
  43.         response.getOutputStream().write(xml.getBytes("UTF-8"));    //設置返回值   
  44.     }  
  45.   
  46. }  
如果讓浏覽器訪問,效果如下:
(注:Chrome打開總是顯示不出XML聲明。請用IE打開)
 
Copyright © Linux教程網 All Rights Reserved