j2me是利用httpconnection建立http连接,然后获取数据,asp也是利用http协议,因而可以利用j2me与asp建立连接,从而访问数据库。asp是microsoft公司的服务器端动态页面技术,可以根据请求运行服务器端程序然后返回结果,这也给midp提供很多有用的功能。由于midp客户端处理能力不强,因此可以把一些处理任务放在服务器端,利用asp完成一些它不能完成的任务,如操作数据库。这里给出一个简单的例子,说明midp如何与asp进行交互,完成数据库操作。
(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:http://localhost/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="http://localhost/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,一条记录已经成功写入。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器