|
| 作者:佚名 电脑来源:中国站长站 点击数: 更新时间:2008-1-7 |
|
通常在后台服务器的搭建和设置完成后实现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 |
| 电脑录入:不落尘埃 责任编辑:不落尘埃 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
| ■■相 关 文 章: | 网站版权与免责声明: |
| XMLHTTP资料 在 XSL/XSLT 中实现随机排序 用XML和XSL来生成动态页面 利用XMLSerializer将对象串行化到… XML入门精解之结构与语法 实例讲解:开发SWING的XML框架 使XML本地化和关系化 |
1、信息来源网络,感谢原创者和原录入者。本站转载其文并不代表赞同其观点或证实其内容。网站所有信息仅供参考,不构成任何之建议、推荐或指引,不能仅凭此信息购药、用药、诊断疾病或开处方,而应以其使用说明书为准,并谨遵医嘱。
2、网站中转载的资料及图片,其版权属原作者或页面内声明的版权人拥有。如果文章的作者或编辑认为不宜上网供大家浏览,或不应无偿使用,请及时用电子邮件或电话通知我们,以便迅速采取适当措施,避免双方造成不必要的经济损失。 |
|
||||||||||