利用J2ME与ASP建立数据库连接
来源:Aspxhome.com 发布时间:2010-04-03 20:53:00
J2ME是利用HttpConnection建立HTTP连接,然后获取数据,ASP也是利用HTTP协议,因而可以利用J2ME与ASP建立连接,从而访问数据库。
ASP是MicroSoft公司的服务器端动态页面技术,可以根据请求运行服务器端程序然后返回结果,这也给MIDP提供很多有用的功能。由于MIDP客户端处理能力不强,因此可以把一些处理任务放在服务器端,利用ASP完成一些它不能完成的任务,如操作数据库。
这里给出一个简单的例子,说明MIDP如何与ASP进行交互,完成数据库操作。
(1)确保IIS WEB服务器正常工作。
(2)建立一个测试数据库
采用ACCESS数据库,生成一个数据库文件保存到D:\J2ME\J2METEST\IIS\DATEBASE中,文件名是J2MEtest.mdb.然后新建一个数据库表-Message,创建的表包含以下字段:ID(自动编号)、MESSAGE(文本)、IP(文本)、DATE(日期)。
(3)创建ASP程序
以下是ASP程序源代码,文件名为ConnectASP.asp,保存到D:\J2ME\J2METEST\IIS\ASP中。
//ConnectASP.asp
<%@LANGUAGE=VBScript%>
<%
strDBLocation=Server.Mappath("/database/j2meTest.mdb");
strConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+strDBLocation;
var cnn=Server.CreateObject("ADODB.Connection");
cnn.Open(strConnectionString);
rs=Server.CreateObject("ADODB.Recordset");
ip=Request.ServerVariables("REMOTE_ADDR");
message=Request.QueryString("message");
rs.ActiveConnection=cnn;
rs.CursorType=1;
rs.LockType=2;
rs.Source="Message";
rs.Open();
rs.AddNew();
rs("Message")=message;
rs("IP")=ip;
rs("Date")=(new Date()).getVarDate();
rs.Update();
rs.Close();
cnn.Close();
Response.Write("The message writed successfully.\n");
%>
然后在浏览器中输入以下URL:www.aspxhome.com/asp/ConnectASP.asp?message=Hello+J2ME!
如果运行成功,浏览器会输出语句“The message weited successfully.”,然后打开数据库文件查看表MESSAGE,一条记录已经成功写入。ID为1,Message为Hello J2ME,IP为127.0.0.1,DATE为当前日期。
(4)编写MIDlet程序
接下来编写MIDP程序,在MIDlet中建立一个HTTP连接,其URI指向这个ASP文件,并附带参数。
//ConnectASP.java
import javax.microedition.midlet.*;
import javax.miceoedition.io.*;
import java.io.*;
public class ConnectASP extends MIDlet{
public void startApp(){
try{
testASP();测试ASP连接
}catch(IOException e){
System.out.println("error");
}
notifyDestroyed();
}
void testASP()throws IOException{
try{
String uri="www.aspxhome.com/asp/ConnectASP.asp?message=Hello+J2ME!";
HttpConnection conn=(HttpConnection)Connector.open(uri);
InputStream in=conn.openInputStream();
int ch;
while((ch=in.read()!=-1){
System.out.print((char)ch);
}
in.close();
conn.close();
}catch(ConnectionNotFoundException e){
System.out.println("Http could not be opened");
}
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
}
编译并运行这个MIDlet,控制台会输出语句“The message writed successfully.",然后打开数据库查看表MESSAGE,一条记录已经成功写入。


猜你喜欢
- 本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考,具体如下:class ome_xml { /**  
- 前面的文章,主要讲到如何使用无序列表ul元素来实现复杂柱状图,但是在Web标准中,除了注重表现外,更加注重语意,所谓的语意就是样式和内容的相
- 以前做音乐项目的时候,最让我们头痛的就是满足用户的问题。在音乐的领域,不要试图去满足所有用户这个定律得到了最充分的验证。究其原因,无非是音乐
- 本文通过实例解析了 SQL Server 数据库扩展存储过程,实现远程备份与恢复的方法和步骤实例说明: 环境:win2k+sqlserver
- 在待测试的私有函数所在的包内,新建一个xx_test.go文件书写方式如下:import ( "github.com/stretc
- 在服务端程序开发的过程中,cookie经常被用于验证用户登录。golang 的 net/http 包中自带 http cookie的定义,下
- 1、生成正态分布数据并绘制概率分布图import pandas as pdimport numpy as npimport matplotl
- 我参与了IE7的开发过程,看到了在IE浏览器中形形色色使用MSXML的方法。显然有一些东西困扰着开发者:MSXML“混乱”的版本以及如何创建
- 在使用pycharm开发工具连接mysql数据库时提示错误,信息如下:Server returns invalid timezone. Go
- 本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:前面一篇介绍了《Java实现的求解经典罗马
- 前言在Python中,装饰器是一种十分强大并且好用的语法,一些重复的代码使用装饰器语法的话能够使代码更容易理解及阅读。因此在这里简单总结了一
- 本文实例讲述了js实现带有介绍的Select列表菜单。分享给大家供大家参考。具体如下:带有介绍的Select列表菜单特效代码,并不是导航菜单
- 前言哈喽,大家好,我是asong;前几天逛github发现了一个有趣的并发库-conc,其目标是:更难出现goroutine泄漏处理pani
- DOM DiffVue创建视图分为俩种情况:首次渲染,会用组件template转换成的真实DOM来替换应用中的根元素当数据更新后,视图重新渲
- 本文实例为大家分享了python监控nginx端口和进程状态的具体代码,供大家参考,具体内容如下#!/usr/local/bin/pytho
- 很多设计师都会遇到这样的问题。一个产品会有很多种方式去包装,其中包括很多功能和很多体验。功能越多会被认为越实用,体验越好会被认为越方便。方便
- for x in ...循环 就是把每个元素代入变量x,然后执行缩进块的语句。range()函数,可以生成一个整数序列,再通过list()函
- 1、Bootstrap-table使用github:https://github.com/wenzhixin/bootstrap-table
- 本文主要介绍了Python利用numpy实现三层神经网络的示例代码,分享给大家,具体如下:其实神经网络很好实现,稍微有点基础的基本都可以实现
- 内容摘要:本文介绍了使用CSS结合javascript来实现对超链接的类型进行标注,让浏览者明确是zip,doc,pdf或其它格式的文件。这