基于http协议的手机邮件收发系统的设计与实现

上传人:飞*** 文档编号:30985458 上传时间:2018-02-03 格式:DOC 页数:11 大小:2.12MB
返回 下载 相关 举报
基于http协议的手机邮件收发系统的设计与实现_第1页
第1页 / 共11页
基于http协议的手机邮件收发系统的设计与实现_第2页
第2页 / 共11页
基于http协议的手机邮件收发系统的设计与实现_第3页
第3页 / 共11页
基于http协议的手机邮件收发系统的设计与实现_第4页
第4页 / 共11页
基于http协议的手机邮件收发系统的设计与实现_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于http协议的手机邮件收发系统的设计与实现》由会员分享,可在线阅读,更多相关《基于http协议的手机邮件收发系统的设计与实现(11页珍藏版)》请在金锄头文库上搜索。

1、1基于 http 协议的手机邮件收发系统的设计与实现刘洋平 王玉龙 赵伟(合肥学院电子信息与电气工程系通信工程专业)摘要:本文介绍了基于http协议的手机邮件收发系统的开发技术及其体系结构,设计并实现了一个基于http协议的手机邮件收发系统。系统采用Servlet技术以及 JavaMail技术作为中间层,解决了邮件收发的技术问题;使用了Java ME高级界面API、多线程和通用连接框架GCF 等多项技术实现MIDlet 客户端。关键词:http 手机邮件 Servlet JavaMail JavaME0 引言随着移动手机和智能化移动终端的实现,越来越多的用户习惯于无线移动通信方式,通过手机收发

2、电子邮件作为传统电脑收发邮件的一个补充,可以让我们更方便、快捷地获取重要信息。手机的邮件程序的开发目前存在两种方式:第一,是针对手机底层专用的 API 来开发,一般可有 C 语言来开发,这类程序的专用性很强,但不利于移植到新的机器上;第二,使用Java ME 技术,利用 JAVA 的对设备无关性的特点,也就是说用它来开发程序,可以放在任何一台 JAVA 手机上,而现在几乎所有手机都支持。在使用 Java ME 之前,手机连接互联网采用的是 WAP 技术,通过 WAP 协议访问 WAP 服务器,中间涉及到协议转换,将 WAP 转成 HTTP,存在速度慢,持续在线等缺点。J2ME 解决了这个问题,

3、即应采用基于 HTTP 的传输技术。目前 Java ME 推出了 MIDP2.0 简表,在这个表里提供了 http、socket、tcp/udp 等网络连接方式,这样首先就解决和网络互联的问题。1 手机邮件收发系统设计1.1 本系统的原理客户端 MIDlet 向中间服务器 tomcat 发送请求,服务器端 Servlet 使用 javamail 的API 向 POP3,SMTP 等邮件服务器提出要求,从而完成邮件的发送和接收功能。原理图如下图1-1:图 1-1 系统原理图1.2 系统功能描述本系统能够完成简单的邮件编写和邮件发送、接收功能。能够从和两个邮箱向其他的邮箱发送邮件,同时能够接收和两

4、个邮箱收件箱中的最近一封邮件。1.3 各功能模块设计过程1.3.1 手机端MIDlet程序的设计手机端程序包括三个线程,一个MIDlet主线程类,一个SendThread发送线程类,一个ReceiveThread接收线程类。SMTPSPPOP3SPJavaMailMIDlet tomcat21)首先使用Alert屏显制作一个欢迎界面,介绍本次课程设计的基本信息,添加“发信”和“收信”两个菜单,点击“发信”菜单启动sendThread线程,显示sendForm屏显,点击“收信”菜单启动receiveThread线程,显示receiveForm屏显。这一部分的部分代码如下:Command send

5、Command = new Command(发信 , Command.OK, 1);Command receiveCommand = new Command(收信, Command. OK, 2);/欢迎界面Alert splashScreen = new Alert(手机邮件收发系统 , 基于http协议的手机邮件收发系统nn学生姓名:刘洋平 王玉龙 赵伟n指导教师:李祎n2010年12月, null, AlertType.INFO);protected void startApp() throws MIDletStateChangeException / TODO Auto-generat

6、ed method stubdisplay = Display.getDisplay(this);message = new Message();sendForm = new SendForm(发送邮件系统,this);receiveForm =new ReceiveForm(接收邮件系统,this);contentTextBox = new ContentTextBox(内容, null, 600, TextField.ANY, this);splashScreen.addCommand(sendCommand);splashScreen.addCommand(receiveCommand)

