通行证: 用户 密码
域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏
热门:qq挂机,asp,php,jsp,xml
,sql,.net,编程 程序 网页图象
首页>网络编程>jsp专区>正文 中国黑客群攻击美政府网站 拿到部   微软计划开放office文件格式 消除   腾讯联合八部门严厉打击挂机网站   神六载人飞行圆满成功   美国会要求nasa彻底完成空间站建   google中国研究院有望落户清华   深度分析:论雅虎中国的夭折和阿   神六可能于10月13日上午11点发射   盖茨继续当全美首富   adobe ceo痛斥微软 称其管理层从   
热 点 排 行
dll文件下载
qq挂机的n种快速方法
长白山天池怪兽再现 一分钟
腾讯qq调整升级条件 不再诱
ape歌曲的播放、转换和刻录
新开放qq免费挂级网站
qq挂级程序,qq免费挂机源程
刘亦菲 变性人、堕胎,自称
photoshop通道抠图:给秀发
免费把qq炫铃设为本机qq的
用通通通作代理在局域网上
用6位qq注意啦,免费领取6位
超级女声总决赛 现场实况(
用nero制作win98多功能启动
亲身体验!让桌面不再粗糙
推 荐 新 闻
中国黑客群攻击美政府网站
bittorrent被好莱坞招安盗
网站建设中,关键词选择技
神六载人飞行圆满成功
国庆长假上网慎防“移动杀
连环起诉google 传统媒体欲
最强秘籍 ie7最新使用技巧
神六完成总装可接航天器 外
adobe ceo痛斥微软 称其管
微软急调张亚勤回中国 千里
微软宣布重大重组方案 将划
腾讯qq 2005 beta3火热发布
腾讯扩张路线图曝光 陈天桥
腾讯拍拍网正式吹响进军c2
第五届“西湖论剑”文字实
相 关 新 闻
首页>网络编程>jsp专区>正文

使用jsp开发webmail系统


http://www.iyit.net  日期:2005-11-24 17:27:05  来源:易特网络技术  点击:
电子邮件(e-mail)是internet上使用最广泛的服务之一,传统的email应用模式基于c/s结构,即用户使用客户端的邮件收发工具(如outlook、foxmail等)与提供邮件服务的服务器(如163.net、263.net、371.net)通信,在使用客户端邮件工具之前,用户要进行一些必要的设置,如指定邮件服务器的主机地址和通信端口等,这些工作对刚开始上网的用户会有一定的困难,如果把e-mail和web结合在一起,即通过web编程和适当的系统设置,使用户仅仅以访问web的方式就可以得到和使用完整的邮件服务,这样将极大地方便上网用户,这种系统称为webmail。webmail是目前internet上最受欢迎的服务之一,也是很多网站必备功能之一。另外webmail同样也适用于企业或校园网的应用。 
  通常在后台服务器的搭建和设置完成后实现webmail系统,而前台的开发工作主要是开发工具与后台数据库和邮件服务器的交互问题。在linux平台上运行的各种服务器软件稳定性和可靠性一直很好,而且选择跨平台的java开发工具使系统更稳定,具有更高的伸缩性。 
jsp性能
  尽管jsp提供强大的功能是建立在servlet之上,但jsp的性能和servlet相差无几。jsp首先要编译成servlet,这只会增加少量的代码,仅需编译一次且可以预编译,这就消除了运行时花费不必要的负担。jsp与servlet性能上的差异仅仅表现在返回的数据是二进制的。这是因为jsp返回时用的是printwriter,而servlet可以应用于速度更快的outputstream。 
  jsp自定义的标签库可以封装大量的、复杂的java操作在一个form里面,这些预先定义好的标签可以很容易的被那些没有java知识的人调用。因此,jsp自定义的标签库可以有效地实现java程序员和web设计人员工作的划分。然而,在页面上应用的每一个标签,web容器都必须创建一个新的标签句柄对象或从标签缓冲中提取它。因此,过多的应用自定义的标签将会带来不必要的资源浪费。 
  bodytags是一种特殊的定制标签,可以提取在它之间封装的内容或者替换那些内容。bodytags之间的内容一般会备份在内存中。由于bodytags之间能够嵌套和重复,因此,在程序中应用了多级的bodytags会占用大量宝贵的内存和系统资源。 

实现webmail的主要功能
  该系统提供了获取、阅读、书写、转发、回复、打印、删除及用户管理的功能。考虑到系统的跨平台性,采用java及相关技术产品为开发工具,特别是采用jsp作为服务程序,这样对客户端也没有其它要求,同时系统的性能在高负荷下得到进一步提高。整个webmail系统全部采用纯java代码,服务器端每响应一个服务请求启动一个线程,而不像cgi那样启动一个进程。这样能够节省系统资源,提高系统性能。 


实现主要代码:


获取用户输入的信息 
  对于用户输入内容获取功能是通过getparameter方法来实现的,对于输入的文本内容,通过如下代码就能在服务器端获取,程序代码如下: 
string username=request.getparameter("login");
string password=request.getparameter("password");
session session2=session.getinstance(system.getproperties() ,null);
store store=session2.getstore("pop3");
 根据用户输入的信息来连接服务器,程序代码如下:
try{
 store.connect(host,username+"%nyist.net", password);
}
catch(javax.mail.authenticationfailedexception e)
{content="用户名与密码不匹配";}


接收邮件代码段 
根据获取用户输入的信息来连接服务器,代码为:
store.connect("nyist.net",-1,request.getparameter("username")+"%nyist.net",request
.getparameter("password"));
获取服务器端的信息,代码如下: 
folder folder = store.getfolder("inbox");
folder.open (folder.read_write);
message message[]=folder.getmessages();
fetchprofile fp=new fetchprofile();
fp.add(fetchprofile.item.envelope);
fp.add(fetchprofile.item.flags);
fp.add("x-mailer");
folder.fetch(message,fp);
根据服务器上信息的不同格式,使用不同的方式来读取: 
string contentbody="";
object o=message[j].getcontent();
若其type为tex/plain就可直接读出,代码如下: 
if (message[j].ismimetype("text/plain")) 
{
 contentbody=(string)+"</td>";
 stringbuffer  buf=new  stringbuffer(contentbody.length()+6);
 char  ch=" ";
 for(int  p=0;p<contentbody.length();p++)//若遇到换行就转为<br>
 {ch=contentbody.charat(p);
  if(ch=="\n")buf.append("<br>");
  else  buf.append(ch);
 }
 contentbody=buf.tostring();

如果信息类型为text/html,不同的信息类型处理的方式稍有不同(如下段代码),由于篇幅有限不再一一说明。 
else if (message[j].ismimetype("text/html")) 
 contentbody=(string)o+"</td>";

本新闻共2页,当前在第1页  1  2  


上一篇:jsp连接各类数据库大全(上)
下一篇:从jsp发送动态图像

[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 投稿作者: 易特网络技术
信息来源: 易特网络技术 录入时间: 2005-11-24 17:27:05
浏览次数: 投稿信箱: shtghy@163.com
  友情链接
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ?2004-2005 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息