今天學習從網上獲得數據,以xml文件輸出。流程:android客戶端 -----已經開發好的CRM(220.113.15.23) -----[客戶資料]--à屏幕
用的是struts1.3的環境
1.搭建環境
1.web.xml配置struts servlet
2.添加jar
3.復制struts-config.xml
環境搞定后,新建jsp文件,寫好文件頭:<?xml version="1.0" encoding="UTF-8"?> 注意
接著新建一個ContactAction
最后配置struts-config.xml文件
新建contact.jsp文件,得到數據
訪問路徑,測試得到的數據,以驗證是否正確,若正確的話,第一步完成
下面是Android應用
2 .①.設計要顯示的界面
②.新建service,可以調用
關鍵代碼:
String path = “http://192.168.1.100:8080/crm/contacts.do”;
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setConnectionTimeout(5*1000);
conn.setRequestMethod(“POST”);
return conn.getInputStream();
在該類中還應該新建sax解析方法,解析文檔,保存數據
③.新建android測試類,以日志形式打印出xml文件中的數據
3.應用HttpURLConnection對象,我們可以向網絡發送請求參數.下面以POST發送為例,寫一些關鍵代碼點
Map<String, String> params =
new
HashMap<String, String>();
params.put("age", "22");
params.put("name", "浪淘沙");
StringBuilder
params = new StringBuilder();
for(Map.Entry<String, String>
entry : params.entrySet()){
params.append(entry.getKey());
params.append("=").append(URLEncoder.encode(entry.getValue(),
"UTF-8"));
params.append("&");
}
if (params.length() > 0)
params.deleteCharAt(params.length() - 1);
byte[] data =
params.toString().getBytes();
4. 為應用添加新的Activity
①:新建一個繼承Activity的類
②:需要在功能清單AndroidManifest.xml文件中添加進上面Activity配置代碼
打開新的Activity,不傳遞參數
通過意圖打開Activity,Intent,用于激活Activity的,在組件之間傳遞數據
在新的Activity中接收前面Activity傳遞過來的參數:
添加參數的另一種方法:Bundle
Bundle類用作攜帶數據,它類似于Map,用于存放key-value名值對形式的值。相對于Map,它提供了各種常用類型的putXxx()/getXxx()方法, putXxx()用于往Bundle對象放入數據,getXxx()方法用于從Bundle對象里獲取數據。Bundle的內部實際上是使用了HashMap<String, Object>類型的變量來存放putXxx()方法放入的值:
5. Intent過濾器
Android鼓勵減少組件間的耦合,因此Android提供了Intent (意圖) ,Intent提供了一種通用的消息系統,它允許在你的應用程序與其它的應用程序間傳遞Intent來執行動作和產生事件。使用Intent可以激活Android應用的三個核心組件:活動、 服務和廣播接收器。
Intent可以劃分成顯式意圖和隱式意圖。