《web應(yīng)用開(kāi)發(fā)》PPT課件.ppt
《《web應(yīng)用開(kāi)發(fā)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《web應(yīng)用開(kāi)發(fā)》PPT課件.ppt(86頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
Web請(qǐng)求處理 WEB應(yīng)用開(kāi)發(fā)精品課程 演示 一個(gè)學(xué)生信息管理系統(tǒng)的登錄頁(yè)面任務(wù) 用Servlet實(shí)現(xiàn)登錄驗(yàn)證 如果用戶 密碼正確 轉(zhuǎn)到主界面 否則再回到登錄頁(yè)面 案例任務(wù)引入 目標(biāo) 案例任務(wù)引入掌握如何編寫(xiě)配置Servlet理解Servlet的生命周期掌握利用servlet讀取表單數(shù)據(jù)Servlet跳轉(zhuǎn)掌握處理HTTP報(bào)頭信息方法掌握會(huì)話跟蹤的幾種方法ServletContext用法編寫(xiě)線程安全的servlet 背景知識(shí) 常用的Web服務(wù)器IISTomcat通常的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)CGI CommonGateWayInterface API常用的有 NSAPI ISAPI ASP ActiveServerPage PHP PersonalHomePage JSP JavaServerPage Servlet 什么是Servlet技術(shù) Servlet是在Java2平臺(tái)下取代CGI的一種技術(shù) 是一個(gè)接收請(qǐng)求 作出響應(yīng)的網(wǎng)絡(luò)服務(wù)Java類(lèi) Servlet是服務(wù)器小應(yīng)用程序 Servlet用來(lái)完成B S架構(gòu)下 客戶端請(qǐng)求的響應(yīng)處理 Servlet平臺(tái)獨(dú)立 性能優(yōu)良 能以線程方式運(yùn)行 ServletAPI為Servlet提供了統(tǒng)一的編程接口 示例HelloWorld java importjava io importjavax servlet importjavax servlet http publicclassHelloWorldextendsHttpServlet protectedvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsIOException ServletException response setContentType text html charset GBK PrintWriterout response getWriter out println Helloworld 繼承HttpServlet 重寫(xiě)HttpServlet中的doGet方法 在web xml中配置servlet HelloWorldchap03 HelloWorldHelloWorld hello 兩個(gè)名稱(chēng)必須相同 供瀏覽器使用的地址 Servlet類(lèi)的別名 包含路徑的真實(shí)的Servlet類(lèi)名 HttpServlet類(lèi)中的方法 javax servlet http HttpServlet publicvoiddoGet HttpServletRequestreq HttpServletResponseres doGet 方法處理客戶端作出的GET請(qǐng)求 publicvoiddoPost HttpServletRequestreq HttpServletResponseres doPost 方法處理客戶端作出的POST請(qǐng)求 publicvoidinit 初始化代碼可寫(xiě)在此方法中publicvoidservice 客戶端有請(qǐng)求過(guò)來(lái) 服務(wù)器會(huì)調(diào)用service 方法 service 方法根據(jù)請(qǐng)求來(lái)決定調(diào)用doGet還是doPost方法publicvoiddestory 刪除實(shí)例時(shí)會(huì)調(diào)用 釋放資源的代碼可寫(xiě)在此方法中 Servlet的生命周期 生命周期全過(guò)程 實(shí)例化 Servlet容器創(chuàng)建Servlet的實(shí)例 初始化 該容器調(diào)用init 方法 服務(wù) 如果請(qǐng)求Servlet 則容器調(diào)用service 方法 銷(xiāo)毀實(shí)例之前調(diào)用destroy 方法 銷(xiāo)毀 不可用 銷(xiāo)毀實(shí)例并標(biāo)記為垃圾收集 利用Servlet讀取html表單數(shù)據(jù) publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException StringpersonName personPwd personName request getParameter PersonName personPwd request getParameter PersonPwd String favor request getParameterValues Favor 讀取html表單中姓名和密碼框的值 讀取html表單中興趣數(shù)組 在Servlet中通過(guò)驗(yàn)證后經(jīng)常需要跳轉(zhuǎn)到其他頁(yè)面顯示1 SendRedirect方式response sendRedirect url 2 Forward方式request getRequestDispatcher url forward request response Servlet頁(yè)面跳轉(zhuǎn) 獲取Http請(qǐng)求頭 不同于表單數(shù)據(jù)請(qǐng)求頭直接由瀏覽器設(shè)置 在初始的Get Post請(qǐng)求行之后立即發(fā)送可以獲得客戶端 服務(wù)器端的一些配置信息獲取請(qǐng)求頭很簡(jiǎn)單 直接通過(guò)HttpServletRequest的getHeader方法 頭的名稱(chēng)不區(qū)分大小寫(xiě)常用的頭信息 getContentTypegetMethodgetRequestURIHost 獲取CGI變量 CGI變量 1 基于HTTP請(qǐng)求的行和頭 2 來(lái)自于套結(jié)字3 來(lái)自于服務(wù)器的安裝參數(shù)通過(guò)HttpServletRequest的相關(guān)方法來(lái)訪問(wèn)這些變量常用的CGI變量CONTENT TYPE getContentType PATH INFO getPathInfo REMOTE ADDR getRemoteAddr QUERY STRING getQueryString SERVER NAME getServerName SERVER PORT getServerPort Cookie 什么是Cookie 是一種可以讓服務(wù)器端的連接在客戶端保存和獲取信息的機(jī)制 為什么要用Cookie HTTP協(xié)議是一個(gè)無(wú)狀態(tài)的協(xié)議 每一次響應(yīng)和請(qǐng)求結(jié)束后服務(wù)器和客戶端的連接就結(jié)束了服務(wù)器可利用Cookie跟蹤瀏覽器客戶端 如何使用Cookie Cookie以 名 值 對(duì)的形式保存數(shù)據(jù)創(chuàng)建Cookie newCookie name value 可以使用Cookie的setXXX方法來(lái)設(shè)定一些相應(yīng)的值setName Stringname getName setValue Stringvalue getValue setMaxAge intage getMaxAge 利用HttpServletResponse的addCookie Cookie 方法將它設(shè)置到客戶端利用HttpServletRequest的getCookies 方法來(lái)讀取客戶端的所有Cookie 返回一個(gè)Cookie數(shù)組 會(huì)話跟蹤 一次會(huì)話是從客戶端發(fā)送請(qǐng)求開(kāi)始的 在server端 servlet引擎用javax servlet http HttpSession的一個(gè)實(shí)例 session 來(lái)記錄一次會(huì)話 會(huì)話的維持由servlet容器與客戶端瀏覽器協(xié)調(diào)進(jìn)行 通過(guò)cookie保存在客戶端URL重寫(xiě)將會(huì)話ID添加到URL結(jié)尾 以標(biāo)識(shí)該會(huì)話如hello jsp jsessionid 1234 HttpServletRequest中的會(huì)話管理方法 getRequestedSessionId 返回隨客戶端請(qǐng)求到來(lái)的會(huì)話ID 可能與當(dāng)前的會(huì)話ID相同 也可能不同 getSession booleanisNew 如果會(huì)話已經(jīng)存在 則返回一個(gè)HttpSession會(huì)話不存在 getSession true 新建一個(gè)HttpSession getSession false 返回null isRequestedSessionIdFromCookie 當(dāng)前的SessionID如果是從Cookie獲得 為true isRequestedSessionIdFromURL 當(dāng)前SessionID如果是由URL獲得 為true isRequestedSessionIdValid 如果客戶端的會(huì)話ID代表的是有效會(huì)話 則返回true 否則 比如 會(huì)話過(guò)期或根本不存在 返回false HttpSession中的常用方法 getAttributeNames getAttribute getCreateTime getId getMaxInactiveInterval invalidate isNew setAttribute setMaxInactivateInterval ServletContext接口 Servletcontext 存儲(chǔ)在Servletcontext中的信息 同一應(yīng)用中的servlet JSP JavaBean都可以訪問(wèn) 通過(guò)ServletConfig對(duì)象上的getServletContext 方法可獲得servlet上下文對(duì)象ServletContext接口常用方法 getRealPath setAttribute getAttribute removeAttribute getInitParameter getInitParameterNames 編寫(xiě)線程安全的servlet servlet是非線程安全的 多個(gè)客戶端共享同一個(gè)servlet實(shí)例對(duì)于全局變量的訪問(wèn)可能全帶來(lái)安全問(wèn)題 因此最好不要使用全局變量 如需使用 請(qǐng)使用同步Servlet2 4中廢棄SingleThreadModel接口 總結(jié) Servlet是運(yùn)行在服務(wù)器上的java類(lèi) 要運(yùn)行它需要先在web xml里進(jìn)行配置Servlet的生命周期 初如化 服務(wù) 銷(xiāo)毀 多個(gè)客戶端共享同一個(gè)Servlet實(shí)例會(huì)話跟蹤 cookie session URL重寫(xiě) ServletContext接口編寫(xiě)線程安全的servlet 企業(yè)邏輯實(shí)現(xiàn) WEB應(yīng)用開(kāi)發(fā)精品課程 案例導(dǎo)入 項(xiàng)目長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院?jiǎn)握袌?bào)名系統(tǒng)中 實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的JAVABEAN任務(wù)將對(duì)數(shù)據(jù)庫(kù)增 刪 改 查封裝成JavaBean 技術(shù)要點(diǎn) 關(guān)鍵字 1 JavaBean編寫(xiě)規(guī)范2 JSP或Servlet調(diào)用JavaBean3 JavaBean整合JDBC技術(shù) 目標(biāo) JavaBean基礎(chǔ)JavaBean作用范圍JSP和Servlet的交互MVC模式的用途JSP Servlet JavaBean實(shí)現(xiàn)MVC JavaBean JavaBean是可重用組件JavaBean是遵守某些嚴(yán)格協(xié)議的Java類(lèi)JavaBean由三部分組成 屬性全部私有 通過(guò)get set方法訪問(wèn)方法針對(duì)屬性有setXxx 和getXxx 方法 布爾屬性可把get換為is 方法必須是public的事件采用Swing中處理監(jiān)聽(tīng)器的方式 JSP中使用JavaBean jsp useBean標(biāo)準(zhǔn)動(dòng)作 將JavaBean嵌入JSP頁(yè)面設(shè)置和獲取JavaBean的屬性將用戶請(qǐng)求轉(zhuǎn)發(fā)給其他頁(yè)面將其他頁(yè)面的內(nèi)容嵌入當(dāng)前頁(yè)面標(biāo)準(zhǔn)動(dòng)作中的屬性區(qū)分大小寫(xiě)JSP中的標(biāo)準(zhǔn)動(dòng)作使用作為前綴 JSP中使用JavaBean jsp useBean基本用法 jsp useBean con jsp useBean各項(xiàng)參數(shù)含義 id 對(duì)象實(shí)例名稱(chēng)scope Bean作用的范圍 默認(rèn)為page 對(duì)整個(gè)jsp頁(yè)面有效class Bean類(lèi)名稱(chēng)beanName Bean的名稱(chēng)type Bean實(shí)例類(lèi)型 可以是本類(lèi) 或其父類(lèi) 或其實(shí)現(xiàn)的接口 默認(rèn)為本類(lèi) jsp useBean con Scope各項(xiàng)參數(shù)的意義 page 僅涵蓋使用JavaBean的頁(yè)面 PageBean jsp CounterBean java request 有效范圍僅限于使用JavaBean的請(qǐng)求 RequestBean jsp RequestBean2 jsp CounterBean java session 有效范圍在用戶整個(gè)連接過(guò)程中 整個(gè)會(huì)話階段均有效 SessionBean jsp Sessin2 jsp CounterBean jsp application 有效范圍涵蓋整個(gè)應(yīng)用程序 也就是對(duì)整個(gè)網(wǎng)站均有效 Application jsp Application2 jsp CounterBean jsp jsp useBean con jsp setProperty的格式 相當(dāng)于beanName setPropertyName value 方法調(diào)用 setXxx 方法 jsp getProperty的格式 相當(dāng)于beanName getPropertyName 方法調(diào)用 getXxx 方法 jsp useBean con 建立表單參數(shù)和Bean屬性之間的關(guān)聯(lián)通過(guò)param指定表單元素的名稱(chēng) 通過(guò)perperty指定對(duì)應(yīng)的Bean屬性名稱(chēng) 由此建立這兩個(gè)變量的關(guān)聯(lián) SaleEntry jsp SaleEntry java 用url傳遞參數(shù) 通過(guò) 來(lái)設(shè)置所有屬性和輸入?yún)?shù)之間的關(guān)聯(lián) SayHelloBean html SayHelloBean jsp HelloBean java 在建立Bean屬性和表單參數(shù)之間的對(duì)應(yīng)關(guān)系時(shí) 服務(wù)器會(huì)將對(duì)應(yīng)的參數(shù)自動(dòng)轉(zhuǎn)換成和屬性類(lèi)型匹配的數(shù)據(jù) 具體的轉(zhuǎn)換關(guān)系見(jiàn)下表 自動(dòng)轉(zhuǎn)換屬性的類(lèi)型 MVC設(shè)計(jì)模式 MVC設(shè)計(jì)模式 M Model JavaBean扮演V View JSP扮演C Controller Servlet扮演 總結(jié) JavaBean是遵守某些嚴(yán)格協(xié)議的Java類(lèi)標(biāo)準(zhǔn)動(dòng)作用于將JavaBean嵌入JSP頁(yè)面JavaBean作用范圍JSP和Servlet的交互JSP Servlet JavaBean實(shí)現(xiàn)MVC JSP扮演View Servlet扮演Controller JavaBean扮演Model 資源訪問(wèn)與權(quán)限控制 WEB應(yīng)用開(kāi)發(fā)精品課程 案例導(dǎo)入 項(xiàng)目資源訪問(wèn)權(quán)限過(guò)濾器的編寫(xiě)與配置任務(wù)1 對(duì)中文編碼進(jìn)行統(tǒng)一處理 2 根據(jù)登陸用戶的權(quán)限控制資源訪問(wèn) 技術(shù)要點(diǎn) 關(guān)鍵字 1 Filter的編寫(xiě)與配置2 實(shí)現(xiàn)資源訪問(wèn)權(quán)限的統(tǒng)一控制 目標(biāo) Filter基本概念和適用場(chǎng)合使用Filter的基本步驟定義和使用FilterListener基礎(chǔ) 過(guò)濾器簡(jiǎn)介 過(guò)濾器是向Web應(yīng)用程序的請(qǐng)求和響應(yīng)處理添加功能的Web服務(wù)組件過(guò)濾器的工作原理 Web資源 瀏覽器 Filter接口 Filter接口 Init doFilter destroy 創(chuàng)建一個(gè)類(lèi) 實(shí)現(xiàn)Filter接口 創(chuàng)建過(guò)濾器 packagemyfilter importjava io importjavax servlet importjavax servlet http publicclassFirstFilterimplementsFilter publicvoidinit FilterConfigconfig throwsServletException publicvoiddestroy publicvoiddoFilter ServletRequestrequest ServletResponseresponse FilterChainchain throwsIOException ServletException 寫(xiě)文件FileWriterfw newFileWriter filter txt PrintWriterpw newPrintWriter fw pw print FirstFilter pw close fw close 必須調(diào)用chain doFilter request response 過(guò)濾器鏈 FilterChain接口用于調(diào)用過(guò)濾器鏈中的一系列過(guò)濾器 瀏覽器 過(guò)濾器1 過(guò)濾器2 過(guò)濾器3 Web資源 過(guò)濾器鏈 web xml中注冊(cè)Filter firstFiltemyfilter FirstFilterfirstFilter secondFiltermyfilter SecondFiltersecondFilter Listener Listener ServletContextListener ServletContextAttributeListener HttpSessionListener 監(jiān)聽(tīng)ServletContext的變化 監(jiān)聽(tīng)ServletContext屬性的變化 監(jiān)聽(tīng)HttpSession添加 刪除 替換屬性 HttpSessionAttributeListener 監(jiān)聽(tīng)HttpSession對(duì)象銷(xiāo)毀或創(chuàng)建 ServletContextListener ServletContext創(chuàng)建時(shí)ServletContext關(guān)閉時(shí)都會(huì)通知ServletContextListener方法 servletContextInitialized ServletContextEventsce 當(dāng)ServletContext創(chuàng)建的時(shí)候 將會(huì)調(diào)用這個(gè)方法 servletContextDestroyed ServletContextEventsce 當(dāng)ServletContext銷(xiāo)毀的時(shí)候 例如關(guān)閉應(yīng)用服務(wù)器或者重新加載應(yīng)用 將會(huì)調(diào)用這個(gè)方法 ServletContextAttributeListener 當(dāng)往ServletContext添加 刪除或者替換一個(gè)屬性的時(shí)候 將會(huì)通知ServletContextAttributesListener方法 voidattributeAdded ServletContextAttributeEventscab 當(dāng)往ServletContext中加入一個(gè)屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 voidattributeRemoved ServletContextAttributeEventscab 當(dāng)從ServletContext中刪除一個(gè)屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 voidattributeReplaced ServletContextAttributeEventscab 當(dāng)改變ServletContext中的屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 HttpSessionListener 當(dāng)一個(gè)HttpSession剛被創(chuàng)建 created 或者失效 invalidated 的時(shí)候 將會(huì)通知HttpSessionListener方法 voidsessionCreated HttpSessionEventhse 當(dāng)一個(gè)HttpSession對(duì)象被創(chuàng)建時(shí) 將會(huì)調(diào)用這個(gè)方法 voidsessionDestroyed HttpSessionEventhse 當(dāng)一個(gè)HttpSession超時(shí)或者調(diào)用HttpSession的invalidate 方法讓它銷(xiāo)毀時(shí) 將會(huì)調(diào)用這個(gè)方法 HttpSessionAttributeListener HttpSession中添加 刪除或者替換一個(gè)屬性的時(shí)候 將會(huì)通知HttpSessionAttributesListener方法 voidattributeAdded HttpSessionBindingEvente 當(dāng)往會(huì)話中加入一個(gè)屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 attributeRemoved HttpSessionBindingEvente 當(dāng)從會(huì)話中刪除一個(gè)屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 attributeReplaced HttpSessionBindingEvente 當(dāng)改變會(huì)話中的屬性的時(shí)候 將會(huì)調(diào)用這個(gè)方法 示例 packagemylistener importjavax servlet importjavax servlet http publicclassOnlineUserimplementsHttpSessionListener ServletContextListener 在線人數(shù)privateintcount 0 ServletContextctx null 初始化ServletContextpublicvoidcontextInitialized ServletContextEvente ctx e getServletContext 示例 續(xù) 將ServletContext設(shè)置成nullpublicvoidcontextDestroyed ServletContextEvente ctx null 當(dāng)新創(chuàng)建一個(gè)HttpSession對(duì)象時(shí) 將當(dāng)前的在線人數(shù)加上1 并且保存到ServletContext application 中publicvoidsessionCreated HttpSessionEvente count ctx setAttribute OnlineUser newInteger count 當(dāng)一個(gè)HttpSession被銷(xiāo)毀時(shí) 過(guò)期或者調(diào)用了invalidate 方法 將當(dāng)前人數(shù)減去1 并且保存到ServletContext application 中publicvoidsessionDestroyed HttpSessionEvente count ctx setAttribute OnlineUser newInteger count web xml中配置Listener myListener FristListener 總結(jié) Filter接口定義和使用FilterFilterChainFilter在web xml中配置Listener的使用 綜合應(yīng)用 WEB應(yīng)用開(kāi)發(fā)精品課程 完整項(xiàng)目導(dǎo)入 項(xiàng)目1 學(xué)院招生信息管理系統(tǒng)2 移動(dòng)計(jì)費(fèi)賬戶管理系統(tǒng)任務(wù)學(xué)生分組任選一個(gè)項(xiàng)目完成 技術(shù)要點(diǎn) 關(guān)鍵字 1 使用MVC模式2 綜合運(yùn)用Html JS JSP Servlet JavaBean JDBC等技術(shù) 完整項(xiàng)目導(dǎo)入 其他完成項(xiàng)目過(guò)程中 涉及到網(wǎng)站計(jì)數(shù)器實(shí)現(xiàn) 發(fā)送Email功能 文件上傳 分頁(yè)顯示等技術(shù) 目標(biāo) 實(shí)現(xiàn)網(wǎng)站計(jì)數(shù)器配置SMTP服務(wù)器使用JavaMailAPI發(fā)送郵件掌握J(rèn)SP分頁(yè)技術(shù)掌握jspsmartupload實(shí)現(xiàn)文件上載掌握用于國(guó)際化的基本類(lèi)了解DAO模式 SimpleFactory Factory AbstractFactory模式掌握DAO Factory模式 網(wǎng)站計(jì)數(shù)器 方法一 記入application對(duì)象中方法二 將訪問(wèn)數(shù)寫(xiě)入到文件中特點(diǎn) 服務(wù)器重啟計(jì)數(shù)器不會(huì)歸零 JavaMail SMTP SMTP SimpleMailTransferProtocol郵件客戶機(jī)和郵件服務(wù)器之間通信的Internet標(biāo)準(zhǔn) SMTP也用于郵件服務(wù)器之間交換Email POP3 IMAP 郵件檢索協(xié)議POP3 PostOfficeProtocol 3POP3郵件客戶機(jī)連接到郵件服務(wù)器 并且代表用戶檢索消息 通常 使用POP3的企業(yè)希望用戶下載他們的郵件 然后從郵件服務(wù)器中刪除這些消息IMAP InternetMessageAccessProtocol 是指從郵件服務(wù)器上獲取E mail的信息或直接收取郵件的協(xié)議 和POP3相反 不希望用戶馬上刪除郵件 因?yàn)镮MAP并不把郵件存儲(chǔ)在客戶機(jī)上 所以使用IMAP的個(gè)人可以轉(zhuǎn)移到不同客戶機(jī)上操作 JavaMail JavaMail是J2EE標(biāo)準(zhǔn)的API 用于連接Email系統(tǒng) JavaMail定義了一組支持各種Email協(xié)議的即插即用結(jié)構(gòu) 支持的email協(xié)議包括POP3 SMTP等 WebLogic的JavaMail實(shí)現(xiàn)了SMTP SMTP 類(lèi)結(jié)構(gòu) Message Store Session Folder JavaMail類(lèi) Session類(lèi) Session類(lèi)定義全局和每個(gè)用戶的與郵件相關(guān)的屬性 這些屬性說(shuō)明了客戶機(jī)和服務(wù)器如何交流信息利用JNDI查找一個(gè)配置好的SessionSessionmailSession StringsessionJNDIName myMailSession try Contextctx newInitialContext mailSession Session ctx lookup sessionJNDIName Message類(lèi) 包括在JavaMail中的Message類(lèi)表示單個(gè)郵件信息 它的屬性包括類(lèi)型 地址信息和所定義的目錄結(jié)構(gòu)Messagemsg newMessage mailSession msg setSubject subject msg setRecipient Message RecipientType TO to add InternetAddressdest newInternetAddress abc msg setRecipient Message RecipientType CC dest msg setContent adfa text plain Message中的方法 Transport類(lèi) 每個(gè)郵件協(xié)議 例如POP3和IMAP 都包含自己實(shí)現(xiàn)的Transport接口 用于郵件的收發(fā)操作 對(duì)于WebLogic應(yīng)用程序 Transport有一個(gè)重要的方法 Messagemsg newMessage mySession Transport send msg InternetAddress類(lèi) 在發(fā)送和接收InternetEmail時(shí) JavaMail能使用戶根據(jù)Internet標(biāo)準(zhǔn)來(lái)說(shuō)明地址 可以用InternetAddress來(lái)創(chuàng)建一個(gè)Internet地址的實(shí)例 如 InternetAddressdest newInternetAddress hello 用此Internet地址構(gòu)造Message對(duì)象 msg setRecipient Message RecipientType TO dest 發(fā)送Text信件 建立一個(gè)session建立消息對(duì)象MimeMessage用Message的各種方法設(shè)置郵件從session新建一個(gè)Transport用Transport的sendMessage 方法發(fā)送郵件 try Propertiesprops newProperties SessionsendMailSession Session getInstance props null Transporttransport props put mail smtp host 172 16 0 2 MessagenewMessage newMimeMessage sendMailSession newMessage setFrom newInternetAddress request getParameter toText newMessage setRecipient Message RecipientType TO newInternetAddress request getParameter fromText newMessage setSubject request getParameter subject newMessage setText request getParameter content transport sendMailSession getTransport smtp transport send newMessage out println yourmailhasbeensent catch Exceptionex out println ex toString 發(fā)送html格式郵件 建立一個(gè)session建立消息對(duì)象MimeMessage用Message的各種方法設(shè)置郵件新建一個(gè)存放信件內(nèi)容的BodyPart對(duì)象給BodyPart對(duì)象設(shè)置內(nèi)容和格式 編碼方式新建一個(gè)MimeMultipart對(duì)象用來(lái)存放BodyPart對(duì)象將BodyPart加入到MimeMultipart對(duì)象中從session新建一個(gè)Transport用Transport的sendMessage 方法發(fā)送郵件 發(fā)送附件 補(bǔ)充 建立一個(gè)session建立消息對(duì)象MimeMessage用Message的各種方法設(shè)置郵件新建一個(gè)存放信件內(nèi)容的BodyPart對(duì)象給BodyPart對(duì)象設(shè)置內(nèi)容和格式 編碼方式新建一個(gè)MimeMultipart對(duì)象用來(lái)存放BodyPart對(duì)象新建一個(gè)DataHandler對(duì)象 并設(shè)置其內(nèi)容和格式 編碼方式給BodyPart對(duì)象設(shè)置內(nèi)容為DataHandler將BodyPart加入到MimeMultipart對(duì)象中從session新建一個(gè)Transport用Transport的sendMessage 方法發(fā)送郵件 三種設(shè)置附件的方式 將上載文件當(dāng)作附件發(fā)送 利用smartUpload上載附件將上載的文件當(dāng)作附件發(fā)送 文件上傳 下載 使用JSPSmartUpload免費(fèi)組件上載文件 下載文件 Form的設(shè)計(jì) 設(shè)置FORM的ENCTYPE屬性為 multipart form data 如 將method設(shè)置為POST提供一個(gè)File類(lèi)型的輸入框用于接收需要上載的文件 FielForm htm SmartUpload用法 在jsp頁(yè)面中得到一個(gè)SmartUpload實(shí)例 通過(guò)此SmartUpload實(shí)例的upload 方法來(lái)實(shí)現(xiàn)文件的上載利用SmartUpload的save方法將文件保存到指定的虛擬路徑或物理路徑下 SmartUpload的File類(lèi) SmartUpload的getFiles 方法可以返回一個(gè)com jspsmart upload File數(shù)組 通過(guò)遍歷這個(gè)數(shù)組可以得到上載的各個(gè)文件對(duì)象通過(guò)com jspsmart upload File 可以取得上載文件的一些特性 取出FORM中其他元素的值 如果在FORM中設(shè)置了ENCTYPE multipart form data 屬性 在jsp中 不能再使用request對(duì)象的getParameter 方法來(lái)取得對(duì)應(yīng)的表單元素的值可以通過(guò)SmartUpload的getRequest 方法來(lái)得到一個(gè)com jspsmart upload Request 然后通過(guò)這個(gè)Request對(duì)象來(lái)獲取表單元素的值 intcount 0 Stringfolder C tmp java io Filef newjava io File folder if f exists f mkdir myUpload initialize pageContext myUpload upload 得到Request對(duì)象com jspsmart upload RequestmyRequest myUpload getRequest for inti 0 i myUpload getFiles getCount i 得到上載的文件對(duì)象com jspsmart upload FilemyFile myUpload getFiles getFile i if myFile isMissing myFile saveAs folder myFile getFileName myUpload SAVE PHYSICAL count 計(jì)數(shù)器加上1 設(shè)定上載目錄 用for循環(huán)依次處理上載的各個(gè)文件 上載文件 如果上載成功保存文件 分頁(yè)顯示 基于緩存 一次性的將所有的記錄取出來(lái)放到session或者其他的緩存機(jī)制中 優(yōu)點(diǎn) 除了第一頁(yè)外 后續(xù)的頁(yè)面都能夠很快訪問(wèn)到需要的數(shù)據(jù) 缺點(diǎn) 1 第一頁(yè)顯示的時(shí)候可能很慢 2 因?yàn)閿?shù)據(jù)取出來(lái)以后都放在內(nèi)存中 對(duì)內(nèi)存的要求高基于查詢 數(shù)據(jù)庫(kù)中的數(shù)據(jù)根據(jù)需要取出 優(yōu)點(diǎn) 第一頁(yè)和后續(xù)的頁(yè)面訪問(wèn)的時(shí)間差不多 將數(shù)據(jù)庫(kù)訪問(wèn)分擔(dān)到各頁(yè)面了 缺點(diǎn) 每次都需要從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù) 造成頻繁的數(shù)據(jù)庫(kù)存取 Web應(yīng)用國(guó)際化 定義資源文件使用request的getLocale 方法獲得客戶端的Locale獲得對(duì)應(yīng)的資源文件 國(guó)際化示例hello jsp pageimport java io java util java text 獲得對(duì)應(yīng)的資源文件 獲得資源文件中的問(wèn)候語(yǔ) DAO模式和Factory模式 簡(jiǎn)單工廠方法UML 簡(jiǎn)單工廠模式UML 工廠方法UML 抽象工廠模式UML 總結(jié) 配置SMTP服務(wù)器發(fā)送文本格式email發(fā)送HTML格式email實(shí)現(xiàn)網(wǎng)站計(jì)數(shù)器基于緩存分頁(yè)特點(diǎn)基于查詢的分頁(yè)特點(diǎn)Oracle中使用rownum來(lái)實(shí)現(xiàn)獲得指定行數(shù)查詢數(shù)據(jù)jspsmartupload的介紹使用JSPSmartUpload實(shí)現(xiàn)文件上載 File類(lèi) Files類(lèi) Request類(lèi) SmartUpload類(lèi)以及相關(guān)的方法國(guó)際化的意義資源文件和ResoureceBundle類(lèi)DAO模式SimpleFactory Factory AbstractFactory模式DAO Factory模式- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- web應(yīng)用開(kāi)發(fā) web 應(yīng)用 開(kāi)發(fā) PPT 課件
鏈接地址:http://www.3dchina-expo.com/p-7178588.html