10第十章JSP相關(guān)技術(shù)及MVC模式_第1頁
10第十章JSP相關(guān)技術(shù)及MVC模式_第2頁
10第十章JSP相關(guān)技術(shù)及MVC模式_第3頁
10第十章JSP相關(guān)技術(shù)及MVC模式_第4頁
10第十章JSP相關(guān)技術(shù)及MVC模式_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Java網(wǎng)絡(luò)編程原理與JSPWeb核心開發(fā)技術(shù)

1第十章JSP相關(guān)技術(shù)及MVC模式10.1 JSP的文件操作

10.2

JSP的郵件發(fā)送技術(shù)10.3

Ajax技術(shù)10.4

MVC設(shè)計模式及應(yīng)用210.1 JSP的文件操作10.1.1JSP的目錄操作目錄操作相對應(yīng)的應(yīng)用類是File,所在類包是java.io。

方法功能File(Stringpathname)構(gòu)造函數(shù),根據(jù)路徑創(chuàng)建File類對象File(URLurl)構(gòu)造函數(shù),根據(jù)網(wǎng)絡(luò)地址創(chuàng)建File類對象isDirectory()判斷輸入的字符串是否是目錄isFile()判斷輸入的字符串是否是文件delete()刪除目錄或文件mkdir()創(chuàng)建目錄mkdirs()根據(jù)字符串創(chuàng)建所有不存在的目錄(如c:/demo/aa,如果這兩個目錄都不存在,則一并創(chuàng)建)getPath()獲取文件所在路徑的名字getName()獲取目錄或文件的名字exists()判斷目錄或文件是否存在310.1.2JSP的文本文件操作讀入和寫出文本文件的類是FileReader類和FileWriter類。方法功能FileReader(Filefile)構(gòu)造函數(shù),創(chuàng)建文件讀入類對象FileReader(Stringfilename)構(gòu)造函數(shù),根據(jù)參數(shù)字符串創(chuàng)建文件讀入類對象read()讀入一個字節(jié)getEncoding()取得讀入類的編碼機制ready()判斷文件讀入類是否到達文件末尾方法功能FilWriterer(Filefile)構(gòu)造函數(shù),創(chuàng)建文件寫出類對象FileWriter(Stringfilename)構(gòu)造函數(shù),根據(jù)參數(shù)字符串創(chuàng)建文件寫出類對象close()關(guān)閉文件寫出類,將內(nèi)容保存到文件中方法功能write(char[]cbuf,intoff,intlen)寫入字符數(shù)組,off定義寫開始位置,len定義長度write(Stringstrstr,intoff,intlen)寫入字符串,off定義寫開始位置,len定義長度write(intc)寫入一個字符getEncoding()取得寫出類的編碼機制410.1.3JSP的流文件操作讀入寫出流文件的類是FileInputStream類和FileOutputStream類,所在類包是java.io。

方法功能FileInputStream(Filefile)構(gòu)造函數(shù),根據(jù)File類對象創(chuàng)建流文件讀入類對象FileInputStream(Stringname)構(gòu)造函數(shù),根據(jù)字符串參數(shù)創(chuàng)建流文件讀入類對象available()返回流文件長度read()讀取一個字節(jié)數(shù)據(jù)read(byte[]b)讀取流文件的全部數(shù)據(jù),保存在字節(jié)數(shù)組中read(byte[]b,intoff,intlen)讀取流文件中指定范圍的數(shù)據(jù),保存在字節(jié)數(shù)組中skip(longn)跳過流文件中的長度為n的數(shù)據(jù)方法功能FilOutputStream(Filefile)構(gòu)造函數(shù),創(chuàng)建流文件寫出類對象FileOutputStream(Stringname)構(gòu)造函數(shù),根據(jù)字符串參數(shù)創(chuàng)建流文件寫出類對象close()關(guān)閉流文件寫出類,將內(nèi)容保存到文件中write(byte[]b)將字符數(shù)組的內(nèi)容寫入文件write(byte[]b,intoff,intlen)將指定范圍的數(shù)據(jù)寫入文件write(intb)寫入一個數(shù)據(jù)到文件510.1.4文件的上傳和下載jspSmartUpload組件的安裝與配置jspSmartUpload組件中的主要類

在jspSmartUpload組件中主要包含F(xiàn)ile、Files、Request和SmartUpload核心類。