7、;splashScreen.setTicker(new Ticker(您好,欢迎使用手机邮件收发系统,请选择收信发信菜单进入下一步);splashScreen.setCommandListener(this);display.setCurrent(splashScreen);2)发送邮件界面:SendForm类继承于高级用户界面Form类,上面添加三个TextField,用来添加发送邮件信息“发件人” 、 “收件人”和“主题” ,添加一个菜单“下一步” ,当点击“下一步”时进入contentTextBox屏显,添加邮件内容。其部分代码如下:public void init()fromField

8、 = new TextField(发件人:, null, 30, TextField.ANY);toField = new TextField(收件人:, null, 30, TextField.ANY);subField = new TextField(主题: , null, 30, TextField.ANY);this.append(fromField);this.append(toField);this.append(subField);this.addCommand(MailClient.nextCommand);this.setCommandListener(this);publi

9、c void commandAction(Command cmd, Displayable disp) if(cmd = MailClient.nextCommand) String from = fromField.getString();String to = toField.getString();String subject = subField.getString();if(from.equals() | to.equals() | subject.equals() Alert alert=new Alert(系统提示, 请认真填写信息,null,AlertType.CONFIRMA

10、TION);mailClient.display.setCurrent(alert, this);3else mailClient.getMessage().setFrom(from);mailClient.getMessage().setTo(to);mailClient.getMessage().setSubject(subject);mailClient.getDisplay().setCurrent(mailClient.getContentTextBox();3)接收邮件界面:ReceiveForm类继承于高级用户界面Form类,上面添加一个TextField,用来添加邮箱信息“邮件

11、地址” ,添加一个菜单“下一步” ,当点击“下一步”时继续程序的执行。其代码如下:private TextField emailAddressField = new TextField(请输入邮件地址: , null, 30, TextField.ANY);this.append(emailAddressField);this.addCommand(MailClient.nextCommand);this.setCommandListener(this);4)发送线程:打开一个HttpConnection接口,定义一个输出流,将发送邮件信息“发件人” 、 “收件人” 、 “主题”和“内容”发送

12、给Servlet进行处理,可用如下方法实现:/打开一个接口httpConnhttpConn=(HttpConnection)Connector.open(http:/localhost:8080/send-mailservlet/mail);httpConn.setRequestMethod(POST);/定义输出流dos = new DataOutputStream(httpConn.openOutputStream();dos.writeUTF(mailClient.getMessage().getFrom();dos.writeUTF(mailClient.getMessage().ge

13、tTo();dos.writeUTF(mailClient.getMessage().getSubject();dos.writeUTF(mailClient.getMessage().getContent();dos.close();定义一个输入流(注:输入流也可不定义) ,接收Servlet返回的信息,线程执行完毕后返回欢迎界面。5)接收线程:打开一个HttpConnection接口,定义一个输出流,将接收邮件信息“邮件地址”发送给Servlet进行处理,可用如下方法实现:/打开一个接口httpConnhttpConn =(HttpConnection)Connector.open(htt

14、p:/localhost:8080/receive-mailservlet/ma il);httpConn.setRequestMethod(POST);/定义输出流dos = new DataOutputStream(httpConn.openOutputStream();dos.writeUTF(mailClient.getMessage().getEmailAddress();dos.close();定义一个输入流,接收Servlet返回的信息,线程执行完毕后显示接收的邮件信息。实现代码如下:/定义输入流dis = new DataInputStream(httpConn.openInp

15、utStream();4mailContentR = dis.readUTF();dis.close();httpConn.close();System.out.println(end of receiving mail);/实例化NewMailForm类newMailForm = new NewMailForm(邮件信息 , mailClient);for(int i=0; i20000000; i+) /延时方法/显示新邮件界面mailClient.display.setCurrent(newMailForm);1.3.2 服务器Servlet发送(包括配置XML)程序的设计使用JavaMail的API跟SMTP邮件服务器进行交互,完成邮件的发送。1)建立dis输入流,接收发送邮件信息“发件人” 、 “收件人”和“主题”和“内容” ,先判断邮箱地址是还是,实现代码如下:/建立dis 输入流 (req.getInputStream()DataInputStream dis=new DataInputStream(req.getInputStream();String sendFrom=dis.readUTF();String sendTo=dis.readUTF();String subject=dis.

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

当前位置:首页 > 行业资料 > 其它行业文档

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