<1>MIDP支持Http1.1 協議, 使用Get 和 Post與網絡進行通信,產生Http報頭和數據, 爲了使報文清晰,在http請求是應包含content-type屬性
<2>:j2ee與j2me連接原理
解釋:
在客戶端,用戶的手機需要與Internet進行連接,可以採用GPRS、Wi-fi或者3G網絡等方式,用戶只需下載(如使用OTA技術)客戶端MIDlet程序,安裝到手機上就可以與服務器進行連接併發出訪問請求;Web服務器使用Servlet容器來處理客戶端的連接和請求,然後再將這些請求發送到企業級服務器上,企業級服務器使用EJB進行會話,處理請求,並通過JDBC連接到數據庫系統上;數據庫系統根據SQL查詢語句,將生成的查詢結果數據集發送回企業級服務器;企業級服務器把接收到的信息提交給Web服務器,Web服務器再通過HTTP將信息返回給客戶端;最後,客戶端MIDlet將查詢結果顯示在用戶的手機屏幕上。所有的訪問並不直接訪問後臺的應用資源和數據資源,而是通過中間層進行訪問,這樣既可以保證後臺數據的安全性,又可以通過中間層的調度保證系統性能和事務的一致性。
<3>: j2me聯網的兩種方法 (1) cmnet (2): cmwap :
(1) cmnet跟電腦上聯網沒什麼區別, 用如下代碼就OK了
try {
http = (HttpConnection) Connector.open(url);
} catch (IOException e) {
e.printStackTrace();
}
(2) cmwap聯網:
對於一些機型,直接連網會聯不上, 這是因爲你的機子不支持cmnet聯網方式
也許你會發現不經過修改,直接連接的方式也可以在一些cmwap的設備上(只支持cmwap的手機多爲低端手機) 也可以運行,
這是因爲在底層進行了一些轉換. 如果沒有轉換的話,你必須要經過手動轉換.
假設你原來要請求的頁面是:htpp://www.testwap.com/test/try.jsp
那麼你會用這句話連接
HttpConnection httpConnection = (HttpConnection)Connector.open(“http://www.testwap.com/test/try.jsp”);
但是爲了轉成CNWAP的聯網形式 你必須這麼寫
HttpConnection httpConnection = (HttpConnection)Connector.open(“http://10.0.0.172:80/test/try.jsp”);
接着再寫
httpConnection.setRequestProperty("X-Online-Hostwww.testwap.com");
httpConnection.setRequestProperty("Accept","*/*");
這樣就ok了
分析有以下幾種可能。
1.移動那邊可能對於CNNET來說,幾乎是對所有的協議進行開放。比如(Socket,Http)跟所有端口。
2.對於CNWAP,我估計只開放http協議以及80端口,其他的都封閉,也就是CNWAP只能訪問http協議。
由於我測試的IP地址進行測試,所以它可以直接找到。對於非IP地址我沒測試果。也許CNWAP不能解釋域名也說不定,這點我就不清楚了。