File類方法功能saveAs()保存文件isMissing()判斷用戶是否選擇了文件。對應(yīng)<inputtype=“file”>標記getFileName()獲取文件的文件名getFilePathName()獲取文件的文件全名,包括文件的完整路徑getFileExt()獲取文件的擴展名,不包含“.”getSize()獲取文件大小,單位為字節(jié),返回值為int類型getBinaryData(intindex)獲取文件數(shù)據(jù)中index指定位置的一個字節(jié),返回值為byte類型610.1.4文件的上傳和下載jspSmartUpload組件中的主要類

Files類Request類方法功能getCount()獲取上傳文件的數(shù)目,返回值為int類型getSize()獲取上傳文件的總長度,單位為字節(jié),返回值為long類型getCollection()將所有File對象以Collection的形式返回getEnumberation()將所有File對象以Enumberation的形式返回方法功能getParameter(Stringname)獲取Form表單中由參數(shù)name指定的表單元素的值。當(dāng)該表單元素不存在時,返回nullgetParameterNames()獲取Form表單中除<inputtype=“file”>外的所有表單元素的名稱,返回值為枚舉類型(Enum)的對象getParameterValues(Stringname)獲取Form表單中多個具有相同名稱的表單元素的值,該名稱由參數(shù)name指定,返回值為字符串?dāng)?shù)組710.1.4文件的上傳和下載jspSmartUpload組件中的主要類

SmartUpload類方法功能setDeniedFilesList(StringdeniedFilesList)設(shè)置禁止上傳的文件,參數(shù)deniedFileList指定禁止上傳文件的擴展名,多個擴展名之間以“,”分隔setAllowedFilesList(StringallowedFilesList)設(shè)置允許上傳的文件,參數(shù)allowedFileList指定允許上傳文件的擴展名,多個擴展名之間以“,”分隔setMaxFileSize(longmaxFileSize)設(shè)置允許上傳文件的最大長度setTotalMaxFileSize(longTotalMaxFileSize)設(shè)置允許上傳文件的總長度getFiles()獲取全部上傳文件,以File對象形式返回getSize()獲取上傳文件的總長度getRequest()獲取com.jspsmart.upload.Request對象setContentDisposition

(StringcontentDisposition)文件下載使用的方法,用于將數(shù)據(jù)追加到MIME文件頭的CONTENT-DISPOSITION域,參數(shù)為要追加的數(shù)據(jù)downloadFile()實現(xiàn)文件下載810.2 JSP的郵件發(fā)送技術(shù)10.2.1JavaMailAPI簡介

是Sun開發(fā)的最新標準擴展API之一,給Java應(yīng)用程序開發(fā)者提供了獨立于平臺和協(xié)議的郵件/通信解決方案。封裝了按照各種郵件通信協(xié)議,如SMTP、POP3、IMAP和MIME,與郵件服務(wù)器通信的細節(jié),為Java應(yīng)用程序提供了編寫和收發(fā)電子郵件的公共接口。/products/javamail/downloads/index.html,可下載最新版本的JavaMail,下載后將其中的mail.jar文件添加到系統(tǒng)的CLASSPATH中。在安裝JavaMail之后,還需要安裝JAF(JavaBeansActivationFramework),因為這個框架是JavaMailAPI所需的,為JavaMail提供了基本的MIME類型支持。

96.2 JSP的郵件發(fā)送技術(shù)10.2.2JavaMailAPI結(jié)構(gòu)

javax.mail.Session類

Session類定義了基本的郵件會話,是JavaMailAPI的最高層入口類。從java.util.Properties對象中獲取配置信息,如郵件發(fā)送服務(wù)器的主機名或IP地址、接受郵件的協(xié)議、發(fā)送郵件的協(xié)議、用戶名、口令及整個應(yīng)用程序中共享的其他信息。通過使用Session類提供的getDefaultInstance()這個靜態(tài)工廠方法獲得一個默認的Session對象:Propertiesprops=newProperties();informationSessionsession=Session.getDefaultInstance(props,null);或者使用getInstance()這個靜態(tài)工廠方法獲得自定義的Session:Propertiesprops=newProperties();informationSessionsession=Session.getInstance(props,null);106.2 JSP的郵件發(fā)送技術(shù)10.2.2JavaMailAPI結(jié)構(gòu)

javax.mail.Authenticator類

