首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 與 ASP 合作:透過 HTTP 實現行動端資料庫存取

     編輯:J2ME

架構概念

J2ME 客戶端受限於運算能力,資料庫操作宜放在伺服器端。利用 HttpConnection (GCF 必支援) 呼叫 ASP 頁面,ASP 執行 ADO 操作 Access/SQL Server,回傳結果,實現輕量級行動資料庫應用。

伺服器端環境建置

  1. 確認 IIS 正常運行。
  2. 建立 Access 資料庫 D:\J2ME\J2METEST\IIS\DATABASE\J2MEtest.mdb,資料表 Message:ID(自動編號)、MESSAGE(文字)、IP(文字)、DATE(日期)。
  3. 撰寫 ConnectASP.asp 放置於 D:\J2ME\J2METEST\IIS\ASP:
<%@ LANGUAGE=VBScript %>
<%
strDBLocation = Server.MapPath("/database/J2METest.mdb")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBLocation
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConn
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn
rs.CursorType = 1 : rs.LockType = 2
rs.Source = "Message"
rs.Open
rs.AddNew
rs("Message") = Request.QueryString("message")
rs("IP") = Request.ServerVariables("REMOTE_ADDR")
rs("Date") = Now()
rs.Update
rs.Close : cnn.Close
Response.Write "The message written successfully."
%>

瀏覽器測試:https://localhost/asp/ConnectASP.asp?message=Hello+J2ME 成功寫入資料庫。

MIDlet 客戶端實作

import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;

public class ConnectASP extends MIDlet {
    public void startApp() {
        try { testASP(); } catch (IOException e) { System.out.println("error"); }
        notifyDestroyed();
    }

    void testASP() throws IOException {
        String uri = "https://localhost/ASP/ConnectASP.asp?message=Hello+J2ME!";
        HttpConnection conn = null;
        InputStream in = null;
        try {
            conn = (HttpConnection) Connector.open(uri);
            in = conn.openInputStream();
            int ch;
            while ((ch = in.read()) != -1) System.out.print((char) ch);
        } catch (Exception e) {
            System.out.println("Http could not be opened");
        } finally {
            try { if (in != null) in.close(); } catch (IOException ignored) {}
            try { if (conn != null) conn.close(); } catch (IOException ignored) {}
        }
    }
    public void pauseApp() {}
    public void destroyApp(boolean unconditional) {}
}

執行結果

主控台輸出 The message written successfully.,資料庫新增一筆記錄(ID=1, Message=Hello J2ME, IP=127.0.0.1, Date=當前日期)。

關鍵提醒

  • 真機測試時,URL 需改為伺服器實際 IP/域名,非 localhost。
  • 生產環境請改用 Parameterized Query 防 SQL Injection,並加入錯誤碼回傳機制。
  • 考慮使用 Servlet/JSP/PHP 替代 ASP,提升跨平台性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved