《電子技術應用》
您所在的位置:首頁 > 其他 > 业界动态 > Java Mail System和电子商务的集成

Java Mail System和电子商务的集成

2009-01-08
作者:邢云

引?言?

??? 對于電子商務網站的用戶來說,他們需要的是一個穩定,美觀的購物環境,和一個設計良好的購物流程。但是在線購買之余,用戶們也需要一些交流和反饋,這就需要留言簿,論壇,電郵等一些模塊同樣設置在網站中。但是這些模塊大多在網站中分散設計,用戶使用起來很不方便,對于后臺管理來說,分散而非集中的電子商務模塊是耗費成本的。本文集中講述了其中的一個模塊:電郵部分如何與電子商務集成。它的設計模式,同樣可以適用于其他各個模塊。?

程序功能模塊和分化?

??? Java Mail System包含了如下三個部分:?

(1)類似于Outlook的客戶端軟件Java Mail Box,允許用戶在當前系統中配置其他網站的電郵,包括發送郵件,接收郵件,包括圖片,HTML文檔,附件的處理。?

(2)服務器端的電郵Java Mail Web Service,使用JavaMail構建了一個SMTP,IMAP的服務器(或者是POP3,協議可以更改)。電子商務網站中的用戶在注冊成功的同時,就擁有了該系統的一個帳號,無需再配置,可以收發郵件一些操作,對服務器的文件夾進行常規操作。?

(3)與電子商務的集成:Tomcat的JNDI解決方案,實現了電子商務系統和Java mail system的連接,當用戶的注冊信息,和其他在電子商務網站中的信息用JDBC寫入數據庫后,JNDI指向了共同的CONNECTING POOL,這些,一方面通過修改TOMCAT的配置文件,令一方面,JSP的頁面元素中,指明JNDI?

Java Mail System: Java Mail Box?

??? 運用面向對象的原理,將程序分為顯示模塊,邏輯模塊,和各個顯示間的通信。用戶名,密碼,SMTP服務器等等用戶信息,用Java Bean描述。它和電子商務的集成,主要是讓用戶方便的調出這個郵件工具,來配置在其他網站上的電郵,點擊連接即顯示面板。?

??? Java Mail Box當中用了18個類,網頁中的APPLET標記需要引用包派生自JApplet的CLASS文件:?

????當瀏覽器讀到此行時,它會創建到一個連接WEB服務器來提取CLASS文件,內嵌與瀏覽器中的JAVA解釋器的類加載器接著從該文件中加載CLASS文件,加載過程中,類加載器必須解析此類中使用的其他類,這樣,類加載器才會知道它需要加載更多的類才會運行該APPLET,因此,瀏覽器就會創建到該服務器的另外的連接來提取這些類,通常要耗費幾分鐘的時間。打包成JAR文件,可以使用另一個HTTP請求下載。JAR包括了JAVA MAIL BOX所需要的所有圖形,類,屬性文件,減少了下載的,時間。然后從APPLET調用?在JSP中指向APPLET,就實現了JAVA MAIL BOX的集成。

Java Mail System: Java Mail Web Service

??? Java Mail Web Service的設計結構,取決于電子商務如何實現。這里,兩者采用的都是一個經典的MVC。即:Java Bean 做邏輯,JSP做顯示層,Servlet做Controller,同樣,還是用BEAN封裝了用戶的信息,由于JSP的容器使用了Apache的Tomcat,這個電郵服務器可看作一個3層結構,如圖:?

圖一:電子郵件服務器的3層結構?

集成:JNDI方面?

【Naming Service的查詢模型】

圖二:Naming Service 的查詢模型?

??? 可以看到,對于一個Client來說,一個Naming Service 提供了對于一個對象(Object)到名字(Name)的綁定和查詢(Binding and Lookup),以提供對于資源的訪問,就是說,對于一個程序,訪問這個Name就等于訪問了其綁定的Object?

JNDI(Java Naming and Directory interface)是JAVA提供的命名服務解決方案,它的靈魂是Context接口,并且用 SubContext和InitialContext來輔助。

【Tomcat中的JNDI配置】?

??? Tomcat中,指明JNDI,需要對兩個文件作出修改,并且要確定做到參數一致:系統服務器配置文件SERVER.XML和應用描述文件WEB.XML,描述如下:?

?????????? JNDI名字?

??????????????????? type="javax.mail.Session"/>??? ——>JNDI所屬類名?

集成:JDBC連接緩沖池方面?

??? 在DATASOURCE中事先建立了多個數據庫連接,這些數據庫保存到連接池(CONNECT POOL)中,JAVA程序訪問數據庫時,只需要從連接池中取出空閑狀態的數據庫連接,當程序訪問數據庫結束,再將數據庫連接放回到連接池,這樣可以提高訪問數據庫的效率,如果WEB 應用每一次都接收到用戶的客戶請求,都和數據庫建立一個連接,數據庫操作結束就斷開連接,這樣會耗費大量的時間和資源,因為數據庫每一次配置鏈接都要將CONNECTION對象加載到內存中,再驗證用戶名和密碼。?

