上次视频我们演示了 Servlet 服务端的编写和配置部署,

今次我们编写j2me程序 并且和上次的服务端进行相互通信,其实就是 发送 和 接受的
相互过程。

下面我们常见一个J2me项目, 命名为: J2me_Servlet

创建好了就进去代码目录 进行编写代码了。

新建 J2me_Servlet.java 文件, 基本的代码我们还是用回第一个程序 HelloWorld的主要代码。

复制过来的代码要注意修改, 虽然HelloWorld简单,我们几乎全部教程都有使用到,都是

在简单的代码上加以学习。

 String url="http://192.168.1.8";
 HttpConnection httpcon=null;

url 是设置Servlet服务端的地址, HttpConnection 是一个链接用的类,同时也是输入输出
所需要的。我先写一下本机的ip

==============================
然后我们就是要链接方面的代码了。
这是向Servlet服务端发送数据的代码,例如:我要发送一个名字给服务端
   try
   {
    ByteArrayOutputStream byte_out=new ByteArrayOutputStream();
    DataOutputStream data_out=new DataOutputStream(byte_out);
    data_out.writeUTF( "Jame" ); //发送Jame
    data=byte_out.toByteArray();
    byte_out.close();
    data_out.close();
    
    new Thread(this).start();
   }catch(Exception e){} 

new Thread(this).start();  这是启动线程的代码
===================================
 public void run()
 {
  OutputStream out=null;
  InputStream in=null;
  StringBuffer buffer=new StringBuffer();
  try
  {
   httpcon=(HttpConnection)Connector.open(url);
   httpcon.setRequestMethod(HttpConnection.POST);
   out=httpcon.openOutputStream();
   out.write(data);
   if(httpcon.getResponseCode()==HttpConnection.HTTP_OK)
   {

                                DataInputStream data_In = new DataInputStream(httpcon.openInputStream() );
                                int number = data_In.readInt();
                                while( number-- > 0 )
                                {
                                        System.out.println(data_In.readUTF() );
                                }
    
   }
  }catch(Exception ee)
  {}finally{
   try
   {
    httpcon.close();
   out.close();
   in.close();
   }catch(Exception ex){}
   
  }
  
 }
在接收数据方面我们使用到 线程, 这是因为如果服务器长时间没有反应,我们的程序也不会一直
等待,我们还是可以正常运行程序的。

由于使用到线程,所以我们要继承 implements Runnable 这个接口。

import javax.microedition.io.*;
import java.io.*;
记得要添加的数据包。 好了 我们编译一下。

好了,忘记把代码写入文件,现在再编译一下 。Build complete

我们还不能运行,我们先打开昨天我们Servlet 服务端,还记得吧,运行tomcat

然后我们写正确的URL ,tomcat服务端默认端口是8080的。

String url="http://192.168.1.8:8080/j2me_servlet/MyServlet";
完整的 Servlet 路径, 当然这是我的ip,如果里ip不一样 请修改

保存后再编译一下,然后就运行测试,这里它问是否链接到我们的URL地址,

我们选择 Yes 。

看到了吧, Servlet服务端 显示一条信息 ,接收到 手机发来的信息:Jame

然后返回 Jame,登陆成功 的信息给 手机,手机最后得到信息 打印出来了

好了 视频就演示到这里, 大家可以在上面添加更加多的功能。谢谢观看!


“从零开始J2ME手机开发入门视频教程11(j2me与Servlet相互通讯)编写j2me客户端并进行通信”有9个评论

  1. 08月 4th, 2009 at 16:51:04 #匿名

    希望笔者能够发布的快一点!能给我们带来更好的视频教学!

    [回复]

  2. 08月 10th, 2009 at 21:40:12 #匿名

    我全都看完了,感觉除了稍微模仿一下,其他的还是不会。。。。
    以后的教程希望有语音讲解,这样更好些。。
    谢谢。。。支持你们

    [回复]

  3. 12月 11th, 2009 at 15:31:19 #javaLover

    我首先 是万分 的感谢 做该视频的老师!对您说声 “谢谢”,因为我 看了视频后 编出了我的第一个 手机程序,心情 十分激动的,

    我也希望老师以后 做 视频的时候 ,能用语音的,

    [回复]

  4. 12月 11th, 2009 at 15:31:44 #javaLover

    支持!支持!支持!支持!支持!支持!支持!

    支持!

    支持!
    支持!支持!支持!支持!

    [回复]

  5. 12月 11th, 2009 at 22:43:14 #admin

    呵呵,谢谢支持。 因为现在这一块还是入门教程。

    主要是配置方面,和一些简单的程序, 没有语音也无大碍,

    以后一些复杂的视频 会考虑到语音方面的 :)

    [回复]

  6. 12月 23rd, 2009 at 11:13:34 #阿木

    “J2ME手机开发入门视频教程11(j2me与Servlet相互通讯)编写j2me客户端并进行通信”这个视频下载到一半就没有资源了。
    老师能不能把完整的视频发到我有些。
    非常感谢!

    [回复]

    adminreply on 2009-12-23 13:23:11:

    请看这个文章日志的最下面,有3个下载链接,你可以选择来下载。

  7. 01月 10th, 2010 at 00:54:10 #雨痕

    老师,我看了你的视频,
    关于那个implements 不是实现的意思吗,
    老是你讲的是继承。
    就比喻ItemStateListener 他不是接口吗?
    是不是j2me 和 j2ee 中有很大的区别?

    很谢谢老师的视频!

    [回复]

    adminreply on 2010-01-10 11:16:37:

    是的,接口的话,说实现更加合适,谢谢提醒。
    j2me j2ee 也好,如果仅仅针对开发语言来说 区别不大啊,都是使用java语言开发。不过如果针对j2me,j2ee自身的东西就差别非常大了。

有任何疑问或建议,可以给作者留言:



公告:

  • 2010年5月之前的视频是文字解说演示,没有声音。
  • 2010年5月以后的视频全部带声音。