




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目 錄 TOC o 1-2 h z u HYPERLINK l _Toc231207923 摘要 PAGEREF _Toc231207923 h 1 HYPERLINK l _Toc231207925 Abstract PAGEREF _Toc231207925 h 2 HYPERLINK l _Toc231207926 第1章 引言 PAGEREF _Toc231207926 h 3 HYPERLINK l _Toc231207927 1.1 選題的背景和意義 PAGEREF _Toc231207927 h 3 HYPERLINK l _Toc231207928 1.2 國(guó)內(nèi)外研究現(xiàn)狀 PA
2、GEREF _Toc231207928 h 3 HYPERLINK l _Toc231207929 1.3 本文結(jié)構(gòu) PAGEREF _Toc231207929 h 4 HYPERLINK l _Toc231207930 第2章 相關(guān)知識(shí)介紹 PAGEREF _Toc231207930 h 5 HYPERLINK l _Toc231207931 2.1 開發(fā)平臺(tái) PAGEREF _Toc231207931 h 5 HYPERLINK l _Toc231207932 2.2 J2EE 標(biāo)準(zhǔn)概述 PAGEREF _Toc231207932 h 5 HYPERLINK l _Toc231207933
3、 2.3 JSP簡(jiǎn)介及優(yōu)勢(shì) PAGEREF _Toc231207933 h 6 HYPERLINK l _Toc231207934 2.4 Servlet概述 PAGEREF _Toc231207934 h 6 HYPERLINK l _Toc231207935 2.5 JavaBean概述 PAGEREF _Toc231207935 h 7 HYPERLINK l _Toc231207936 2.6 Lucene概述及優(yōu)點(diǎn) PAGEREF _Toc231207936 h 7 HYPERLINK l _Toc231207937 2.7 JavaMail API簡(jiǎn)介 PAGEREF _Toc23
4、1207937 h 7 HYPERLINK l _Toc231207938 第3章 總體設(shè)計(jì) PAGEREF _Toc231207938 h 9 HYPERLINK l _Toc231207939 3.1 系統(tǒng)總體框架 PAGEREF _Toc231207939 h 9 HYPERLINK l _Toc231207940 3.2 系統(tǒng)功能層次 PAGEREF _Toc231207940 h 9 HYPERLINK l _Toc231207941 3.3 數(shù)據(jù)庫(kù)結(jié)構(gòu) PAGEREF _Toc231207941 h 10 HYPERLINK l _Toc231207942 第4章 局部系統(tǒng)模塊詳細(xì)
5、設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc231207942 h 13 HYPERLINK l _Toc231207943 4.1 注冊(cè)登錄模塊 PAGEREF _Toc231207943 h 13 HYPERLINK l _Toc231207944 4.2 郵件管理模塊 PAGEREF _Toc231207944 h 15 HYPERLINK l _Toc231207945 4.3 本章小結(jié) PAGEREF _Toc231207945 h 18 HYPERLINK l _Toc231207946 第5章 郵件收發(fā)模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc231207946 h 19 HYPERLIN
6、K l _Toc231207947 5.1 郵件的結(jié)構(gòu) PAGEREF _Toc231207947 h 19 HYPERLINK l _Toc231207948 5.2 郵件的發(fā)送 PAGEREF _Toc231207948 h 19 HYPERLINK l _Toc231207949 5.3 郵件的接收 PAGEREF _Toc231207949 h 21 HYPERLINK l _Toc231207950 5.4 JMS模塊 PAGEREF _Toc231207950 h 25 HYPERLINK l _Toc231207951 5.5 本章小結(jié) PAGEREF _Toc231207951
7、 h 27 HYPERLINK l _Toc231207952 第6章 總結(jié) PAGEREF _Toc231207952 h 28 HYPERLINK l _Toc231207953 6.1 系統(tǒng)總結(jié) PAGEREF _Toc231207953 h 28 HYPERLINK l _Toc231207954 6.2 局部效果圖 PAGEREF _Toc231207954 h 28 HYPERLINK l _Toc231207955 6.3 開展前景 PAGEREF _Toc231207955 h 30 HYPERLINK l _Toc231207956 致謝 PAGEREF _Toc231207
8、956 h 31 HYPERLINK l _Toc231207957 參考文獻(xiàn) PAGEREF _Toc231207957 h 32 HYPERLINK l _Toc231207958 附錄 PAGEREF _Toc231207958 h 33支持全文檢索的郵件代理效勞平臺(tái)用戶注冊(cè)管理及JavaMail的應(yīng)用與實(shí)現(xiàn)摘要:電子郵件是在Internet上應(yīng)用廣泛的通信方式,它可以有效地進(jìn)行電子化的數(shù)據(jù)異地交換。支持全文檢索的郵件代理效勞平臺(tái),是為了解決用戶對(duì)多個(gè)郵箱的管理問題,同時(shí)具備全文檢索功能。該系統(tǒng)是基于J2EE平臺(tái)開發(fā)的,用JavaMail收發(fā)郵件,用Lucene實(shí)現(xiàn)全文檢索。在開發(fā)過程中
9、使用了JavaBean,JSP,Servlet,Java消息效勞等關(guān)鍵技術(shù)實(shí)現(xiàn)MVC模式。該系統(tǒng)采用B/S運(yùn)行模式,用戶既可以對(duì)多個(gè)郵箱進(jìn)行管理,同時(shí)還可以擺脫C/S運(yùn)行模式帶來的麻煩。關(guān)鍵詞:全文檢索;J2EE平臺(tái);Lucene;JavaMail;Java消息效勞Support Full-text Search Platform for E-mail Proxy ServiceRegister Management and Application of JavaMailAbstract: E-mail application in a wide range of Internet commu
10、nications means that it can effectively carry out the electronic exchange of data in different places. Support full-text search platform for e-mail proxy service, users to address the management of multiple mailboxes at the same time have the full-text search function. The system was developed based
11、 on the J2EE platform, to achieve full-text search using Lucene. Used in the development of a JavaBean, Java Server Page, Servlet, Java Message Service and other key technologies to achieve MVC model. The system uses B/S mode, the user can manage multiple mailboxes, but also can get rid of C/S mode
12、of operation brought about by the trouble.Key words: Full-text Search; J2EE; Lucene; JavaMail; Java Message Service第1章 引言 選題的背景和意義 選題的背景在Internet飛速開展的今天,電子郵件仍然是Internet主要應(yīng)用效勞之一。通過電子郵件,人們可以快捷方便地與世界上任何一個(gè)網(wǎng)絡(luò)用戶聯(lián)絡(luò),這些電子郵件可以包含文字、圖像、聲音、或其他多媒體信息。據(jù)統(tǒng)計(jì),在全球范圍來看,四分之三以上的用戶上網(wǎng)的主要目的是收發(fā)郵件,每天又?jǐn)?shù)億封電子郵件在全球傳遞。電子郵件成為了用戶不可或缺的
13、通信工具。上世紀(jì)80年代中期,個(gè)人電腦興起,電子郵件開始在電腦迷以及大學(xué)生中廣泛傳播開來。到上世紀(jì)90年代中期,互聯(lián)網(wǎng)瀏覽器誕生,全球網(wǎng)民人數(shù)激增,電子郵件被更為廣泛使用,越來越多的用戶有多個(gè)郵箱。用戶如果每天都一個(gè)一個(gè)郵箱的收發(fā)郵件,那將非常麻煩,耗時(shí)費(fèi)力,有時(shí)甚至由于混淆帳戶和密碼,不能正常收發(fā)郵件。對(duì)郵件進(jìn)行有效收發(fā),并能迅速獲取有用信息,成為每個(gè)郵箱用戶所求。支持全文檢索的郵件代理平臺(tái)就是為了順應(yīng)這種趨勢(shì)而產(chǎn)生的。 選題的意義該選題的實(shí)現(xiàn)有以下幾個(gè)意義:解決用戶對(duì)多個(gè)郵箱的郵件的管理問題,進(jìn)入該郵件代理效勞平臺(tái)后,只要用戶事先設(shè)置好郵箱帳號(hào)和密碼,一旦聯(lián)網(wǎng)就可以自動(dòng)收取郵件,省去單個(gè)郵
14、箱收發(fā)郵件帶來的麻煩;該代理效勞器采用B/S運(yùn)行模式,用戶不需要安裝客戶端軟件,僅需一個(gè)瀏覽器,就可以訪問;具備全文檢索功能,方便用戶快捷、高效獲取有用信息。 國(guó)內(nèi)外研究現(xiàn)狀雖然作為后臺(tái)的郵件的效勞器種類繁多,但是它們都提供標(biāo)準(zhǔn)的連接端口和協(xié)議,方便各種客戶端軟件或者應(yīng)用程序收發(fā)郵件效勞器上的信件。作為一個(gè)用戶,可能會(huì)使用各種客戶端軟件或者使用各種基于Web的郵件效勞系統(tǒng)來處理自己的信件。目前,我們最常用的客戶端的用戶郵件程序主要有兩種:一個(gè)是微軟公司的Outlook Express,另一個(gè)是國(guó)內(nèi)開發(fā)的Foxmail,不管是從功能上還是操作方便程度上來講,兩種用戶郵件程序都各具特色,足以代表眾
15、多的此類軟件。Outlook Express是由美國(guó)微軟公司(Microsoft)出0PP的免費(fèi)軟件,與Internet Explorer瀏覽器軟件捆綁發(fā)行;Foxmail是由國(guó)人張小龍編寫的一個(gè)功能強(qiáng)大非商業(yè)軟件,它實(shí)現(xiàn)了真正的多用戶、多帳戶、多POP3支持,自動(dòng)進(jìn)行撥號(hào),能設(shè)置郵件過濾功能,能閱讀和收發(fā)Big5碼的郵件,可以直接查看HTML格式郵件。雖然客戶端軟件可以提供強(qiáng)大的功能,但是它有比擬大的缺陷。用戶首先必須知道如何去配置該客戶端軟件,而這些配置過程也是比擬復(fù)雜,不是每一個(gè)使用的用戶都可以很快就可以學(xué)會(huì)使用的。另外,收發(fā)的郵件都必須存放在本地,當(dāng)用戶使用不同的機(jī)器的時(shí)候,就會(huì)帶來很
16、多不便。而具有Web的郵件效勞系統(tǒng),就非常好的解決了這個(gè)問題。用戶只要可以連接所在郵箱的Web效勞器,就可以在任何時(shí)間,任何地點(diǎn),收發(fā)自己的郵件了。因此,目前很多效勞提供商(如163,21cn等)對(duì)其用戶提供的基于Web的電子郵件效勞。 本文結(jié)構(gòu)本文共分為七章第一章介紹了支持全文檢索的郵件代理效勞平臺(tái)的開發(fā)背景、目的和意義以及國(guó)內(nèi)外研究現(xiàn)狀;第二章介紹系統(tǒng)開發(fā)平臺(tái)和以及給出相關(guān)技術(shù)的簡(jiǎn)單介紹;第三章介紹本系統(tǒng)的整體設(shè)計(jì),功能模塊分析,及數(shù)據(jù)庫(kù)分析設(shè)計(jì);第四章介紹用戶注冊(cè)登錄、郵箱管理的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn);第五章介紹用JavaMail收發(fā)郵件,并給出JMS的工作原理及應(yīng)用;第六章進(jìn)行工作總結(jié)。第2章
17、 相關(guān)知識(shí)介紹 開發(fā)平臺(tái)本系統(tǒng)是在Windows xp sp2環(huán)境下開發(fā)的,開發(fā)工具是:,采用的效勞器是Sun Java Application S,所用數(shù)據(jù)庫(kù)是Oracle 9i。2.2 J2EE 標(biāo)準(zhǔn)概述J2EE(Java 2 Platform,Enterprise Edition是SUN公司提出開發(fā)、裝配和部署的基于Java分布式應(yīng)用的標(biāo)準(zhǔn)平臺(tái),它以Java 2平臺(tái)標(biāo)準(zhǔn)版(J2SE)為核心,是一種利用Java 2平臺(tái)來簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu),其應(yīng)用程序模型起始于Java程序語(yǔ)言和Java虛擬及。J2EE不僅穩(wěn)固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),在其之上還增添了大量
18、企業(yè)級(jí)管理軟件根底結(jié)構(gòu)和Web效勞所需要的支持軟件工具。J2EE是成長(zhǎng)很快的技術(shù)應(yīng)用框架,全球很多信的應(yīng)用是由J2EE分布式應(yīng)用體系支撐的。J2EE還是一種技術(shù)標(biāo)準(zhǔn),它給開發(fā)人員提供了一種工作平臺(tái),它定義了整個(gè)標(biāo)準(zhǔn)的應(yīng)用開發(fā)體系結(jié)構(gòu)和一個(gè)部署環(huán)境。在這個(gè)體系結(jié)構(gòu)中,應(yīng)用程序開發(fā)人員可以集中于封裝商業(yè)邏輯和商業(yè)規(guī)那么上,一切于根底結(jié)構(gòu)效勞相關(guān)的問題已及底層分配問題都由應(yīng)用程序容器或者效勞器來處理。這樣J2EE應(yīng)用程序開發(fā)人員可以集中考慮應(yīng)用程序的邏輯和相關(guān)的效勞,而把所有的根底結(jié)構(gòu)相關(guān)的效勞交由運(yùn)行環(huán)境實(shí)現(xiàn)。 J2EE的功能通過Servlet建立與Web效勞器的交互界面,Servlet能夠提供
19、請(qǐng)求的響應(yīng)元素;支持會(huì)話,J2EE許多組件提供會(huì)話的內(nèi)置支持;通過EJB實(shí)現(xiàn)自動(dòng)會(huì)話與事務(wù)支持,EJB可以映射與用戶交互的數(shù)據(jù);通過JDBC實(shí)現(xiàn)數(shù)據(jù)庫(kù)端的事務(wù)支持,聯(lián)合JTA實(shí)現(xiàn)分布式事務(wù)處理;使用JSP為用戶提供靈活、可選擇的動(dòng)態(tài)界面;提供基于JMS、JavaMail的消息效勞;提供基于JNDI的目錄效勞,為用戶查找組件對(duì)象提供統(tǒng)一接口;內(nèi)置對(duì)XML的支持,方便建立B2B、B2C電子商務(wù)應(yīng)用。 JSP簡(jiǎn)介及優(yōu)勢(shì)JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HT
20、ML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于效勞端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示別離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web效勞器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)
21、頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP與Java Servlet一樣,是在效勞器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP具備以下強(qiáng)勢(shì):一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP表更出色,除了系統(tǒng)之外,代碼不用做任何更改;系統(tǒng)的多平臺(tái)支持。根本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的;強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)效勞器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)效勞器到無數(shù)臺(tái)效
22、勞器,Java顯示了一個(gè)巨大的生命力;多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 Servlet概述一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類,它被用來擴(kuò)展效勞器的性能,效勞器上駐留著可以通過“請(qǐng)求-響應(yīng)編程模型來訪問的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展Web效勞器的應(yīng)用程序。Java Servlet技術(shù)為這些應(yīng)用程序定義了一個(gè)特定于 的servlet類。和包為編寫servlet提供了接口和類。所有的servlet都必須實(shí)現(xiàn)Serv
23、let接口,該接口定義了生命周期方法。當(dāng)實(shí)現(xiàn)一個(gè)通用的效勞時(shí),您可以使用或擴(kuò)展由Java Servlet API提供的GenericServlet類。 Servlet類提供了一些方法,諸如doGet和doPost,以用于處理特定于 的效勞。 JavaBean概述JavaBean是一種 HYPERLINK :/baike.baidu /view/29.htm t _blank JAVA HYPERLINK :/baike.baidu /view/9793.htm t _blank 語(yǔ)言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean通過提
24、供符合一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫(kù)訪問和其他任何可以用java代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁(yè)面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對(duì)象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。 Lucene概述及優(yōu)點(diǎn)Lucene是apache軟件基金會(huì)jakarta工程組的一個(gè)子工程,是一個(gè)開放源代碼的全文檢索引擎工具包,即它不是
25、一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,局部文本分析引擎。Lucene的目的是為軟件開發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為根底建立起完整的全文檢索引擎。Lucene作為一個(gè)全文檢索引擎,其具有如下突出的優(yōu)點(diǎn):索引文件格式獨(dú)立于應(yīng)用平臺(tái)。Lucene定義了一套以8位字節(jié)為根底的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件;在傳統(tǒng)全文檢索引擎的倒排索引的根底上,實(shí)現(xiàn)了分塊索引,能夠針對(duì)新的文件建立小文件索引,提升索引速度。然后通過與原有索引的合并,到達(dá)優(yōu)化的目的;優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架
26、構(gòu),使得對(duì)于Lucene擴(kuò)展的學(xué)習(xí)難度降低,方便擴(kuò)充新功能;設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,索引器通過接受Token流完成索引文件的創(chuàng)立,用戶擴(kuò)展新的語(yǔ)言和文件格式,只需要實(shí)現(xiàn)文本分析的接口;已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查詢引擎,用戶無需自己編寫代碼即使系統(tǒng)可獲得強(qiáng)大的查詢能力,Lucene的查詢實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢、分組查詢等等。2.7 JavaMail API簡(jiǎn)介JavaMail API1是一種可選的、能用于讀取、編寫和發(fā)送電子消息的包??墒褂眠@種包創(chuàng)立郵件用戶代理類型的程序,它類似于Eudora、Pine及Microsoft Outlook這些郵件程序。其主要目的不是
27、像發(fā)送郵件或其他郵件傳輸代理類型的程序那樣用于傳輸、發(fā)送和轉(zhuǎn)發(fā)消息。JavaMail API具有會(huì)話、消息、地址、驗(yàn)證程序、傳輸、存儲(chǔ)和文件夾。Session:Session類定義了一個(gè)根本郵件會(huì)話,是JavaMail API最高層入口類。所有其它類都是經(jīng)由這個(gè)session才得以生效。Session對(duì)象用對(duì)象獲取信息,如郵件效勞器、用戶名、密碼及整個(gè)應(yīng)用程序中共享的其它信息。Message:一旦獲得Session對(duì)象,就可以繼續(xù)創(chuàng)立要發(fā)送的消息。這由Message 類來完成。因?yàn)镸essage是個(gè)抽象類,必需用一個(gè)子類,多數(shù)情況下為。MimeMessage是個(gè)能理解MIME類型和頭的電子郵件
28、消息,正如不同RFC中所定義的。雖然在某些頭部域非ASCII字符也能被譯碼,但Message頭只能被限制為用US-ASCII字符。Address:一旦您創(chuàng)立了Session和Message,并將內(nèi)容填入消息后,就可以用Address確定信件地址了。和Message一樣,Address也是個(gè)抽象類。您用的是 Java類。Authenticator:與類一樣,JavaMail API也可以利用Authenticator通過用戶名和密碼訪問受保護(hù)的資源。對(duì)于JavaMail API來說,這些資源就是郵件效勞器。JavaMail Authenticator在包中,而且它和中同名的類Authentica
29、tor不同。兩者并不共享同一個(gè)Authenticator,因?yàn)镴avaMail API用于,它沒有類別。要使用Authenticator,先創(chuàng)立一個(gè)抽象類的子類,并從getPasswordAuthentication()方法中返回PasswordAuthentication實(shí)例。創(chuàng)立完成后,您必需向session注冊(cè)Authenticator。然后,在需要認(rèn)證的時(shí)候,就會(huì)通知Authenticator。您可以彈出窗口,也可以從配置文件中雖然沒有加密是不平安的讀取用戶名和密碼,將它們作為PasswordAuthentication對(duì)象返回給調(diào)用程序。Transport:消息發(fā)送的最后一局部是使用
30、Transport類。這個(gè)類用協(xié)議指定的語(yǔ)言發(fā)送消息通常是SMTP。它是抽象類,它的工作方式與Session有些類似。僅調(diào)用靜態(tài)send()方法,就能使用類的缺省版本:Transport.send(message);或者,讀者也可以從針對(duì)自己的協(xié)議的會(huì)話中獲得一個(gè)特定的實(shí)例,傳遞用戶名和密碼如果不必要就不傳,發(fā)送消息,然后關(guān)閉連接。Store:Store類實(shí)現(xiàn)特定郵件協(xié)議上的讀、寫、監(jiān)視、查找等操作。通過類可以訪問類。Folder:Folder類用于分級(jí)組織郵件,并提供照格式訪問email的能力。第3章 總體設(shè)計(jì) 系統(tǒng)總體框架框架圖能形象描繪一個(gè)事物結(jié)構(gòu)組成、功能和大概的實(shí)現(xiàn)方法。該系統(tǒng)總體框
31、架圖如圖3-1所示。圖3-1 系統(tǒng)框架圖3.2 系統(tǒng)功能層次該系統(tǒng)按照實(shí)現(xiàn)的功能來分,可分為六個(gè)功能模塊:注冊(cè)登錄:所有用戶在登錄之前必需先注冊(cè);郵件管理:用戶查看或刪除收件箱郵件和已發(fā)郵件;郵件收發(fā):用戶可以接收郵件,也可編輯郵件,并發(fā)送郵件;郵箱管理:用戶可以添加新郵箱,修改郵箱,刪除郵箱;用戶管理:用戶可以修改密碼等個(gè)人資料;郵件檢索:用戶可按照自己的意愿索引和搜索郵件。功能層次圖用來直觀地描述系統(tǒng)的功能層次,本系統(tǒng)的功能層次圖如圖3-2所示。支持全文檢索的郵件代理效勞平臺(tái)注冊(cè)登錄郵件管理郵件收發(fā)郵件檢索郵箱管理用戶管理注冊(cè)登錄查看郵件刪除郵件發(fā)送郵件修改郵箱刪除郵箱修改密碼索引郵件搜索
32、郵件添加郵箱接收郵件圖3-2 功能層次圖3.3 數(shù)據(jù)庫(kù)結(jié)構(gòu) 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)計(jì)算機(jī)處理的大多數(shù)是數(shù)據(jù),因而數(shù)據(jù)的組織是關(guān)鍵,也是使用計(jì)算機(jī)處理事半功倍的根底,而該系統(tǒng)在處理郵件時(shí),涉及大量數(shù)據(jù),采用E-R圖方法(Entity-Relationship Approach)將現(xiàn)實(shí)數(shù)據(jù)轉(zhuǎn)化為計(jì)算機(jī)信息。根據(jù)前面分析的系統(tǒng)的各種功能要求,得到該系統(tǒng)所需的數(shù)據(jù)實(shí)體共有四個(gè),采用E-R圖分析得到以下主要數(shù)據(jù)對(duì)象及其關(guān)系。如圖3-3所示,用戶信息包括用戶名和密碼這兩個(gè)信息。用戶信息用戶名密碼圖3-3 用戶信息E-R圖如圖3-4所示,一個(gè)郵箱包括三個(gè)根本信息,帳戶名和密碼是由用戶所申請(qǐng)的郵箱決定的,ID即為郵箱
33、添加到數(shù)據(jù)庫(kù)中的編號(hào)。郵箱帳戶名密碼ID圖3-4 郵箱E-R圖如圖3-5所示,一個(gè)郵件往往包括7個(gè)屬性信息。統(tǒng)的各種功能要求,得到該系統(tǒng)所需的數(shù)據(jù)實(shí)體共有四個(gè),采用E-R圖分析得到以下主要數(shù)據(jù)對(duì)象及其關(guān)系。郵件sid收件人你人發(fā)件人人標(biāo)題內(nèi)容ID時(shí)間狀態(tài)圖3-5 郵件E-R圖 數(shù)據(jù)庫(kù)信息表由.1節(jié)中的E-R圖,可以創(chuàng)立以下四個(gè)信息表,各字段的具體設(shè)置如表3-1到表3-4所示。表3-1用戶信息表users字段名數(shù)據(jù)類型能否為空備注USERNAMEVARCHAR2(50)No用戶名PASSWORDVARCHAR2(50)No密碼說明:當(dāng)用戶注冊(cè)成功時(shí),就會(huì)用執(zhí)行insert into users(
34、username,password) values(?,?),插入用戶信息。當(dāng)插入成功時(shí),就會(huì)創(chuàng)立三個(gè)數(shù)據(jù)庫(kù)表,說明分別為username+MAIL,username+MAILTO,username+MAILBOX。表3-2用戶收到的郵件username+MAIL字段名數(shù)據(jù)類型能否為空備注SIDNUMBERNO郵件編號(hào)IDVARCHAR2(100)NOID序列MAILFROMVARCHAR2(100)NO收件人MAILTOVARCHAR2(100)NO發(fā)件人SUBJECTVARCHAR2(200)NO標(biāo)題CONTENTCLOBYes內(nèi)容TIMEVARCHAR2(30)NO時(shí)間STATEVARC
35、HAR2(2)Yes狀態(tài)說明:State字段標(biāo)記郵件是否被刪除;當(dāng)State設(shè)置為0時(shí),表示收件箱的郵件已被刪除。表3-3用戶發(fā)送的郵件username+MAILTO字段名數(shù)據(jù)類型能否為空備注SIDNUMBERNO郵件編號(hào)IDVARCHAR2(100)NOID序列MAILFROMVARCHAR2(100)NO收件人MAILTOVARCHAR2(100)NO發(fā)件人SUBJECTVARCHAR2(200)NO標(biāo)題CONTENTCLOBYes內(nèi)容TIMEVARCHAR2(30)NO時(shí)間STATEVARCHAR2(2)Yes狀態(tài)說明:刪除該表中的郵件時(shí)是直接采用delete刪除。表3-4郵箱的信息表u
36、sername+MAILBOX字段名數(shù)據(jù)類型能否為空備注IDNUMBERYESIDEMAILVARCHAR(50)YESEmail地址PASSWORDVARCHAR(50)YESEmail密碼說明:用戶添加、刪除、更新郵箱時(shí),就是對(duì)該表進(jìn)行add,delete,update操作。第4章 局部系統(tǒng)模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 注冊(cè)登錄模塊 注冊(cè)任何使用該郵件效勞平臺(tái)的用戶,必須先注冊(cè),方可登錄。其操作的流程圖如圖4-1所示。 用戶輸入用戶名是否是合法的用戶名用戶輸入密碼兩次輸入的密碼是否一致將用戶名和密碼存入數(shù)據(jù)庫(kù)并建表是否成功注冊(cè)成功圖4-1 用戶注冊(cè)流程圖開始結(jié)束否是否是否是注冊(cè)時(shí),系統(tǒng)在后臺(tái)的操作是
37、,先創(chuàng)立一個(gè)用戶u,并根據(jù)用戶輸入的合法用戶名設(shè)置u的用戶名,設(shè)置u的密碼(經(jīng)過DES加密了的密碼),然后往數(shù)據(jù)庫(kù)users中添加用戶u,如果添加成功,那么根據(jù)u的用戶名創(chuàng)立三個(gè)表,這三個(gè)表的命名機(jī)制在第三章中的.2.數(shù)據(jù)庫(kù)信息表已給出。如果三個(gè)表創(chuàng)立成功,那么系統(tǒng)輸出“恭喜您!注冊(cè)成功并進(jìn)入登錄界面;否那么輸出“用戶名已被用!,并返回注冊(cè)頁(yè)面。數(shù)據(jù)庫(kù)的操作是:將新注冊(cè)的用戶保存到數(shù)據(jù)庫(kù)users中insert into users(username,password) values(?,?);根據(jù)用戶名創(chuàng)立用于保存郵箱的數(shù)據(jù)表create table + username+ mailbox(
38、id number not null, email varchar2(50) not null, password varchar2(50) not null);根據(jù)用戶名創(chuàng)立用于保存郵件的數(shù)據(jù)表create table + username+ MAIL(SID NUMBER not null, ID VARCHAR2(100) not null, MAILFROM VARCHAR2(100) not null, MAILTO VARCHAR2(100) not null, SUBJECT VARCHAR2(200) not null, CONTENT VARCHAR2(4000),TIME
39、VARCHAR2(30) not null, STATE VARCHAR2(2);根據(jù)用戶名創(chuàng)立用于保存已發(fā)送的郵件的數(shù)據(jù)表create table + currentUser+ MAILTO(SID NUMBER not null, ID VARCHAR2(100) not null, MAILFROM VARCHAR2(100) not null, MAILTO VARCHAR2(100) not null, SUBJECT VARCHAR2(200) not null, CONTENT VARCHAR2(4000),TIME VARCHAR2(30) not null, STATE VA
40、RCHAR2(2); 登錄已經(jīng)注冊(cè)的用戶可以登錄郵件效勞代理平臺(tái)。登錄操作過程如圖4-2所示。系統(tǒng)在后臺(tái)進(jìn)行的主要處理為:由request對(duì)象獲取用戶名和密碼String username=request.getParameter(username);String password=DES.encrypt(request.getParameter(password);根據(jù)用戶名username,在數(shù)據(jù)庫(kù)中查找用戶名為username的用戶并獲取用戶的密碼,并進(jìn)行密碼核對(duì)UserDAOJdbc udj=new UserDAOJdbc();User u=udj.getUser(username);
41、執(zhí)行的數(shù)據(jù)庫(kù)操作是:select * from users where username=?;用戶輸入用戶名和密碼根據(jù)用戶名從數(shù)據(jù)庫(kù)中讀取密碼兩個(gè)密碼進(jìn)行比擬是否相同登錄成功圖4-2 用戶登錄流程圖是否開始結(jié)束 郵件管理模塊郵件管理模塊就是對(duì)收件箱和已發(fā)郵件進(jìn)行查看或刪除郵件的操作。 郵件的查看郵件的查看就是為了方便用戶清楚收件箱和已發(fā)郵件中的郵件信息。用戶點(diǎn)擊【收件箱】或【已發(fā)郵件】后,可以閱讀郵件。這時(shí),系統(tǒng)將郵件的收件人、郵件主題、收件人以及郵件日期信息以列表形式顯示出來,每十封郵件組成一頁(yè),設(shè)置序列號(hào)為奇數(shù)的郵件背景色為灰色。在該郵件列表中選中某封郵件并單擊【查看】按鈕后,就可以看到當(dāng)
42、前郵件的詳細(xì)信息,包含發(fā)件人,收件人,主題和內(nèi)容等。查看郵件的具體實(shí)現(xiàn)是:判斷用戶是否已登錄,要求用戶先登錄郵件代理平臺(tái);由request獲取所點(diǎn)擊郵件對(duì)應(yīng)的id;根據(jù)所獲id跳轉(zhuǎn)到顯示id郵件的頁(yè)面,顯示郵件具體信息。主要執(zhí)行的數(shù)據(jù)庫(kù)操作是:select * from + currentUser + mail where id=+ id+;select * from + currentUser + mailto where id=+ id+;實(shí)現(xiàn)的主要代碼如下:String id=;if(!currentUser.equals()mail.MailMessage msg=new mail.M
43、ailMessage();if(request.getParameter(id)!=null)id=request.getParameter(id).toString();if(id.charAt(0)!=)response.sendRedirect(mailToDisplay.jsp?id=+id);elsemsg=new MessageDAOJdbc().getMessage(currentUser,id); 郵件的存儲(chǔ)郵件的存儲(chǔ)分為收件箱中的郵件存儲(chǔ)和已發(fā)郵件的存儲(chǔ)。收件箱中的郵件存儲(chǔ)由于收件箱中的郵件是來自于用戶已經(jīng)設(shè)置好的郵箱,而這是通過利用JavaMail編寫的郵件接收程序來收的。
44、這郵件接收程序并不是與我們一般所想象的那樣,當(dāng)接收到郵件時(shí),即將郵件存入數(shù)據(jù)庫(kù),而是當(dāng)接收到一封郵件時(shí),接收程序?qū)⒁环忄]件封裝成一個(gè)JMS的對(duì)象型消息,并將消息發(fā)送到效勞器配置好的消息隊(duì)列中去。此時(shí),EJB容器將通過消息驅(qū)動(dòng)Bean來處理消息,即解析收到的消息,并進(jìn)行相應(yīng)的處理。在這個(gè)處理當(dāng)中,就將原來收到的郵件存入了數(shù)據(jù)庫(kù),這是異步的消息處理機(jī)制。系統(tǒng)采用這種處理方式,大大地增加了系統(tǒng)的吞吐量。具體實(shí)現(xiàn)步驟如下:當(dāng)郵件接收程序接收到郵件時(shí),將郵件封裝成一個(gè)本地的郵件對(duì)象MailMessage。通過JNDI查找JMS隊(duì)列的連接工廠和消息的目的地,得到一個(gè)連接目的地。通過連接創(chuàng)立一個(gè)會(huì)話,并通過
45、會(huì)話創(chuàng)立一個(gè)消息生產(chǎn)者和一個(gè)對(duì)象型的消息。將本地的郵件對(duì)象放入對(duì)象型的消息中。消息生產(chǎn)者將對(duì)象型的消息發(fā)送到消息隊(duì)列中。消息驅(qū)動(dòng)Bean處理消息。核心代碼是:InitialContext ctx;QueueConnection conn = null;ObjectMessage omsg = null;javax.jms.Session s = null;MessageProducer p = null;ctx = new InitialContext();/上下文QueueConnectionFactory factory = (QueueConnectionFactory) ctx.loo
46、kup(jms/QueueConnectionFactory);/查找隊(duì)列連接工廠conn = factory.createQueueConnection();/通過連接工廠得到一個(gè)連接s = conn.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);/創(chuàng)立一個(gè)會(huì)話Destination des = (Destination) ctx.lookup(jms/mailQueue);/通過上下文得到發(fā)送的目的地p = s.createProducer(des);/根據(jù)會(huì)話和目的地創(chuàng)立發(fā)送消息的生產(chǎn)者omsg = s.createObjectMe
47、ssage();/根據(jù)會(huì)話創(chuàng)立消息對(duì)象JMSMessage jmsg = new JMSMessage();/創(chuàng)立一個(gè)對(duì)象性的消息jmsg.setUsername(path + u.getCurrentUser();/設(shè)置用戶名jmsg.setMsg(msg);/設(shè)置消息omsg.setObject(jmsg);/將產(chǎn)生的消息內(nèi)容放到Object類型的消息中p.send(omsg);/發(fā)送消息s.close();/關(guān)閉會(huì)話conn.close();/關(guān)閉連接已發(fā)郵件的存儲(chǔ)已發(fā)郵件的存儲(chǔ)處理與收件箱中的郵件存儲(chǔ)處理是完全不同的。已發(fā)郵件的存儲(chǔ)是在郵件發(fā)送之前就處理了的,是直接存入數(shù)據(jù)庫(kù),執(zhí)行的數(shù)
48、據(jù)庫(kù)操作是:“insert into + currentUser+mailto(sid,id,mailfrom,mailto,subject,content,time,state) values( + currentUser+ _seq.nextval,?,?,?,?,?,?,1);4.2.3 郵件的刪除在郵件管理中刪除一些無關(guān)緊要的郵件對(duì)用戶來說非常重要。郵件的刪除分為對(duì)收件箱中郵件的刪除和已發(fā)郵件的刪除。對(duì)收件箱的郵件的刪除,并沒有真正把它從數(shù)據(jù)庫(kù)中刪除,只是將它的狀態(tài)設(shè)置為0,即不活潑狀態(tài),這主要是為了預(yù)防系統(tǒng)屢次從郵箱效勞器上面接收并保存用戶要?jiǎng)h除的郵件。對(duì)已發(fā)郵件的刪除,那么是徹底的
49、將郵件從數(shù)據(jù)庫(kù)中刪除,以釋放更多的存儲(chǔ)空間。當(dāng)用戶選擇某郵件并點(diǎn)擊【刪除】按鈕時(shí),系統(tǒng)將彈出【您真的要?jiǎng)h除嗎?】提示框,只有用戶點(diǎn)擊【確認(rèn)】后才能刪除郵件,這是為了防止用戶的失誤所帶來的嚴(yán)重后果。刪除收件箱的郵件時(shí)執(zhí)行的操作是:update + currentUser+ mail set state=0 where id= + id+;而刪除已發(fā)郵件的操作是:delete from + currentUser+ mailto where id= + id+; 本章小結(jié)本章主要是講解郵件效勞平臺(tái)在后臺(tái)的數(shù)據(jù)庫(kù)操作。用戶注冊(cè)時(shí),使用insert將新用戶插入到數(shù)據(jù)表users中,并用create創(chuàng)立
50、與注冊(cè)用戶名相關(guān)的三個(gè)數(shù)據(jù)表;用戶登錄時(shí),select提取數(shù)據(jù)庫(kù)信息,并進(jìn)行信息核對(duì);用戶查看郵件時(shí),用到了select選擇指定郵件的操作;用戶存儲(chǔ)時(shí)用到了Insert操作,將郵件保存到數(shù)據(jù)庫(kù);郵件的刪除分為兩種情況,當(dāng)刪除收件箱的郵件時(shí),將要?jiǎng)h除郵件的狀態(tài)設(shè)置為0就好,進(jìn)行update操作,當(dāng)刪除已發(fā)郵件時(shí),直接執(zhí)行delete操作。第5章 郵件收發(fā)模塊設(shè)計(jì)與實(shí)現(xiàn)5.1 郵件的結(jié)構(gòu)一封標(biāo)準(zhǔn)的電子郵件主要由郵件頭和郵件體兩大局部組成。它們之間以一個(gè)空白行進(jìn)行分隔。當(dāng)郵件體被分為多個(gè)段時(shí),每個(gè)段又包含段頭和段體兩局部。這兩局部之間也以空行分隔。郵件頭包括發(fā)件人、收件人、主題、日期、郵件內(nèi)容的類型
51、等重要信息。郵件頭的結(jié)構(gòu)較為復(fù)雜,通常由多個(gè)頭字段和字段內(nèi)容組成,如from、to、date、subject。郵件體,即為我們所說的郵件內(nèi)容。郵件的結(jié)構(gòu)組成如圖5-1所示。圖5-1 郵件組成結(jié)構(gòu)5.2 郵件的發(fā)送SMTPSimple Mail Transfer Protocol即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)那么,由它來控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于TCP/IP協(xié)議族,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。通過SMTP協(xié)議所指定的效勞器,我們就可以把Email寄到收信人的效勞器上了,整個(gè)過程只要幾分鐘。SMTP效勞器那么是遵循SMTP協(xié)議的發(fā)送
52、郵件效勞器,用來發(fā)送或中轉(zhuǎn)你發(fā)出的電子郵件。.1 SMTP協(xié)議獲取郵箱地址的組成形式是:登錄名主機(jī)名.域名。根據(jù)郵箱地址的主機(jī)名.域名得到smtp協(xié)議的主機(jī)字符串,其對(duì)應(yīng)關(guān)系如表5-1所示。表5-1 smtp協(xié)議對(duì)應(yīng)表trSmtp協(xié)議的主機(jī)字符串EGSmtp.gmail :465YSmtp.mail.yahoo :465其他“smtp.+str5.2.2 郵件發(fā)送的詳細(xì)過程郵件的發(fā)送即是信息的封裝,然后經(jīng)過網(wǎng)絡(luò)發(fā)送的過程。其信息的封裝與信息的解析(圖5-2所示)剛好是互逆的。封裝消息的具體實(shí)現(xiàn)是:mm.setId(String.valueOf(new java.util.Date().hash
53、Code();/設(shè)置idmm.setMailfrom(from);/設(shè)置發(fā)件人mm.setMailto(to);/設(shè)置收件人mm.setSubject(subject);/設(shè)置主題mm.setContent(content);/設(shè)置內(nèi)容mm.setTime(new java.util.Date().toLocaleString();/設(shè)置時(shí)間消息封裝之后就可以發(fā)送郵件。郵件發(fā)送的具體步驟是:New一個(gè)Properties對(duì)象,設(shè)置和屬性;同過Session的靜態(tài)方法,獲取一個(gè)Session實(shí)例;根據(jù)Session創(chuàng)立一個(gè)MimeMessage實(shí)例message;設(shè)置message對(duì)象屬性;創(chuàng)立
54、MimeBodyPart實(shí)例和Mulipart(MimeMulpart)實(shí)例;設(shè)置BodyPart郵件文本內(nèi)容;將MimeBodyPart實(shí)例添加到Mulipart實(shí)例中;使用Transport發(fā)送郵件。實(shí)現(xiàn)的具體代碼是:Properties props = new Properties();props.put(mail.smtp.host, host);props.put(mail.smtp.auth, true);Session s=Session.getInstance(props);s.setDebug(true);MimeMessage message = new MimeMessa
55、ge(s);message.setFrom(new InternetAddress(from);message.addRecipient(Message.RecipientType.TO, new InternetAddress(to);message.setSubject(subject);Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();contentPart.setText(content);multipart.addBodyPart(contentPart);messa
56、ge.setContent(multipart);message.saveChanges();Transport transport = s.getTransport(smtp);trytransport.connect(host, username,password);transport.sendMessage(message, message.getAllRecipients();transport.close();catch(Exception e)out.println(有可能您的郵箱不支持SMTP和POP3協(xié)議,郵件發(fā)送失??! );5.3 郵件的接收POP3(Post Office
57、Protocol 3)即郵局協(xié)議的第3個(gè)版本,它規(guī)定怎樣將個(gè)人計(jì)算機(jī)連接到Internet的郵件效勞器和下載電子郵件的電子協(xié)議。它是因特網(wǎng)電子郵件的第一個(gè)離線協(xié)議標(biāo)準(zhǔn),POP3允許用戶從效勞器上把郵件存儲(chǔ)到本地主機(jī)即自己的計(jì)算機(jī)上,同時(shí)刪除保存在郵件效勞器上的郵件,而POP3效勞器那么是遵循POP3協(xié)議的接收郵件效勞器,用來接收電子郵件的。5.3.1 POP3協(xié)議獲取與SMTP協(xié)議獲取相似,由用戶郵箱地址的主機(jī)名.域名得到POP3協(xié)議的主機(jī)字符串,其對(duì)應(yīng)關(guān)系如表5-2所示。表5-2 pop3對(duì)應(yīng)協(xié)議表POP3協(xié)議的主機(jī)字符串sohu popeyou Pop3YPop.mail.yahoo :9
58、95其他的str“Pop.+str5.3.2 郵件接收的詳細(xì)過程郵件的接收即是從郵件效勞器上獲取郵件并對(duì)郵件的進(jìn)行解析,然后保存到收件箱的過程。其郵件的解析過程如圖5-2所示。圖5-2 郵件解析解析的步驟:通過郵件接收程序得到一封郵件;用JavaMail包中提供的方法來解析郵件,包括郵件ID、發(fā)件人、收件人、主題和時(shí)間;通過getContent()方法來得到郵件的內(nèi)容,這是一個(gè)遞歸的過程,直到得到郵件的文本內(nèi)容為止。郵件message解析的實(shí)現(xiàn)的核心代碼是:public void getMailContent(Part part) throws Exception String content
59、type = part.getContentType();int nameindex = contenttype.indexOf(name);boolean conname = false;if (nameindex != -1)conname = true;if (part.isMimeType(text/html) & !conname) bodytext.append(String) part.getContent(); else if (part.isMimeType(text/plain) & !conname) bodytext.append(String) part.getCon
60、tent(); else if (part.isMimeType(multipart/*) Multipart multipart = (Multipart) part.getContent();int counts = multipart.getCount();for (int i = 0; i counts; i+) getHtmlContent(multipart.getBodyPart(i); public void getHtmlContent(Part part) throws Exception String contenttype = part.getContentType()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60670-24:2024 EXV EN Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 24: Particular requirements for encl
- 2025-2030年中國(guó)鎂錳電池市場(chǎng)規(guī)模分析及發(fā)展建議研究報(bào)告
- 2025-2030年中國(guó)辣椒制品行業(yè)運(yùn)行動(dòng)態(tài)與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)蒿甲醚行業(yè)市場(chǎng)現(xiàn)狀調(diào)研與前景規(guī)模預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)自動(dòng)高壓蒸汽滅菌器市場(chǎng)發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)育發(fā)水市場(chǎng)發(fā)展?fàn)顩r及投資規(guī)劃研究報(bào)告
- 2025安全員-C證考試題庫(kù)
- 2025-2030年中國(guó)糯玉米汁飲料市場(chǎng)發(fā)展預(yù)測(cè)及前景調(diào)研分析報(bào)告
- 2025-2030年中國(guó)粉針類頭孢制劑行業(yè)需求分析與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)移動(dòng)電源車產(chǎn)業(yè)運(yùn)行動(dòng)態(tài)及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年云南省昆明國(guó)家高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)招聘合同聘用制專業(yè)技術(shù)人員47人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 1.1青春的邀約 教學(xué)課件 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)(統(tǒng)編版2024)
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2024年01月廣州期貨交易所2024年招考筆試歷年參考題庫(kù)附帶答案詳解
- 中小學(xué)教師家訪記錄表內(nèi)容(18張)8
- 《冠心病》課件(完整版)
- 2024年聊城職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 精品資料(2021-2022年收藏)垃圾焚燒發(fā)電廠監(jiān)理規(guī)劃
- 聲屏障工程施工組織設(shè)計(jì)方案
- 五年級(jí)美術(shù)下冊(cè)全冊(cè)教材分析
- 第五章:毒物泄漏及擴(kuò)散模型-第四次
評(píng)論
0/150
提交評(píng)論