版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、EL表達式簡介EL 全名為Expression Language。EL主要作用:獲取數(shù)據(jù):EL表達式主要用于替換JSP頁面中的腳本表達式,以從各種類型的web域 中檢索java對象、獲取數(shù)據(jù)。(某個web域 中的對象,訪問javabean的屬性、訪問list集合、訪問map集合、訪問數(shù)組)執(zhí)行運算:利用EL表達式可以在JSP頁面中執(zhí)行一些基本的關(guān)系運算、邏輯運算和算術(shù)運算,以在JSP頁面中完成一些簡單的邏輯運算。$user=null獲取web開發(fā)常用對象EL 表達式定義了一些隱式對象,利用這些隱式對象,web開發(fā)人員可以很輕松獲得對web常用對象的引用,從而獲得這些對象中的數(shù)據(jù)。調(diào)用Java方
2、法EL表達式允許用戶開發(fā)自定義EL函數(shù),以在JSP頁面中通過EL表達式調(diào)用Java類的方法。獲取數(shù)據(jù)(1)使用EL表達式獲取數(shù)據(jù)語法:“$標(biāo)識符”EL表達式語句在執(zhí)行時,會調(diào)用pageContext.findAttribute方法,用標(biāo)識符為關(guān)鍵字,分別從page、request、session、application四個域中查找相應(yīng)的對象,找到則返回相應(yīng)對象,找不到則返回” (注意,不是null,而是空字符串)。 示例:$userEL表達式也可以很輕松獲取JavaBean的屬性,或獲取數(shù)組、Collection、Map類型集合的數(shù)據(jù),例如:$user.address.city$user.li
3、st0:訪問有序集合某個位置的元素$map.key : 獲得map集合中指定key的值結(jié)合JSTL的foreach標(biāo)簽,使用EL表達式也可以很輕松迭代各種類型的數(shù)組或集合,示例:迭代數(shù)組迭代collection類型集合迭代map類型集合獲得web開發(fā)常用對象測試各個隱式對象注意事項測試headerValues時,如果頭里面有“-” ,例Accept-Encoding,則要headerValues“Accept-Encoding”測試cookie時,例$cookie.key取的是cookie對象,如訪問cookie的名稱和值,須$或$cookie.key.value
4、使用EL調(diào)用Java方法EL表達式語法允許開發(fā)人員開發(fā)自定義函數(shù),以調(diào)用Java類的方法。示例:$prefix:method(params)在EL表達式中調(diào)用的只能是Java類的靜態(tài)方法。這個Java類的靜態(tài)方法需要在TLD文件中描述,才可以被EL表達式調(diào)用。EL自定義函數(shù)用于擴展EL表達式的功能,可以讓EL表達式完成普通Java程序代碼所能完成的功能。EL Function開發(fā)步驟一般來說, EL自定義函數(shù)開發(fā)與應(yīng)用包括以下三個步驟:編寫一個Java類的靜態(tài)方法編寫標(biāo)簽庫描述符(tld)文件,在tld文件中描述自定義函數(shù)。在JSP頁面中導(dǎo)入和使用自定義函數(shù)示例:小寫轉(zhuǎn)大寫開發(fā)EL Funct
5、ion注意事項編寫完標(biāo)簽庫描述文件后,需要將它放置到<web應(yīng)用>WEB-INF目錄中或WEB-INF目錄下的除了classes和lib目錄之外的任意子目錄中。 TLD文件中的<uri> 元素用指定該TLD文件的URI,在JSP文件中需要通過這個URI來引入該標(biāo)簽庫描述文件。<function>元素用于描述一個EL自定義函數(shù),其中:<name>子元素用于指定EL自定義函數(shù)的名稱。<function-class>子元素用于指定完整的Java類名,<function-signature>子元素用于指定Java類中的靜態(tài)方法的簽
6、名,方法簽名必須指明方法的返回值類型及各個參數(shù)的類型,各個參數(shù)之間用逗號分隔。EL注意事項EL表達式是JSP 2.0規(guī)范中的一門技術(shù) 。因此,若想正確解析EL表達式,需使用支持Servlet2.4/JSP2.0技術(shù)的WEB服務(wù)器。注意:有些Tomcat服務(wù)器如不能使用EL表達式(1)升級成tomcat6(2)在JSP中加入<% page isELIgnored="false" %>STL中的常用EL函數(shù)由于在JSP頁面中顯示數(shù)據(jù)時,經(jīng)常需要對顯示的字符串進行處理,SUN公司針對于一些常見處理定義了一套EL函數(shù)庫供開發(fā)者使用。這些EL函數(shù)在JSTL開發(fā)包中進行描述
7、,因此在JSP頁面中使用SUN公司的EL函數(shù)庫,需要導(dǎo)入JSTL開發(fā)包,并在頁面中導(dǎo)入EL函數(shù)庫,如下所示:在頁面中使用JSTL定義的EL函數(shù):<%taglib uri=" prefix="fn"%>fn:toLowerCase fn:toLowerCase函數(shù)將一個字符串中包含的所有字符轉(zhuǎn)換為小寫形式,并返回轉(zhuǎn)換后的字符串,它接收一個字符串類型的參數(shù),例如fn:toLowerCase("Www.IT315.org") 的返回值為字符串“”fn:toLowerCase("")的返回值為空
8、字符串fn:toUpperCase函數(shù)將一個字符串中包含的所有字符轉(zhuǎn)換為大寫形式,并返回轉(zhuǎn)換后的字符串,它接收一個字符串類型的參數(shù)。例如:fn:toUpperCase("Www.IT315.org") 的返回值為字符串“WWW.IT315.ORG”fn:toUpperCase("")的返回值為空字符串fn:trim fn:trim函數(shù)刪除一個字符串的首尾的空格,并返回刪除空格后的結(jié)果字符串,它接收一個字符串類型的參數(shù)。需要注意的是,fn:trim函數(shù)不能刪除字符串中間位置的空格。例如,fn:trim(" "
9、) 的返回值為字符串“www.it 315.org”。fn:length fn:length函數(shù)返回一個集合或數(shù)組大小,或返回一個字符串中包含的字符的個數(shù),返回值為int類型。fn:length函數(shù)接收一個參數(shù),這個參數(shù)可以是<c:forEach>標(biāo)簽的items屬性支持的任何類型,包括任意類型的數(shù)組、java.util.Collection、java.util.Iterator、java.util.Enumeration、java.util.Map等類的實例對象和字符串。如果fn:length函數(shù)的參數(shù)為null或者是元素個數(shù)為0的集合或數(shù)組對象,則函數(shù)返回0;如果參數(shù)是空字符串
10、,則函數(shù)返回0。 fn:split fn:split函數(shù)以指定字符串作為分隔符,將一個字符串分割成字符串?dāng)?shù)組并返回這個字符串?dāng)?shù)組。fn:split函數(shù)接收兩個字符串類型的參數(shù),第一個參數(shù)表示要分割的字符串,第二個參數(shù)表示作為分隔符的字符串。例如,fn:split("", ".")1的返回值為字符串“it315”。fn:join fn:join函數(shù)以一個字符串作為分隔符,將一個字符串?dāng)?shù)組中的所有元素合并為一個字符串并返回合并后的結(jié)果字符串。fn:join函數(shù)接收兩個參數(shù),第一個參數(shù)是要操作的字符串?dāng)?shù)組,第二個參數(shù)是作為分隔符的字符
11、串。如果fn:join函數(shù)的第二個參數(shù)是空字符串,則fn:join函數(shù)的返回值直接將元素連接起來。例如:假設(shè)stringArray是保存在Web域中的一個屬性,它表示一個值為"www","it315","org"的字符串?dāng)?shù)組,則fn:join(stringArray, “.")返回字符串“”fn:join(fn:split("www,it315,org", ","), ".") 的返回值為字符串“”fn:index
12、Of fn:indexOf函數(shù)返回指定字符串在一個字符串中第一次出現(xiàn)的索引值,返回值為int類型。fn:indexOf函數(shù)接收兩個字符串類型的參數(shù),如果第一個參數(shù)字符串中包含第二個參數(shù)字符串,那么,不管第二個參數(shù)字符串在第一個參數(shù)字符串中出現(xiàn)幾次,fn:indexOf函數(shù)總是返回第一次出現(xiàn)的索引值;如果第一個參數(shù)中不包含第二個參數(shù),則fn:indexOf函數(shù)返回-1。如果第二個參數(shù)為空字符串,則fn:indexOf函數(shù)總是返回0。例如:fn:indexOf("","t3") 的返回值為5fn:contains fn:contai
13、ns函數(shù)檢測一個字符串中是否包含指定的字符串,返回值為布爾類型。fn:contains函數(shù)在比較兩個字符串是否相等時是大小寫敏感的。fn:contains函數(shù)接收兩個字符串類型的參數(shù),如果第一個參數(shù)字符串中包含第二個參數(shù)字符串,則fn:contains函數(shù)返回true,否則返回false。如果第二個參數(shù)的值為空字符串,則fn:contains函數(shù)總是返回true。實際上,fn:contains(string, substring)等價于fn:indexOf(string, substring) != -1。忽略大小的EL函數(shù):fn:containsIgnoreCase fn:startsWit
14、h fn:startsWith函數(shù)用于檢測一個字符串是否是以指定字符串開始的,返回值為布爾類型。fn:startsWith函數(shù)接收兩個字符串類型的參數(shù),如果第一個參數(shù)字符串以第二個參數(shù)字符串開始,則函數(shù)返回true,否則函數(shù)返回false。如果第二個參數(shù)為空字符串,則fn:startsWith函數(shù)總是返回true。例如:fn:startsWith("","it315")的返回值為false與之對應(yīng)的EL函數(shù):fn:endsWith fn:replace fn:replace函數(shù)將一個字符串中包含的指定子字符串替換為其它的指定字符
15、串,并返回替換后的結(jié)果字符串。fn:replace方法接收三個字符串類型的參數(shù),第一個參數(shù)表示要操作的源字符串,第二個參數(shù)表示源字符串中要被替換的子字符串,第三個參數(shù)表示要被替換成的字符串。例如:fn:replace("www it315 org", " ", ".")的返回值為字符串“”fn:substring fn:substring函數(shù)用于截取一個字符串的子字符串并返回截取到的子字符串。fn:substring函數(shù)接收三個參數(shù),第一個參數(shù)是用于指定要操作的源字符串,第二個參數(shù)是用于指定截取子字符串開始的
16、索引值,第三個參數(shù)是用于指定截取子字符串結(jié)束的索引值,第二個參數(shù)和第三個參數(shù)都是int類型,其值都從0開始。例如:fn:substring("", 4, 9) 的返回值為字符串“it315”fn:substringAfterfn:substringAfter函數(shù)用于截取并返回一個字符串中的指定子字符串第一次出現(xiàn)之后的子字符串。fn:substringAfter函數(shù)接收兩個字符串類型的參數(shù),第一個參數(shù)表示要操作的源字符串,第二個參數(shù)表示指定的子字符串,例如:fn:substringAfter(“”, “.”)的返回值為字符串
17、“”。與之對應(yīng)的EL函數(shù)為:fn:substringBefore JavaBean與JspJavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:這個Java類必須具有一個無參的構(gòu)造函數(shù)屬性必須私有化。私有化的屬性必須通過public類型的方法暴露給其它程序,并且方法的命名也必須遵守一定的命名規(guī)范。雖然Sun公司在定義JavaBean規(guī)范時,允許Java開發(fā)人員把JavaBean設(shè)計得可以像Swing組件一樣功能強大,但在實際的J2EE開發(fā)中,通常只使用到以上JavaBean最基本的特性。JavaBean在J2EE開發(fā)中,通常用于封裝數(shù)據(jù),對于遵循以上寫法的Jav
18、aBean組件,其它程序可以通過反射技術(shù)實例化JavaBean對象,并且通過反射那些遵守命名規(guī)范的方法,從而獲知JavaBean的屬性,進而調(diào)用其屬性保存數(shù)據(jù)JavaBean的屬性JavaBean的屬性可以是任意類型,并且一個JavaBean可以有多個屬性。每個屬性通常都需要具有相應(yīng)的setter、 getter方法,setter方法稱為屬性修改器,getter方法稱為屬性訪問器。屬性修改器必須以小寫的set前綴開始,后跟屬性名,且屬性名的第一個字母要改為大寫,例如,name屬性的修改器名稱為setName,password屬性的修改器名稱為setPassword。 屬性訪問器通常以小寫的ge
19、t前綴開始,后跟屬性名,且屬性名的第一個字母也要改為大寫,例如,name屬性的訪問器名稱為getName,password屬性的訪問器名稱為getPassword。 一個JavaBean的某個屬性也可以只有set方法或get方法,這樣的屬性通常也稱之為只寫、只讀屬性。在JSP中使用JavaBeanJSP技術(shù)提供了三個關(guān)于JavaBean組件的動作元素,即JSP標(biāo)簽,它們分別為:<jsp:useBean>標(biāo)簽:用于在JSP頁面中查找或?qū)嵗粋€JavaBean組件。<jsp:setProperty>標(biāo)簽:用于在JSP頁面中設(shè)置一個JavaBean組件的屬性。<jsp
20、:getProperty>標(biāo)簽:用于在JSP頁面中獲取一個JavaBean組件的屬性。 <jsp:useBean>標(biāo)簽<jsp:useBean>標(biāo)簽用于在指定的域范圍內(nèi)查找指定名稱的JavaBean對象:如果存在則直接返回該JavaBean對象的引用。如果不存在則實例化一個新的JavaBean對象并將它以指定的名稱存儲到指定的域范圍中。 常用語法:<jsp:useBean id="beanName" class="package.class" scope="page|request|session|appli
21、cation"/>id屬性用于指定JavaBean實例對象的引用名稱和其存儲在域范圍中的名稱。class屬性用于指定JavaBean的完整類名(即必須帶有包名)。scope屬性用于指定JavaBean實例對象所存儲的域范圍,其取值只能是page、request、session和application等四個值中的一個,其默認值是page。<jsp:useBean>執(zhí)行原理<jsp:useBean id="currentDate" class="java.util.Date"/>翻譯成的Servlet源碼:java.u
22、til.Date currentDate = null;synchronized (_jspx_page_context) currentDate = (java.util.Date) _jspx_page_context.getAttribute("currentDate", PageContext.PAGE_SCOPE);if (currentDate = null)currentDate = new java.util.Date();_jspx_page_context.setAttribute("currentDate",currentDate,
23、 PageContext.PAGE_SCOPE);帶標(biāo)簽體的<jsp:useBean>標(biāo)簽語法:<jsp:useBean .> Body </jsp:useBean> 功能:Body部分的內(nèi)容只在<jsp:useBean>標(biāo)簽創(chuàng)建JavaBean的實例對象時才執(zhí)行。<jsp:setProperty>標(biāo)簽 <jsp:setProperty>標(biāo)簽用于設(shè)置和訪問JavaBean對象的屬性。 語法格式:<jsp:setProperty name="beanName" property=
24、"propertyName" value="string | <%= expression %>" |property="propertyName" param="parameterName" | property= "*" />name屬性用于指定JavaBean對象的名稱。 property屬性用于指定JavaBean實例對象的屬性名。value屬性用于指定JavaBean對象的某個屬性的值,value的值可以是字符串,也可以是表達式。為字符串時,該值會自動轉(zhuǎn)化為JavaB
25、ean屬性相應(yīng)的類型,如果value的值是一個表達式,那么該表達式的計算結(jié)果必須與所要設(shè)置的JavaBean屬性的類型一致。 param屬性用于將JavaBean實例對象的某個屬性值設(shè)置為一個請求參數(shù)值,該屬性值同樣會自動轉(zhuǎn)換成要設(shè)置的JavaBean屬性的類型。 <jsp:getProperty>標(biāo)簽<jsp:getProperty>標(biāo)簽用于讀取JavaBean對象的屬性,也就是調(diào)用JavaBean對象的getter方法,然后將讀取的屬性值轉(zhuǎn)換成字符串后插入進輸出的響應(yīng)正文中。語法:<jsp:getProperty name="beanInstance
26、Name" property="PropertyName" />name屬性用于指定JavaBean實例對象的名稱,其值應(yīng)與<jsp:useBean>標(biāo)簽的id屬性值相同。 property屬性用于指定JavaBean實例對象的屬性名。如果一個JavaBean實例對象的某個屬性的值為null,那么,使用<jsp:getProperty>標(biāo)簽輸出該屬性的結(jié)果將是一個內(nèi)容為“null”的字符串。JSP開發(fā)模式SUN公司推出JSP技術(shù)后,同時也推薦了兩種web應(yīng)用程序的開發(fā)模式,一種是JSP+JavaBean模式,一種是Servlet+JS
27、P+JavaBean模式。JSP+JavaBean模式適合開發(fā)業(yè)務(wù)邏輯不太復(fù)雜的web應(yīng)用程序,這種模式下,JavaBean用于封裝業(yè)務(wù)數(shù)據(jù),JSP即負責(zé)處理用戶請求,又顯示數(shù)據(jù)。Servlet+JSP+JavaBean(MVC)模式適合開發(fā)復(fù)雜的web應(yīng)用,在這種模式下,servlet負責(zé)處理用戶請求,jsp負責(zé)數(shù)據(jù)顯示,javabean負責(zé)封裝數(shù)據(jù)。 Servlet+JSP、JavaBean模式程序各個模塊之間層次清晰,web開發(fā)推薦采用此種模式。EL表達式和JSTL標(biāo)簽快速入門EL表達式用于獲取數(shù)據(jù),在JSP頁面中可使用$標(biāo)識符的形式,通知JSP引擎調(diào)用pageContext.findA
28、ttribute()方法,以標(biāo)識符為關(guān)鍵字從各個域?qū)ο笾蝎@取對象。如果域?qū)ο笾胁淮嬖跇?biāo)識符所對應(yīng)的對象,則返回結(jié)果為”(注意,不是null)。示例:使用表達式獲取request、session、applection域中的數(shù)據(jù)。EL表達式中也可以使用$customerBean.address的形式來訪問JavaBean對象的屬性。示例:使用表達式獲取Bean屬性。結(jié)合JSTL標(biāo)簽,EL表達式也可輕松獲取各種集合中的元素。示例:使用表達式獲取List、Map集合中的元素。EL表達式也可使用類如$1=1的形式進行簡單的邏輯判斷。Java郵件開發(fā)介紹為什么要學(xué)習(xí)javamail開發(fā)現(xiàn)在很多Web應(yīng)用在
29、開發(fā)時都需要集成郵件發(fā)送功能,例如:給新注冊的用戶自動發(fā)送一封包含其注冊信息的歡迎Email。給過生日的注冊會員自動發(fā)送一封表示祝賀的Email。將網(wǎng)站的最新活動信息通過Email發(fā)送給所有的注冊會員。等等這些功能的實現(xiàn)都需要軟件開發(fā)人員在開發(fā)WEB應(yīng)用中編寫相應(yīng)的郵件處理程序。學(xué)習(xí)javamail主要包括兩部分:生成郵件和發(fā)送接收郵件。效果演示:可以編寫程序代碼生成一封帶內(nèi)嵌圖片的郵件可以編寫程序生成一封即帶附件又帶圖片的復(fù)雜郵件可以編寫java郵件發(fā)送程序發(fā)送郵件實現(xiàn)類似sina、sohu的web郵件發(fā)送程序郵件開發(fā)過程中的一些常見問題中文名的郵件附件的亂碼問題Tomcat中Javamai
30、l支持與沖突問題如何實現(xiàn)郵件群發(fā)郵件開發(fā)涉及到的一些基本概念郵件服務(wù)器和電子郵箱郵件傳輸協(xié)議電子郵件的發(fā)送和接收過程郵件服務(wù)器和電子郵箱郵件服務(wù)器要在Internet上提供電子郵件功能,必須有專門的電子郵件服務(wù)器。例如現(xiàn)在Internet很多提供郵件服務(wù)的廠商:sina、sohu、163等等他們都有自己的郵件服務(wù)器。這些服務(wù)器類似于現(xiàn)實生活中的郵局,它主要負責(zé)接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。電子郵箱:電子郵箱(Email地址)的獲得需要在郵件服務(wù)器上進行申請,確切地說,電子郵箱其實就是用戶在郵件服務(wù)器上申請的一個賬戶。用戶在郵件服務(wù)器上申請了一個賬號后,郵件服務(wù)器
31、就會為這個賬號分配一定的空間,用戶從而可以使用這個賬號以及空間,發(fā)送電子郵件和保存別人發(fā)送過來的電子郵件。郵件傳輸協(xié)議和郵件服務(wù)器類型SMTP協(xié)議(畫圖演示)用戶連上郵件服務(wù)器后,要想給它發(fā)送一封電子郵件,需要遵循一定的通信規(guī)則,SMTP協(xié)議就是用于定義這種通訊規(guī)則的。因而,通常我們也把處理用戶smtp請求(郵件發(fā)送請求)的郵件服務(wù)器稱為SMTP服務(wù)器。(25)POP3協(xié)議同樣,用戶若想從郵件服務(wù)器管理的電子郵箱中接收一封電子郵件的話,他連上郵件服務(wù)器后,也需要遵循一定的通訊格式,POP3協(xié)議用于定義這種通訊格式。因而,通常我們也把處理用戶pop3請求(郵件接收請求)的郵件服務(wù)器稱之為POP3
32、服務(wù)器。(110)手工演示電子郵件的發(fā)送準(zhǔn)備實驗環(huán)境提前在sohu和sina上注冊一個免費賬號獲取smtp和pop3服務(wù)器的名稱Sina或sohu會在幫助中心里提示管理當(dāng)前注冊賬號的郵件服務(wù)器的主機名。編寫base64編碼程序?qū)τ脩裘兔艽a進行編碼手工使用SMTP協(xié)議發(fā)送郵件編寫Socket程序發(fā)送電子郵件如何配置outlook收發(fā)郵件郵件服務(wù)器的配置SMTP協(xié)議ehlo 主機名auth login /經(jīng)過base64編碼后的用戶名和密碼mail from:<oiva>rcpt to:<oiva>data .號代表郵件內(nèi)容的結(jié)束quitpop3協(xié)議user<SP&
33、gt;username<CRLF>pass<SP>password<CRLF>stat<CRLF>返回郵箱的統(tǒng)計信息list<SP>郵件編號<CRLF>返回某一封郵件的統(tǒng)計信息retr<SP>郵件編號<CRLF>最重要的一個命令quit<CRLF>使用POP3協(xié)議手工接收郵件創(chuàng)建郵件-RFC822文檔RFC822文檔規(guī)定了如何編寫一封簡單郵件郵件頭和郵件體,兩者使用空行分隔郵件頭from字段to字段subject字段cc、bcc字段郵件體郵件內(nèi)容利用RFC822文檔漏洞發(fā)送假冒郵件(16
34、3.263不會成功,sohu、sina可以)創(chuàng)建郵件-MIME協(xié)議MIME協(xié)議是對RFC822文檔的升級和補充,它描述了如何生成一封復(fù)雜郵件。通常我們把MIME協(xié)議描述的郵件稱之為MIME郵件,MIME協(xié)議描述的數(shù)據(jù)稱之為MIME消息對于一封復(fù)雜郵件,如果包含了多個不同的數(shù)據(jù),MIME協(xié)議規(guī)定了要使用分割線對多段數(shù)據(jù)進行分隔,并使用Content-Type頭字段對數(shù)據(jù)的類型、以及多個數(shù)據(jù)之間的關(guān)系進行描述。(查看outlook郵件源文件)MIME協(xié)議常用頭字段Content-type:字段數(shù)據(jù)類型以“主類型/子類型”的形式出現(xiàn),主類型有text、image、audio、video、applic
35、ation、message等,分別表示文本、圖片、音頻、視頻、應(yīng)用程序、組合結(jié)構(gòu)、消息等。每個主類型下面都有多個子類型,例如text主類型包含plain、html、xml、css等子類型。數(shù)據(jù)的關(guān)系multipart/mixed、multipart/relatedmultipart/alternativeMIME協(xié)議常用頭字段Content-Disposition頭字段Content-Disposition頭字段用于指定郵件閱讀處理程序處理數(shù)據(jù)內(nèi)容的方式,有inline和attachment兩種標(biāo)準(zhǔn)方式,inline表示直接處理,而attachment表示當(dāng)做附件處理。如果將Content-D
36、isposition設(shè)置為attachment,在其后還可以指定filename屬性,如下所示:Content-Disposition: attachment;filename=“1.jpg”,前面的MIME頭字段表示MIME消息體的內(nèi)容為郵件附件,附件名為“1.jpg”Content-ID頭字段Content-ID頭字段用于為“multipart/related”組合消息中的內(nèi)嵌資源指定一個唯一標(biāo)示號,在HTML格式的正文中可以使用這個唯一標(biāo)識號來引用該內(nèi)嵌資源。例如,假設(shè)將一個表示內(nèi)嵌圖片的MIME消息的Content-ID頭字段設(shè)置為:Content-ID:it315logo_gif,那
37、么,在HTML正文中就需要使用如下HTML語句來引用該圖片資源:<img src=“cid:it315logo_gif”>。注意,在引用Content-ID頭字段標(biāo)識的內(nèi)嵌資源時,要在資源的唯一標(biāo)識號前面加上“cid:”,以說明要采用唯一標(biāo)識號對資源進行引用。使用JavaMail API創(chuàng)建郵件查看API類圖創(chuàng)建簡單郵件創(chuàng)建包含內(nèi)嵌圖片的郵件創(chuàng)建包含附件的郵件包含內(nèi)嵌圖片和附件的復(fù)雜郵件中文名的郵件附件的亂碼問題其它應(yīng)用郵件發(fā)送程序集成到WEB應(yīng)用中編寫類似sina的web郵件發(fā)送程序MX與A記錄(配置郵件服務(wù)器相關(guān)的信息)郵件群發(fā)程序為什么要學(xué)習(xí)郵件開發(fā)許多辦公自動化項目(OA)
38、中都要附帶發(fā)送郵件的功能.在許多網(wǎng)站項目中也都需要附帶發(fā)送郵件的功能,即要求軟件開發(fā)人員在WEB應(yīng)用中編寫相應(yīng)的郵件處理程序。 給新注冊的用戶自動發(fā)送一封包含其注冊信息的歡迎E-Mail 給過生日的注冊會員自動發(fā)送一封表示祝賀的E-Mail 將網(wǎng)站的最新活動信息通過E-Mail發(fā)送給所有的注冊會員 如何學(xué)習(xí)郵件開發(fā)學(xué)習(xí)郵件開發(fā)包括兩大方面:發(fā)送與接收郵件創(chuàng)建與解析郵件內(nèi)容郵件服務(wù)器 電子郵箱 郵件客戶端軟件 郵件傳輸協(xié)議電子郵件的傳輸過程 什么是Java Mail要自己寫程序發(fā)送和接收郵件,可以直接采用Socket編程連接上遠程的郵件服務(wù)器,然后按照郵件協(xié)議與郵件服務(wù)器進行交互,涉及較多細節(jié)。
39、另外,要想自己編程創(chuàng)建出復(fù)雜的MIME格式的郵件,是一件非常困難和麻煩的事情。JavaMail 是Sun公司為方便Java開發(fā)人員在應(yīng)用程序中實現(xiàn)郵件發(fā)送和接收功能而提供的一套標(biāo)準(zhǔn)開發(fā)包,它支持一些常用的郵件協(xié)議,如SMTP、POP3、IMAP。 開發(fā)人員使用JavaMail API編寫郵件處理軟件時,無須考慮郵件協(xié)議的底層實施細節(jié),只要調(diào)用JavaMail開發(fā)包中相應(yīng)的API類就可以了。 JavaMail 也提供了能夠創(chuàng)建出各種復(fù)雜MIME格式的郵件內(nèi)容的相關(guān)API。復(fù)雜郵件內(nèi)容的組織結(jié)構(gòu)RFC822郵件格式:MIME協(xié)議-MIME,英文全稱為“Multipurpose Internet M
40、ail Extensions”,即多用途互聯(lián)網(wǎng)郵件擴展,是目前互聯(lián)網(wǎng)電子郵件普遍遵循的郵件技術(shù)規(guī)范,在MIME出現(xiàn)之前,互聯(lián)網(wǎng)電子郵件主要遵循由RFC 822所制定的標(biāo)準(zhǔn),電子郵件一般只用來傳遞基本的ASCII碼文本信息,MIME在 RFC 822的基礎(chǔ)上對電子郵件規(guī)范做了大量的擴展,引入了新的格式規(guī)范和編碼方式,在MIME的支持下,圖像、聲音、動畫等二進制文件都可方便的通過電子郵件來進行傳遞,極大地豐富了電子郵件的功能。目前互聯(lián)網(wǎng)上使用的基本都是遵循MIME規(guī)范的電子郵件。 multipart類型基本格式 multipart/mixed類型 如果一封郵件中含有附件,那郵件的Content-Type域中必須定義multipart/mixed類型,郵件通過multipart/mixed類型中定義的boundary標(biāo)識將附件內(nèi)容同郵件其它內(nèi)容分成不同的段。基本格式如下: Content-Type
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋中介壟斷協(xié)議書范本模板
- 在校合伙創(chuàng)業(yè)協(xié)議書范文范本
- 清華大學(xué)會提前簽錄取協(xié)議書范文
- 法人變造協(xié)議書范文范本
- 二手機轉(zhuǎn)售協(xié)議書范文范本
- 離婚協(xié)議書范文分財產(chǎn)各一半的模板
- 2023年全國高考時間確定火熱出爐(6月7日開始)
- 2022科研倫理與學(xué)術(shù)規(guī)范期末
- 2023-2024學(xué)年云南省峨山一中高三第四次模擬考試數(shù)學(xué)試題
- 2023-2024學(xué)年西藏示范名校高三5月百校聯(lián)考數(shù)學(xué)試題
- 常州高級中學(xué)2022~2023學(xué)年高一上學(xué)期期中質(zhì)量檢查化學(xué)試題(原卷版)
- 互助保障培訓(xùn)課件
- 慢性乙型肝炎防治指南(2022年版)
- 一年級數(shù)學(xué)上冊第四單元測試卷(一)
- 消防產(chǎn)品檢查培訓(xùn)課件
- 一葷一素三聲部 合唱鋼琴伴奏譜
- 垃圾分類機器人
- 第9課 隋唐時期的經(jīng)濟、科技與文化
- 智能化幕墻安裝方案
- 露天礦山安全風(fēng)險分級評分表
- 藥物動力學(xué)課件:生物藥劑學(xué)與藥物動力學(xué)
評論
0/150
提交評論