网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java算术运算符.
.使用spring MVC框架进行文件上传.
.Tomcat设置类似IIS的访问密码.
.J2EE WEB层的曙光 -- JSF.
.Java对象的强、软、弱和虚引用.
.java多线程设计模式详解之四.
.JBuilder2005 Servlet开发之程序.
.在EJB环境中实现“观察者”模式.
.Java与XML(二)用Java编写XML的.
.Apache FOP 0.91 .
.Java 3D(JSR184)文件压缩.
.java 循环语句.
.Wireless Messaging API(2).
.如何使用 J2EE 连接器架构实现企.
.Java技术与XML常见问题.
.WebLogic的研究之开发、部署EJB(.
.Eclipse插件开发中实现刷新和重编.
.Compass 0.5, Java 搜索引擎框架.
.JAVA反射技术(二).
.如何在Java中实现Job Scheduling.

开发MIDP联网应用程序

发表日期:2008-1-5


♦ 引言

  在上讲中,我们介绍了如何利用Record Store把数据保存在终端内。本讲,我们将阐述MIDP Java网络的相关功能。由于N800终端只能使用HTTP通信,所以我们将以HTTP为主要范例进行讲解。到目前为止,只能制作终端内的单机型应用程序,假如利用网络,连接网络服务器,那么就能够制作出多种应用程序。

1. 利用网络

  1.1. Generic Connection Frame Work

  J2ME应该能支持各种手机终端。由于终端不同其网络功能及文件I/O功能也迥然不同,网络和文件I/O关联的图书馆所需的条件也不同。

  为了解决上述问题,JSME的CLDC采用了Generic Connection framework。Generic Connection framework拥有不同终端所需的省空间网络功能以及文件I/O功能。广泛应用J2SE的java.io和java.net包里的网络、文件I/O功能,并预备7个interface。这样,为能支持各种手机终端的通信功能,只限定interface,在每个手机终端上都能自由安装。不支持手机终端连接的实际安装不能进行。各种interface的说明如表1所示、层次结构如图1所示。

 Interface  作用  Connection  成为其他interface基础的interface  StreamConnectionNotifier  具有socket通信连接通知功能的interface  InputConnection  具有接收数据功能的interface  OutputConnection  具有发送数据功能的interface  DatagramConnection  具有连接UDP的数据电报通信功能的interface  StreamConnection  具有socket通信接收/发送功能的interface  ContentConnection  具有通信内容调查功能的interface  HttpConnection  具有http通信功能的interface

表 1

开发MIDP联网应用程序(图一)
图 1

  1.2. Connection Interface

  Connection interface在Generic Connection framework中是连接interface的基础interface。其他的连接interface是从Connection interface派生而来的。

  1.3. Connector 类

  使用Connector类的static方法open (String connectString)入网。

Connection con = Connector.open("http://www.nec-mfriend.com/");

ex. 1

  例如、如ex. 1所示,在open方法的自变量中输入“http://www.nec-mfiend.com/”,就可以实现与www.nec-mfriend.com服务器进行http通信。
  而Generic Connection framework的全部链接都是利用Connector类的open方法完成的。也就是说,即使链接类型不同,也能以同样的方法完成。J2ME由于这样的设计而拥有丰富的扩展性,对于上述新的装置它也配备了简单的支持系统。
  按照下述形式指定Open方法的自变量。

{protocol}:[{target}][{params}]

在Protocol部分可以指定如下所示的Protocol。  值  链接方式  file  文件 I/O  comm.  串行端口通信  socket  Socket通信  datagram  数据电报通信  http  Web服务器通信

表 2

*N800不支持socket通信、数据电报通信,而N820支持socket通信。

  在Target部分指定服务器的用户名、端口号和文件名等。若有必要的添加信息则在Params部分指定。

  Open方法也可以指定其他的自变量。

    static Connection open(String connectString, int mode)

从connectString中制作Connection、打开链接,若要使用mode链接则需指定Access mode。在access mode中,可以指定Connector.READ,Connector.READ_WRITE和Connector.WRITE ,若不指定,则为Connector.READ_WRITE 。在Protocol中不能指定access mode时,则放弃IllegalArgumentException。

  下表是其他Connector类的static方法。  方法  作用  DataInputStream openDataInputStream(String connectString)  从connectString中制作新的DataInputStream 并打开。  DataOutputStream openDataOutputStream(String connectString)  从connectString中制作新的DataOutputStream并打开。  InputStream openInputStream(String connectString)  从connectString中制作新的InputStream并打开。  OutputStream openOutputStream(String connectString)  从connectString中制作新的OutputStream并打开。

  1.4. HTTP 通信

  现在,我们对N800所支持的HTTP通信进行阐述。利用HTTP通信可以连接WEB服务器。例如,可以把手机终端难以处理的复杂问题交给WEB服务器处理,得出结果。HTTP通信采用MIDP方法作为标准,但是,采用MIDP作为基本方法的终端却不能进行HTTP通信,或者有很大的限制,这一点请注重。

为能在N800中使用HTTP通信需遵从以下规定。
• 要实现MIDlet通信必须在JAD(ADF)文件中设定MIDlet-UseNetwork(参考3.JAD(ADF)文件)为YES。.
• 最大发送量为10kbyte。
大于10kbyte时,超出部分被清除,小于10kbyte的数据才是有效的。
• 最大接收量为100kbyte。
大于100kbyte时,超出部分被清除,小于100kbyte的数据才是有效的。
• 连接处URL
从http://开始,包含http://,最多为512byte。不分大/小写。

  HTTP通信由request和response两部分组成。从客户发出的request信息传到服务器,服务器接收request,返还response信息。

  HTTP通信主要有下述三种request方式。  方式  作用  GET  要求指定的文件。  HEAD  要求指定文件的header信息。  POST  要求向指定文件发送信息,并得出结果。

接下来,让我们试着用多种request与服务器进行通信。

  1.5. 利用GET

    利用GET可以读取服务器上的文件。在使用GET之前,如下所示需在已完成的HttpConnection方法的setRequestMethod方法中,指定HttpConnection的static变数GET。

HttpConnection con = (HttpConnection)Connector.open("http://www.nec-mfriend.com/");
con.setRequestMethod(HttpConnection.GET);

ex. 2

    如下所示可以利用DataInputStream获取response。

String res="";
DataInputStream in = con.openDataInputStream();
int input;
while((input = in.read())!=-1){
res = res + (char)input;
}
in.close();

ex. 3

   以下实际是与服务器通信,获取Html文件的sample。为简单介绍sample的操作,得把通信结果,即获取的html文件内容,输入控制台。因此,此sample是以在模拟器上面操作为前提的。


上一篇:使用Java Web Services Developer Pack1.6开发WebService入门 人气:1256
下一篇:经典Java开发工具介绍(4):Borland JBuilder 4 Enterprise 人气:791
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