創(chuàng)建會話時要使用Authenticator對象進行認證。代表一個可以為網(wǎng)絡(luò)連接獲取認證信息的對象。

創(chuàng)建Authenticator的子類,在會話對象創(chuàng)建時注冊Authenticator對象:publicclassPopupAuthenticatorextendsAuthenticator{Stringusername=null;//用戶名

Stringpassword=null;//用戶密碼

publicPopupAuthenticator(){}publicPopupAuthenticator(Stringname,Stringpwd){username=name;password=pwd;getPasswordAuthentication();}protectedPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(username,password);}

}

116.2 JSP的郵件發(fā)送技術(shù)10.2.2JavaMailAPI結(jié)構(gòu)

javax.mail.Message類

Message類代表電子郵件。

Message類提供了讀取和設(shè)置郵件內(nèi)容的方法。郵件主要包含內(nèi)容:地址信息,包括發(fā)件人地址、收件人地址列表、抄送地址列表和廣播地址列表;郵件標題;郵件發(fā)送和接收日期;郵件正文(包括純文本和附件)。Message是抽象類,使用ernet.MimeMessage子類。

javax.mail.Address類Address類代表郵件地址。Address類也是抽象類。所以使用ernet.InternetAddress子類,通過參數(shù)代表郵件地址的字符串,可以建立一個郵件地址:Addressaddress=newInternetAddress("president@");126.2 JSP的郵件發(fā)送技術(shù)10.2.2JavaMailAPI結(jié)構(gòu)

javax.mail.Transport類

根據(jù)指定的郵件發(fā)送協(xié)議(通常是SMTP),通過指定的郵件發(fā)送服務(wù)器來發(fā)送郵件。Transport類也是抽象類,通過靜態(tài)方法send(Message)負責(zé)發(fā)送郵件:Transport.send(message);發(fā)送郵件

javax.mail.Store類Store類代表接收郵件服務(wù)器上注冊用戶的存儲空間,通過Store類的getFolder()方法,可以訪問用戶的特定郵件夾。javax.mail.Folder類Folder類代表郵件夾,郵件都放在郵件夾中,F(xiàn)older類提供了管理郵件夾以及郵件的各種方法。

136.2 JSP的郵件發(fā)送技術(shù)10.2.3在JSP頁面中使用JavaMailAPI發(fā)送E-mail

例程10-7

處理發(fā)送郵件請求的步驟如下:

①使用Session.getInstanced()創(chuàng)建一個至郵件主服務(wù)器的會話。②使用newInternetAddress()創(chuàng)建發(fā)送者和接收者地址對象。③使用newMimeMessage(Sessionsession)創(chuàng)建一個消息體。④使用Message對象的setFrom()和setRecipient()方法指定收信人和發(fā)信人。⑤使用setSubject()指定郵件主題。⑥使用setContext()指定消息體和信息編碼類型。⑦使用Transport.send(message)來發(fā)送消息,完成郵件發(fā)送。10.2.4在JSP頁面中發(fā)送包含附件的E-mail

1410.3 Ajax技術(shù)10.3.1Ajax概述Ajax(AsynchronousJavaScriptandXML,異步的JavaScript和XML)是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),作為流行的Web開發(fā)技術(shù),它可以構(gòu)建更為動態(tài)和響應(yīng)更靈敏的Web應(yīng)用程序。1510.3 Ajax技術(shù)10.3.1Ajax概述Ajax(AsynchronousJavaScriptandXML,異步的JavaScript和XML)是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),作為流行的Web開發(fā)技術(shù),它可以構(gòu)建更為動態(tài)和響應(yīng)更靈敏的Web應(yīng)用程序。Ajax不是一種技術(shù)。實際上,它由幾種發(fā)展的技術(shù)以新的強大方式組合而成。Ajax包含如下:基于XHTML和CSS標準的表示。使用DOM(DocumentObjectModel)進行動態(tài)顯示和交互。使用XMLHttpRequest與服務(wù)器進行異步通信。使用JavaScript綁定。16技術(shù)名稱功能JavaScriptJavaScript是通用的腳本語言,嵌入在某種應(yīng)用之中。Web瀏覽器中嵌入的JavaScript解釋器允許通過程序與瀏覽器的很多內(nèi)建功能進行交互。Ajax應(yīng)用程序是使用JavaScript編寫的CSS(層疊樣式表)CSS為Web頁面元素提供了一種可重用的可視化樣式的定義方法。它提供了簡單而又強大的方法,以一致的方式定義和使用可視化樣式。在Ajax應(yīng)用中,用戶界面的樣式可以通過CSS獨立修改DOM(文檔對象模型)DOM以一組可以使用JavaScript操作的可編程對象展現(xiàn)出Web頁面的結(jié)構(gòu)。通過使用腳本修改DOM,Ajax應(yīng)用程序可以在運行時改變用戶界面,或者高效地重繪頁面中的某個部分XMLHttpRequest對象XMLHttpRequest對象允許Web程序員從Web服務(wù)器以后臺活動的方式獲取數(shù)據(jù)。數(shù)據(jù)格式通常是XML1710.3.2Ajax關(guān)鍵技術(shù)JavaScript腳本語言

