j2me程序与servlet通讯访问access数据库

上传人:第*** 文档编号:30974903 上传时间:2018-02-03 格式:DOC 页数:10 大小:38.50KB
返回 下载 相关 举报
j2me程序与servlet通讯访问access数据库_第1页
第1页 / 共10页
j2me程序与servlet通讯访问access数据库_第2页
第2页 / 共10页
j2me程序与servlet通讯访问access数据库_第3页
第3页 / 共10页
j2me程序与servlet通讯访问access数据库_第4页
第4页 / 共10页
j2me程序与servlet通讯访问access数据库_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《j2me程序与servlet通讯访问access数据库》由会员分享,可在线阅读,更多相关《j2me程序与servlet通讯访问access数据库(10页珍藏版)》请在金锄头文库上搜索。

1、J2ME 程序与 Servlet 通讯访问 Access 数据库现在 J2ME 联网的技术很多,本人也只是刚刚接触这方面,这几天帮别人调试了一些这方面的程序,学到了不少东西,下面就谈谈我学习的过程.首先这种程序可以简化的分解成三个层面,1,J2ME 的客户端(MIDlet 程序)2,服务器端的 servlet(servlet 程序)3,数据库(Access 或者是 SQL 等)下面我通过一个小例子来实现通过手机客户端发送请求,然后服务器端的 servlet 响应,servlet 通过查询Access 数据库的内容 ,返回给手机客户端并显示出来。很简单的一个东西却涉及到很多步骤。开发环境:操作系

2、统: windows 2000 professionalJDK 版本: 1.4.2WTK 版本: 2.1Tomcat 版本:5.0如果你还不明白 JDK WTK tomcat 是什么东西的话,建议你补习一下基础知识,这里我就不说明了。JDK 的版本,一定要是 1.4.0 以上的,也许你用的低版本的并且和 Tomcat 的低版本兼容也不错。但是我试过用 Tomcat5.0 + JDK1.0.3 就会报错,无法启动 Tomcat 服务器.在 Tomcat 的 log 中,是这样写的Unsuported JNI version 65537 所以我采用相对高版本的 JDK。配置好环境变量,这里也不多说

3、了。测试一下你的环境变量。在 cmd 窗口,输入 java - version 看看 JDK的版本。输入 javac 看看是否报错,无错就证明 JDK 的环境变量设置正确了。然后我们编辑 J2ME 的客户端程序,程序由两个类构成。本人不是什么高手,所以程序只能是实现功能为目的,并没有体现什么优化的价值。-NetMain.java-import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class NetMain extends MIDlet implements CommandListener/继承

4、 MIDlet 实现 CommandListener 接口private Display dis;sendMsg sm;private Command sd = new Command(连接,Command.OK,1);/发送数据的按钮public NetMain()dis = Display.getDisplay(this);/得到显示对象public void startApp()Form f = new Form(联网测试);/显示在屏幕的 Form 对象f.append(发送数据);f.addCommand(sd);f.setCommandListener(this);/设置按钮监听d

5、is.setCurrent(f); public void pauseApp()public void destroyApp(boolean un)public void exit()destroyApp(false);notifyDestroyed();public void commandAction(Command c,Displayable d)if(c = sd)sm = new sendMsg(this);/调用 sendMsg 类,将本类作为参数传入dis.setCurrent(sm);/显示 sendMsg 类-sendMsg.java-import javax.microed

6、ition.lcdui.*;import javax.microedition.io.*;import java.io.*;public class sendMsg extends Form implements CommandListener,Runnable/继承 Form 实现 CommandListener和 Runnable 接口String url = http:/127.0.0.1:8080/returnMsg;/ 定义联网用的 URLString returnMsg=; /获得返回字符串Command exit=new Command(离开,Command.EXIT,1);/退

7、出程序的按钮Thread t;/定义联网用线程NetMain nm;/NetMain 的实例public sendMsg(NetMain nm)/构造函数,将 NetMain 的实例传入super(返回结果);/定义 Form 的标题this.nm = nm;t = new Thread(this);t.start();/启动线程public void run()tryreturnMsg = sendHttpGet(url); /将 url 传到 sendHttpGet 方法里做参数,并返回服务器结果的字符串赋值给 returnMsg/System.out.println(returnMsg)

8、;append(returnMsg);/显示出返回结果addCommand(exit);setCommandListener(this);catch(Exception e) System.out.println(e);public String sendHttpGet(String url) throws IOExceptionHttpConnection hconn = null; /定义 HTTP 连接的对象DataInputStream dis = null; /定义数据输入流StringBuffer msg = new StringBuffer() ; /创建一个 StringBuf

9、fer 存放收到的字符串String s=;tryhconn = (HttpConnection)Connector.open(http:/localhost:8080/returnMsg);/得到连接对象dis = new DataInputStream(hconn.openInputStream();/用得到的对象的数据流做参数 再作为参数构成数据输入流while(dis.readUTF()!= null) /判断当数据流不为空的时候msg = msg.append(dis.readUTF();/用 readUTF()方法构造字符串 放在 StringBuffer 里catch(Excep

10、tion e)finallyif(hconn != null)/关闭连接;hconn.close();if(dis != null)dis.close(); return msg.toString();/将得到的 StringBuffer 通过 toString()方法,生成新的 String 并返回public void show()public void commandAction(Command c,Displayable d)if(c = exit)nm.exit();/退出程序. . - 以上的两个类,注释应该能看明白。首先是一个 Form,上面放了一个按钮,当按按钮的时候,启动联网

11、线程,连接 URL,然后返回一个字符串,显示在一个新的 Form 里。很简单是吧,呵呵。下面我们来设计服务器端的部分。主要就是写一个 servlet 程序。下面是程序代码-returnMsg.java-import java.sql.*;import javax.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class returnMsg extends HttpServletpublic void doGet(HttpServletRequest req,HttpServlet

12、Response res)throws ServletException,IOExceptionres.setContentType(text/html; charset=gb2312);/设置返回的类型ServletOutputStream out = res.getOutputStream();/得到输出流sp;DataOutputStream dos = new DataOutputStream(out);dos.writeUTF(这是测试结果);dos.writeUTF(下面是数据信息);Connection conn = null;ResultSet rs = null;Statem

13、ent stmt = null;tryString drname = sun.jdbc.odbc.JdbcOdbcDriver;/这些是连接数据库的驱动Class.forName(drname); String url = jdbc:odbc:mydata;conn = DriverManager.getConnection(url);stmt = conn.createStatement();rs = stmt.executeQuery(select * from user);/查询数据库表 表名为 userwhile(rs.next()dos.writeUTF(用户 ID:+rs.getString(id);/得到字段 ID 和字段 name 内容dos.writeUTF(用户名:+rs.getString(name);rs.close();stmt.close();conn.close(); catch(Exception e)-首先把写好的 returnMsg.java 程序要进行编译,生成 .class 文件。我们把生成好的 class 文件放在 Tomcat 目录下的 webapps/root/web-inf/classes/ 里面,注意路径一定不要错。然后还要编辑 web-inf 目录下面的 web.xml 文件.再里面加入这些信息:-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号