??? 例如,當一個電子商務網站的用戶進行操作的時候,下訂單,提交(Commit),撤銷(DrawBack)涉及到一個狀態BEAN的HASHMAP的清空和添加。用戶的在線時間是10多分鐘左右,而實際操作數據庫的連接時間,是微秒級的。顯然,必須要用到連接池技術。 ?

集成:JNDI,JDBC共同放置實現?

DataSource對象是由TOMCAT提供的,因此不能在程序中采用創建一個實例的方式來生成DataSource對象,而需要JNDI,來獲得DataSource的應用?

圖三:在JNDI和JDBC的共同放置下,實現了一個用戶和數據庫的訪問

【程序中InitialContext()的應用】?

Context ctx = new InitialContext();?

if(ctx == null ) ?throw new Exception("No Context");?

Session mailsession =(Session)ctx.lookup("java:comp/env/mail/session");?

結束語?

??? 采用了JAVA MAIL API后,電子商務網站的設計模式,直接影響著Java Mail System 的實現。有時候,需要訪問SQL ,Oracle,Cloudscape不同的數據庫,就需要運用DAO和工廠模式來設計一致接口,同理可以設想,將一個通用的模式來實現Java Mail System和電子商務的連接,其意義在于,為其他的模塊連接提供了一個模板。有了這些輔助功能,一個電子商務功能才更豐富,自身也更有吸引力。?

參考文獻:?

1《JAVA2 核心技術》? 卷Ⅰ原理???????????????? 機械工業出版社???????? 2002年2月?

2《JAVA2核心技術》?? 卷Ⅱ高級特性???????????? 機械工業出版社???????? 2002年4月?

3 《JSP應用開發詳解(第二版)》飛思科技產品研發中心? 電子工業出版社?? 2004年3月?

4《JSP應用開發詳解(第二版)》 飛思科技產品研發中心? 電子工業出版社?? 2004年3月?

5《J2EE企業級應用開發》飛思科技產品研發中心???????? 電子工業出版社?? 2003年8月?

6《Tomcat與Java Web開發技術詳解》飛思科技產品研發中心 電子工業出版社2004年4月?

7《Mastering JSP》???????????? Todd Cook???????? SYBEX??????????????? 2003年3月?

8《VC++ SMTP協議電子郵件傳送剖析》 朗銳?? 01空間??????????????? 2003年9月12日?

9《JavaMail操作的總結》土人制造編程園地JAVA討論區 the_east_key 2004年4月15日?

10《用JAVA開發EMAIL工具之接收郵件》馮睿??? UML軟件工程組織?? 2002年12月20日?

11《用JAVA MAIL API編寫可帶附件的郵件程序》?? 邢雅莉?? 賽迪網? 2001年9月11日?

12《Cloudscape和Websphere Application Server:使用核心JDBC API》 Bennett Falt?

? IBM Data Management Group?? http://www.developworks.ibm.com?

13《創建J2EE中的郵件發送和接收程序》?? 蘇洋??????????? 賽迪網?? 2002年9月4日?

14《JAVA的網絡編程,用JAVA實現SMTP服務器》谷和啟?? 賽迪網?? 2003年3月21日 ?

15《JNDI overview, Part 1: An introduction to naming services》?????? java one?

16JNDI Documentation???????????????????????? http://www.java.sun.com/products/doc.html 17JAVA MAIL API Online?

?http://java.sun.com?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 真实国产乱子伦对白视频| 日韩av不卡播放| 欧美日韩国产精品一卡| 久久国产精品亚洲va麻豆| 不卡日韩av| 国产中文欧美精品| 亚洲在线观看视频网站| 久久精品99| 久久综合久久网| 婷婷亚洲婷婷综合色香五月| 不卡伊人av在线播放| 国产精品高清在线| 国产精品中文字幕在线| 久久久久高清| 免费99精品国产自在在线| 欧美一区二区三区免费观看| 人妻少妇精品无码专区二区 | 国产mv久久久| 国产精品亚洲二区在线观看| 国产区欧美区日韩区| 久久亚洲成人精品| 久久久久久亚洲精品不卡| 久热国产精品视频| 精品91免费| 国产日韩欧美自拍| 国产福利一区二区三区在线观看| 国产a∨精品一区二区三区不卡| av在线不卡观看| 亚洲 国产 日韩 综合一区| 水蜜桃亚洲精品| 日本精品视频一区| 久久亚洲私人国产精品va| 久久久av电影| 国产精品毛片va一区二区三区| 不卡中文字幕av| 亚洲高清在线观看一区| 秋霞无码一区二区| 国产在线一区二区三区四区| 国产精品久久国产三级国电话系列| 国产成人av在线播放| 亚洲专区在线视频|