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