WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术开发环境在J2ME平台上构建你的邮件程序

在J2ME平台上构建你的邮件程序
作者:Jacky Pan  来源:转载  发布时间:2005-8-2 9:56:48


Table of Contents
1. 教程的介绍和程序的安装

2. 程序的结构

3. 界面的设计

4. 账户的管理

5. MIDlet和Servlet的网络连接

6. Servlet和JavaMail

7. 简单的XML

8. 小结

1.教程的介绍和程序的安装

本教程讲述了如何在J2ME平台上编写一个简单的邮件应用程序,包括界面的设计,邮件的发送/接受,邮件账户的创建/修改/删除,后台Servlet的编写。

为了运行本教程所带的演示程序,您需要安装下列软件

1. WTK2.0 (java.sun.com)

2. Apache Tomcat (www.apache.org)

安装和运行示例程序的步骤:

1. 从http://groups.yahoo.com/group/OriTec/files/下载MicroMail Beta.zip(包括了源代码和二进制文件)

2. 解压MicroMail Beta.zip至$TMP

3. 在$WTK/apps下建一新目录MicroMail

4. 拷贝$TMP/src/client/* 至 $WTK/apps/MicroMail/src/

5. 拷贝$/TMP/bin/server/mail.war至$TOMCAT/webapps/

6. 运行Tomcat

7. 运行WTK2.0, “Open Project” 并选中MicroMail


8. 设置URL为MailAgent的地址http://server/mail/MailAgent


2. 程序的结构

采用Client-Web Server-Mail Server三层架构,如图1。

MIDlet

(Cell Phone)

Servlet

(Web Server)

Mail Server

My Application


Figure 1

Cell Phone将请求(接受/发送邮件)传给Web Server,Web Server将这些http请求转换成对POP3或 SMTP Server的请求。POP3/SMTP Server执行相应的请求,并将相应通过Web Server返回给Cell Phone.

客户端(PDA/手机)为J2ME平台上的程序。MIDP2提供了一些基本网络连接的API。利用这些API可以使得J2ME程序可以向远端发出Http请求,并接受响应,传递数据流。

MailAgent 为Servlet,用来接收来自客户端的请求,并调用Java Mail API,将这些请求转变成对远端Mail Server 的请求,同时将Mail Server的响应传给客户端。

那么为什么要采用这样的架构了?这是因为MIDP2.0只支持HTTP协议, 而不支持POP3 和 SMTP等其它应用层协议,而J2EE提供了完整的Java Mail的API,所以考虑通过一个Servlet将Http请求转换成POP3或SMTP请求。另一个原因是,很多运营商可能只提供有限的网络访问的能力,而通过一个agent则提供了程序部署的灵活性。

下面简单介绍一下源码的结构,在客户端,ui包中的类定义程序的用户界面,utility包中的类定义了数据库的操作,网络的连接,XML的解析等,mail包中的类定义了邮件账户,邮件的头。

ui package:

AccountForm.java

AccountsList.java

Confirm.java

ConfirmListener.java

MailMIDlet.java

MessageList.java

ProgressForm.java

SendMessage.java

WriteContent.java



utility package:

DBOperator.java

HeadParser.java

NetAdapter.java

Networker.java

ParserListener.java



mail package:

MailAccount.java

MessageHead.java



服务器端只有一个文件MailAgent.java,包含了一个servlet,用来做midlet和邮件服务器的桥梁。






3. 界面的设计

MIDP2.0提供了大量的API供开发者创建和控制用户界面。在包javax.microedition.lcdui中提供了List, Form, TextBox, Alert等Screen组件,在Form中可以包含一系列Item,如ChoiceGroup, TextField, StringItem等。包中还提供了Command组件,以及相应的Listener。



源文件ui/MailMIDlet.java定义了程序的入口以及MicroMail的主页面。如图2主页面是一个List,显示了几个功能模块,包括添加账户,修改/删除账户,接受邮件,发送邮件。



Figure 2

public MailMIDlet()

{

display = Display.getDisplay(this);

/* 创建List */

mainList = new List("MicroMail0.1", Choice.IMPLICIT);

/* 创建两个控制按钮OK和Exit */

cmOK = new Command("OK", Command.OK, 1);

cmExit = new Command("Exit", Command.EXIT, 1);

/* 向mainlist中添加内容 */

mainList.append("Add Account", null);

mainList.append("Edit Account", null);

mainList.append("Receive Message", null);

mainList.append("Send Message", null);

/* 为mainlist添加Command */

mainList.addCommand(cmOK);

mainList.addCommand(cmExit);

/* MailMIDlet实现了CommandListener接口,可以作为监听器 */

mainList.setCommandListener(this);



……

}



通过AccountForm(源文件ui/AccountForm.java),用户可以添加和修改邮件账户,如图3。




Figure 3a Figure 3b



AccountForm包含了6个TextField,分别显示邮件账户的6个属性。account为账户名,也是账户的唯一标识,不可重名。address为邮件的地址,如bill@ms.com。 user, password是在邮件服务商注册的用户名和密码。pop3, smtp是pop3服务器和smtp服务器的名字或地址。

private void setContent(MailAccount macc)

{

account = new TextField("Account: ", "", 20, TextField.ANY);

address = new TextField("Address; ", "", 40, TextField.EMAILADDR);

user = new TextField("User Name: ", "", 20, TextField.ANY);

password = new TextField("Password: ", "", 20, TextField.PASSWORD);

pop3 = new TextField("POP3 Server: ", "", 20, TextField.ANY);

smtp = new TextField("SMTP Server: ", "", 20, TextField.ANY);



if (macc != null)

{

account.setString(macc.accountName);

address.setString(macc.address);

user.setString(macc.username);

password.setString(macc.password);

pop3.setString(macc.POP3Server);

smtp.setString(macc.SMTPServer);

}



append(account);

append(address);

append(user);

append(password);

append(pop3);

append(smtp);



}

其它页面与AccountForm类似,在此不再赘述,请大家参照源代码和MIDP API的文档。



4. 账户的管理

邮件账户的创建,修改,删除都涉及到对数据记录的存取。MIDP提供了一种叫做记录管理系统(Record Management System)的机制来存储和访问数据。

javax.microedition.rms.RecordStore提供了一些API来操作这个系统。静态方法openRecordStore用来打开或创建一个RecordStore对象。方法addRecord, getRecord, deleteRecord, setRecord分别用来添加,访问,删除或修改RecordStore对象中的记录。

utility/DBOperator.java中封装了这些方法,从而实现添加,修改,删除邮件

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码