上次视频我们演示了 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,登陆成功 的信息给 手机,手机最后得到信息 打印出来了
好了 视频就演示到这里, 大家可以在上面添加更加多的功能。谢谢观看!
08月 4th, 2009 at 16:51:04 #匿名
希望笔者能够发布的快一点!能给我们带来更好的视频教学!
[回复]
08月 10th, 2009 at 21:40:12 #匿名
我全都看完了,感觉除了稍微模仿一下,其他的还是不会。。。。
以后的教程希望有语音讲解,这样更好些。。
谢谢。。。支持你们
[回复]
12月 11th, 2009 at 15:31:19 #javaLover
我首先 是万分 的感谢 做该视频的老师!对您说声 “谢谢”,因为我 看了视频后 编出了我的第一个 手机程序,心情 十分激动的,
我也希望老师以后 做 视频的时候 ,能用语音的,
[回复]
12月 11th, 2009 at 15:31:44 #javaLover
支持!支持!支持!支持!支持!支持!支持!
支持!
支持!
支持!支持!支持!支持!
[回复]
12月 11th, 2009 at 22:43:14 #admin
呵呵,谢谢支持。 因为现在这一块还是入门教程。
主要是配置方面,和一些简单的程序, 没有语音也无大碍,
以后一些复杂的视频 会考虑到语音方面的
[回复]
12月 23rd, 2009 at 11:13:34 #阿木
“J2ME手机开发入门视频教程11(j2me与Servlet相互通讯)编写j2me客户端并进行通信”这个视频下载到一半就没有资源了。
老师能不能把完整的视频发到我有些。
非常感谢!
[回复]
adminreply on 2009-12-23 13:23:11:
请看这个文章日志的最下面,有3个下载链接,你可以选择来下载。
01月 10th, 2010 at 00:54:10 #雨痕
老师,我看了你的视频,
关于那个implements 不是实现的意思吗,
老是你讲的是继承。
就比喻ItemStateListener 他不是接口吗?
是不是j2me 和 j2ee 中有很大的区别?
很谢谢老师的视频!
[回复]
adminreply on 2010-01-10 11:16:37:
是的,接口的话,说实现更加合适,谢谢提醒。
j2me j2ee 也好,如果仅仅针对开发语言来说 区别不大啊,都是使用java语言开发。不过如果针对j2me,j2ee自身的东西就差别非常大了。