|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;J2ME是使用HttpConnection创建HTTP毗连,然后猎取数据,ASP也是使用HTTP协定,因此能够使用J2ME与ASP创建毗连,从而会见数据库。ASP是MicroSoft公司的服务器端静态页面手艺,能够依据哀求运转服务器端程序然后前往了局,这也给MIDP供应良多有效的功效。因为MIDP客户端处置才能不强,因而能够把一些处置义务放在服务器端,使用ASP完成一些它不克不及完成的义务,如操纵数据库。这里给出一个复杂的例子,申明MIDP怎样与ASP举行交互,完成数据库操纵。
(1)确保IIS WEB服务器一般事情。
(2)创建一个测试数据库:接纳ACCESS数据库,天生一个数据库文件保留到D:J2MEJ2METESTIISDATEBASE中,文件名是J2MEtest.mdb.然后新建一个数据库表-Message,创立的表包括以下字段:ID(主动编号)、MESSAGE(文本)、IP(文本)、DATE(日期)。
(3)创立ASP程序
以下是ASP程序源代码,文件名为ConnectASP.asp,保留到D:J2MEJ2METESTIISASP中。
//ConnectASP.asp
<%@LANGUAGE=VBScript%>
<%
strDBLocation=Server.Mappath("/database/j2meTest.mdb");
strConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;
DataSource="+strDBLocation;
varcnn=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")=(newDate()).getVarDate();
rs.Update();
rs.Close();
cnn.Close();
Response.Write("Themessagewritedsuccessfully.
");
%>
然后在扫瞄器中输出以下URL:http://localhost/asp/ConnectASP.asp?message=Hello+J2ME!
假如运转乐成,扫瞄器会输入语句“Themessageweitedsuccessfully.”,然后翻开数据库文件检察表MESSAGE,一笔记录已乐成写进。ID为1,Message为HelloJ2ME,IP为127.0.0.1,DATE为以后日期。
(4)编写MIDlet程序
接上去编写MIDP程序,在MIDlet中创建一个HTTP毗连,其URI指向这个ASP文件,并附带参数。
//ConnectASP.java
importjavax.microedition.midlet.*;
importjavax.miceoedition.io.*;
importjava.io.*;
publicclassConnectASPextendsMIDlet{
publicvoidstartApp(){
try{
testASP();测试ASP毗连
}catch(IOExceptione){
System.out.println("error");
}
notifyDestroyed();
}
voidtestASP()throwsIOException{
try{
Stringuri="http://localhost/asp/ConnectASP.asp?message=Hello+J2ME!";
HttpConnectionconn=(HttpConnection)Connector.open(uri);
InputStreamin=conn.openInputStream();
intch;
while((ch=in.read()!=-1){
System.out.print((char)ch);
}
in.close();
conn.close();
}catch(ConnectionNotFoundExceptione){
System.out.println("Httpcouldnotbeopened");
}
}
publicvoidpauseApp(){}
publicvoiddestroyApp(booleanunconditional){}
}
编译并运转这个MIDlet,把持台会输入语句“Themessagewritedsuccessfully.",然后翻开数据库检察表MESSAGE,一笔记录已乐成写进。
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。 |
|