CSS樣式文檔對象模型DOM

XMLHttpRequest

可擴展性標記語言XML

10.3.3Ajax框架DojoDWRAjaxTagsStrutsAjaxTagsAjax-JSFFramework10.3.4在JSP中應(yīng)用Ajax技術(shù)

1810.4 MVC設(shè)計模式及應(yīng)用10.4.1MVC設(shè)計模式

MVC組件View視圖

視圖是用戶看到并與之交互的界面。

Model模型

模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。

Control控制

控制器接受用戶的輸入并調(diào)用模型和視圖完成用戶的需求。192010.4MVC設(shè)計模式及應(yīng)用MVC的優(yōu)點低耦合性

高重用性和可適用性較低的生命周期成本快速的部署可維護性有利于軟件工程化管理常用的MVC框架

Struts:Apache最流行的MVC組件。

Struts2:Apache用Struts和WebWork組合出來的新產(chǎn)品。

WebWork:傳統(tǒng)MVC組件,后來組合成了Struts2,目前自身仍在發(fā)展。

SpringMVC:SpringFramework整合自己Spring的優(yōu)勢推出的MVC組件。

JSF:設(shè)計規(guī)范,Sun和Apache都有各自的實現(xiàn)。Tapestry:較徹底的MVC開發(fā)框架,豐富的組件資源,重用性很高。2110.4MVC設(shè)計模式及應(yīng)用10.4.2Struts框架結(jié)構(gòu)Struts體系結(jié)構(gòu)實現(xiàn)了Model-View-Controller設(shè)計模式的概念,將這些概念映射到Web應(yīng)用程序的組件和概念中。Model1:JSP+JavaBean

④瀏覽器JSPJavaBeanESDB②③應(yīng)用服務(wù)器①企業(yè)服務(wù)器ES/數(shù)據(jù)庫DB2210.4MVC設(shè)計模式及應(yīng)用10.4.2Struts框架結(jié)構(gòu)Model2:JSP+Servlet+JavaBean瀏覽器Servlet(Controller)JavaBean(Model)ESDB②③應(yīng)用服務(wù)器①企業(yè)服務(wù)器ES/數(shù)據(jù)庫DBJSP(View)④⑤2310.4MVC設(shè)計模式及應(yīng)用10.4.2Struts框架結(jié)構(gòu)Struts組件結(jié)構(gòu)2410.4MVC設(shè)計模式及應(yīng)用10.4.2Struts框架結(jié)構(gòu)Struts框架詳解 (1)控制器:用戶的請求會首先被提交到控制器,控制器并不直接對該請求進行服務(wù),而是調(diào)用相應(yīng)的模型處理請求,最后控制器將對該請求的處理結(jié)果返回指定的視圖顯示。

Struts控制器主要包括以下三個組件:

ActionServlet

RequestProcessor Action

2510.4MVC設(shè)計模式及應(yīng)用10.4.2Struts框架結(jié)構(gòu)Struts框架詳解 (2)視圖:使用JSP作為主要的視圖工具。 視圖是模型的表示。當(dāng)用戶通過視圖表單向Servlet發(fā)送數(shù)據(jù)時,使用ActionForm組件,其作用就是將用戶提交的數(shù)據(jù)包裝成一個Bean對象,除了基本的get()和set()方法外,還提供了另外兩種特殊的方法reset()和validate()用于對用戶提交的數(shù)據(jù)進行初始化和驗證工作。 (3)模型:采用其他模型組件來實現(xiàn)業(yè)務(wù)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論