亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

使用JSP開發WebMail系統

2024-09-05 00:16:52
字體:
來源:轉載
供稿:網友

";
StringBuffer buf=new StringBuffer(contentbody.length() 6);
char ch=" ";
for(int p=0;p
{ch=contentbody.charAt(p);
if(ch=="/n")buf.append("
");
else buf.append(ch);
}
contentbody=buf.toString();
}
如果信息類型為text/html,不同的信息類型處理的方式稍有不同(如下段代碼),由于篇幅有限不再一一說明。
else if (message[j].isMimeType("text/html"))
contentbody=(String)o "";
電子郵件(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) "
發送郵件代碼段

根據用戶輸入的內容,獲取郵件頭信息代碼如下:
String host = "nyist.net";
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String content = request.getParameter("content");
Properties props = System.getProperties();
//設置郵件服務
props.put("mail.smtp.host", host);
Session session2 =Session.getInstance(props, null);
設置郵件頭信息代碼如下:
MimeMessage message =new MimeMessage(session2);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject(subject);
message.setSentDate(new Date());
// create the message part
MimeBodyPart messageBodyPart =new MimeBodyPart();
設置郵件內容,構建程序段如下:
messageBodyPart.setText(content);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
用戶在發送郵件時常常帶有附件,就是將瀏覽器客戶端用戶本地的文件傳送到POP客戶端,實現代碼如下:
for (int i=0;i{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing()) {
myFile.saveAs("/upload/" myFile.getFileName());
count ;
}
在上傳附件的同時,對上傳文件的數量進行統計,并通過out.println("上傳了" count "個文件")將其在屏幕上顯示出來。
在發送的信件中如果有附件,使用如下代碼進行發送:
for(int i=0;request.getParameter("file" i)!=null;i )
{
messageBodyPart = new MimeBodyPart();
File file=new File("/home/mengyu/ROOT/upload/",request.getParameter("file" i));
DataSource source =new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(request.getParameter("file" i));
multipart.addBodyPart(messageBodyPart);
}
// Put parts in message
message.setContent(multipart);
調用Transport的send方法,將構造好MIME Message對象發送出去,代碼如下:
Transport.send(message);


刪除電子郵件代碼段
在通過Web界面使用電子郵件過程中,經常要對接收到垃圾郵件或已查看過的郵件進行刪除,這也是電子郵件中必不可少的一個功能,所以我們設計了Web界面中刪除電子郵件的相應功能,主要程序代碼段如下:
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message message[]=folder.getMessages();
String msg[]=request.getParameterValues("msg");
for(int i=0,n=msg.length;i message[Double.valueOf(msg[i]).intValue()].setFlag(Flags.Flag.DELETED,true);
folder.close(true);

用戶管理
在使用系統運行的過程中,通過管理界面添加用戶,刪除不必要的用戶,修改用戶的密碼,這是程序運行過程中必要的模塊,代碼如下:
//添加用戶
Runtime.getRuntime().exec("/home/vpopmail/bin/vadduser" request.getParameter("username") "@nyist.net " request.getParameter("passwd"));
//刪除用戶
Runtime.getRuntime().exec("/home/vpopmail/bin/vdeluser" request.getParameter("username") "@nyist.net");
//修改用戶密碼
Runtime.getRuntime().exec("/home/vpopmail/bin/vpasswd" request.getParameter("username") "@nyist.net " request.getParameter("passwd"));


總結
Java簡化了企業解決方案的開發、部署和管理等相關的復雜問題,它是面向對象的編程語言,同時也是具有平臺獨立性、高性能的服務器端編程語言。它提供的標準系統框架和服務適合團體開發,可控制性好,與其它資源的集成性好。采用Java為編程工具開發高性能、高可用性的WebMail服務器具有非常重要的意義。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人激情视频免费观看| 精品伊人久久97| 国产一区二区免费| 国产一区二区三区免费视频| 久久天天躁狠狠躁夜夜躁2014| 色偷偷偷综合中文字幕;dd| 欧美性猛交xxxx免费看漫画| 色婷婷av一区二区三区久久| 成人国产精品一区| 一区国产精品视频| 国产一区二区三区在线看| 欧美激情视频免费观看| 日韩黄色av网站| 2019最新中文字幕| 久久亚洲精品国产亚洲老地址| 久久久亚洲精选| 欧美大片第1页| 日韩有码在线视频| 欧美性少妇18aaaa视频| 精品在线欧美视频| 国产精品久久久久久久久久久不卡| 91精品视频免费看| 亚洲人av在线影院| 日本一区二三区好的精华液| 国产福利成人在线| 亚洲激情久久久| 亚洲欧美色婷婷| 九色精品美女在线| 91久久精品日日躁夜夜躁国产| 精品久久香蕉国产线看观看亚洲| 成人黄色在线播放| 亚洲深夜福利在线| 奇米4444一区二区三区| 亚洲直播在线一区| 亚洲性av网站| 91在线网站视频| 亚洲成人在线网| 亚洲一区二区三区毛片| 黑人巨大精品欧美一区二区免费| 国产精品视频精品| 亚洲色图色老头| 亚洲国产精品久久久| 中文字幕精品网| 亚洲香蕉av在线一区二区三区| 欧美午夜精品伦理| 色樱桃影院亚洲精品影院| 狠狠色狠色综合曰曰| 欧洲精品久久久| 欧美激情区在线播放| 一级做a爰片久久毛片美女图片| 国产精品激情av电影在线观看| 欧日韩在线观看| 亚洲性av网站| 亚洲aaa激情| 久久久久久久av| 国产一区二区三区高清在线观看| 国产精品久久久久久久久久99| 国产精品扒开腿做爽爽爽的视频| 国产精品欧美一区二区三区奶水| 欧美在线免费观看| 在线观看精品国产视频| 69**夜色精品国产69乱| 夜夜嗨av一区二区三区免费区| 2021久久精品国产99国产精品| 国产亚洲精品成人av久久ww| 韩日精品中文字幕| 亚洲精品第一页| 亚洲天堂成人在线| 国产亚洲欧美另类中文| 欧美日韩福利在线观看| 日韩亚洲欧美成人| 日韩av123| 国产精品一香蕉国产线看观看| 欧美极品美女视频网站在线观看免费| 久久综合久久美利坚合众国| 午夜精品视频网站| 久久夜色精品亚洲噜噜国产mv| 国产精品最新在线观看| 疯狂蹂躏欧美一区二区精品| 欧美高清视频免费观看| 欧美精品少妇videofree| 久久久亚洲影院| 日韩精品亚洲视频| 狠狠久久五月精品中文字幕| 国产中文欧美精品| 亚洲a在线播放| 91综合免费在线| 国产成人精品久久亚洲高清不卡| 亚洲黄页网在线观看| www.日本久久久久com.| 亚洲精品美女在线观看| 国产91精品最新在线播放| 亚洲xxxxx| 亚洲人成网7777777国产| 欧美成人黑人xx视频免费观看| 国产精品嫩草影院久久久| www.国产精品一二区| 亚洲国语精品自产拍在线观看| 91av在线视频观看| 日韩av日韩在线观看| 欧美日韩一二三四五区| 欧美日韩在线第一页| 亚洲黄色在线看| 国产欧美久久一区二区| 精品magnet| 日韩毛片中文字幕| 国产亚洲欧美日韩美女| 精品国产一区二区三区久久狼黑人| 欧美第一黄色网| 亚洲视频视频在线| 国产日韩中文字幕| 成人春色激情网| 精品国产成人在线| 日韩av在线网| 国产69精品久久久久9| 国语自产精品视频在线看抢先版图片| 欧美亚洲另类激情另类| 欧美午夜丰满在线18影院| 欧美性猛交xxxx免费看漫画| 国产做受69高潮| 精品一区二区三区四区| 在线日韩精品视频| 欧美大片大片在线播放| 国产精品福利在线观看| 91久久夜色精品国产网站| 国产啪精品视频| 国产精品网址在线| 国产精品大片wwwwww| 欧美在线不卡区| 91日本视频在线| 91av在线国产| 亚洲xxxx做受欧美| 色婷婷av一区二区三区在线观看| 成人免费xxxxx在线观看| 亚洲欧美日韩一区二区三区在线| 日韩一区二区三区国产| 正在播放国产一区| 久久久久国产一区二区三区| 精品久久久久久久大神国产| 欧美一级在线亚洲天堂| 神马久久桃色视频| 日韩电影中文字幕av| 91精品国产乱码久久久久久蜜臀| 日本午夜精品理论片a级appf发布| 亚洲成人xxx| 国产精品免费看久久久香蕉| 亚洲欧美一区二区激情| 亚洲成人在线网| 中文字幕久久久| 国产在线拍揄自揄视频不卡99| 欧美成年人视频网站| 欧美国产日韩一区| 17婷婷久久www| 国外日韩电影在线观看| 国产精品自拍偷拍| 欧美激情精品久久久久| 亚洲久久久久久久久久久| 国产福利精品av综合导导航| 国外成人在线视频| 欧美韩日一区二区| 国产精品三级网站| 亚洲精品99久久久久中文字幕| 亚洲人成免费电影| 亚洲国产另类 国产精品国产免费|