使用SmartUpload實現(xiàn)文件上傳功能_第1頁
使用SmartUpload實現(xiàn)文件上傳功能_第2頁
使用SmartUpload實現(xiàn)文件上傳功能_第3頁
使用SmartUpload實現(xiàn)文件上傳功能_第4頁
使用SmartUpload實現(xiàn)文件上傳功能_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

JSP開發(fā)業(yè)務(wù)應(yīng)用大容量的數(shù)據(jù)顯示電話通訊錄較多數(shù)據(jù)信息以列表方式顯示大容量數(shù)據(jù)顯示特點以列表方式顯示數(shù)據(jù)的特點優(yōu)勢數(shù)據(jù)能夠按照指定格式顯示,布局清晰不受信息數(shù)量的限制不足當(dāng)數(shù)據(jù)量較多,頁面顯示不完全時,需要用戶拖動頁面才能瀏覽更多信息那有沒有另一種顯示方式,既能顯示多條信息,又不需要拖動頁面呢?采用分頁技術(shù)實現(xiàn)批量數(shù)據(jù)的頁面顯示生活中的分頁顯示分頁顯示在生活中隨處可見分頁顯示郵件列表分頁實現(xiàn)的思路分頁顯示的步驟確定每頁顯示的數(shù)據(jù)數(shù)量

計算顯示的頁數(shù)

編寫SQL語句

確定分頁頁數(shù)實現(xiàn)步驟獲取總記錄數(shù)根據(jù)每頁顯示記錄數(shù)與總記錄數(shù)計算總頁數(shù)publicintgetTotalPages(intcount,intpageSize){ inttotalpages=0; totalpages=(count%pageSize==0)?(count/pageSize):(count/pageSize+1); returntotalpages;}計算分頁頁數(shù)分頁SQL語句偽列-rownum由Oracle數(shù)據(jù)庫表對象自動創(chuàng)建表示每一行記錄的行號使用三層嵌套方式編寫SQL最內(nèi)層:查詢所有記錄中間層:通過rownum的限定查詢數(shù)量的上限最外層:通過rownum的限定查詢數(shù)量的下限Stringsql="select*from(selectrownumasr,t.*from("+"selectnews.*fromnewsorderbyncreatedatedesc)t"+"whererownum<=10)wherer>5"按時間排序后,顯示第6-10條新聞當(dāng)前頁的確認(rèn)獲取當(dāng)前頁獲取顯示頁的頁碼如果獲取的頁碼為NULL,則設(shè)置當(dāng)前頁為首頁如果獲取的頁碼不為NULL,則該頁碼即為當(dāng)前頁頁碼//獲取當(dāng)前頁StringcurrentPage=request.getParameter("pageIndex");if(currentPage==null){currentPage="1";}intpageIndex=Integer.parseInt(currentPage);讀取頁碼判斷頁碼將當(dāng)前頁碼賦值給變量進(jìn)行后續(xù)的傳遞分頁的設(shè)置分頁設(shè)置的實現(xiàn)根據(jù)已確認(rèn)的當(dāng)前頁,設(shè)置上頁和下頁根據(jù)總頁數(shù)設(shè)置首頁和末頁<ahref="news_list.jsp?pageIndex=1">首頁</a> <ahref="news_list.jsp?pageIndex=<%=pageIndex-1%>">上一頁</a><ahref="news_list.jsp?pageIndex=<%=pageIndex+1%>">下一頁</a><ahref="news_list.jsp?pageIndex=<%=totalpages%>">末頁</a>示例:讀取新聞列表分頁顯示首頁和末頁的控制已經(jīng)設(shè)置了首頁和末頁,為什么還要進(jìn)行控制?StringcurrentPage=request.getParameter("pageIndex");if(currentPage==null){currentPage="1";}intpageIndex=Integer.parseInt(currentPage);//對首頁與末頁進(jìn)行控制if(pageIndex<1){pageIndex=1;}elseif(pageIndex>totalpages){pageIndex=totalpages;}假設(shè)當(dāng)前頁為首頁,當(dāng)用戶點擊上頁鏈接時,傳遞的pageIndex參數(shù)為當(dāng)前頁減一,此時入部進(jìn)行控制將會導(dǎo)致錯誤的查詢。通過判斷pageIndex變量實現(xiàn)首末頁的控制指導(dǎo)——實現(xiàn)新聞列表分頁顯示2-1訓(xùn)練要點:SQL語句嵌套子查詢使用分層實現(xiàn)業(yè)務(wù)處理需求說明:實現(xiàn)新聞列表分頁顯示指導(dǎo)——實現(xiàn)新聞列表分頁讀取2-2實現(xiàn)思路:確定每頁顯示新聞數(shù)量編寫DAO類,聲明查詢方法確定接收參數(shù)在方法中編寫SQL嵌套子查詢編寫業(yè)務(wù)層實現(xiàn)調(diào)用DAO類中的查詢方法SmartUpload組件簡介SmartUpload組件專門用于實現(xiàn)文件上傳及下載的免費(fèi)組件SmartUpload組件特點使用簡單:編寫少量代碼,完成上傳下載功能能夠控制上傳內(nèi)容能夠控制上傳文件的大小、類型缺點:目前已停止更新服務(wù)SmartUpload組件應(yīng)用條件環(huán)境準(zhǔn)備使用SmartUpload組件需要在項目中引入jspsmartupload.jar文件需要設(shè)置表單的enctype屬性將jspsmartupload.jar添加到WEB-INF\lib目錄下<formenctype="multipart/form-data"method="post">設(shè)置了enctype屬性后,表單必須以post方式提交File類及方法方法名稱

說明saveAs(StringdestFilePathName)將文件保存,參數(shù)destFilePathName是保存的文件名isMissing()判斷用戶是否選擇了文件,即對應(yīng)表單項是否為空,返回值為boolean類型publicStringgetFiledName()獲取表單中當(dāng)前上傳文件所對應(yīng)的表單項的名稱publicStringgetFileName()獲取上傳文件的文件名稱,不包含路徑File類封裝了單個上傳文件所包含的所有信息

常用方法Files類及方法屬性名稱

說明publicintgetCount()取得文件上傳的數(shù)目publicFilegetFile(intindex)取得指定位置的File文件對象publiclonggetSize()取得上傳文件的總長度publicCollectiongetCollection()將所有上傳文件對象以Collection的形式返回Files類封裝了所有上傳文件的信息集合

常用方法SmartUpload類及方法屬性名稱

說明publicfinalvoidinitialize(PageContextpageContext)執(zhí)行上傳和下載的初始化工作,必須實現(xiàn)publicvoidupload()實現(xiàn)文件數(shù)據(jù)的上傳,在initialize方法后執(zhí)行publicintsave(StringpathName)將全部上傳文件保存到指定的目錄下,并返回保存的文件個數(shù)publicvoidsetAllowFilesList(StringExtList)指定允許上傳的文件擴(kuò)展名,接收一個擴(kuò)展名列表,以逗號分隔publicvoidsetDeniedFilesList(StringfileList)指定了禁止上傳的文件擴(kuò)展名列表,每個擴(kuò)展名之間以逗號分隔publicvoidsetMaxFileSize(longfilesize)設(shè)定每個文件允許上傳的最大長度publicvoidsetTotalMaxFileSIze(longtotalfilesize)設(shè)定允許上傳文件的總長度SmartUpload類用于實現(xiàn)文件上傳和下載的操作

常用方法文件上傳的實現(xiàn)編寫上傳文件處理頁uploadManage.jsp<%@pageimport="com.jspsmart.upload.*"%><% smartUploadsu=newSmartUpload(); su.initialize(pageContext);try{ su.upload();}exception(Exceptionex){ ex.printStackTrace();}//獲取單個上傳文件com.jspsmart.upload.filefile=su.getFiles().getFile(0);//設(shè)置文件在服務(wù)器的保存位置Stringfilepath="upload\\";filepath+=file.getFileName();//文件另存為file.saveAs(filepath,SmartUpload.SAVE_VIRTUAL);導(dǎo)入包創(chuàng)建smartupload對象上傳初始化上傳文件創(chuàng)建文件讀取對象指定文件保存路徑保存文件示例:實現(xiàn)文件上傳指導(dǎo)——實現(xiàn)文件上傳訓(xùn)練要點:掌握SmartUpload組件相關(guān)類的方法使用需求說明:制作一個簡單的文件上傳頁面,用戶可以選擇本地文件,將其上傳到服務(wù)器進(jìn)行保存。實現(xiàn)思路添加jspsmartupload.jar。在JSP文件中使用page指令導(dǎo)入SmartUpload類調(diào)用SmartUpload組件相關(guān)類的方法獲取文件信息并實現(xiàn)保存控制上傳文件的類型使用SmartUpload組件可以對上傳文件的類型進(jìn)行限制setAllowedFilesList():允許上傳的文件類型setDeniedFilesList():禁止上傳的文件類型SmartUploadsu=newSmartUpload();//初始化SmartUpload對象su.initialize(pageContext);try{//定義允許上傳文件類型

su.setAllowedFilesList("gif,jpg,doc");//不允許上傳文件類型

su.setDeniedFilesList("jsp,asp,php,aspx,html,htm,exe,bat");//執(zhí)行上傳su.upload();}catch(Exceptione)多個文件類型之間以逗號進(jìn)行分隔示例:控制文件上傳的類型控制上傳文件的大小使用SmartUpload組件可以對上傳文件的大小進(jìn)行限制setMaxFileSize():允許上傳的單個文件大小setTotalMaxFileSize():允許上傳的文件總?cè)萘俊?/定義允許上傳文件類型su.setAllowedFilesList("gif,jpg,doc");//不允許上傳文件類型su.setDeniedFilesList("jsp,asp,php,aspx,html,htm,exe,bat");//單個文件最大限制

su.setMaxFileSize(20000);

//所有上傳文件的總?cè)萘肯拗?/p>

su.setTotalMaxFileSize(500000);…限制可上傳文件的容量示例:控制文件上傳的大小獲取表單數(shù)據(jù)屬性名稱

說明getParameter(Stringname)獲取指定參數(shù)之值,等同JSP內(nèi)置對象Request的getParameter方法getParameterValues(Stringname)獲取一個頁面表單組件對應(yīng)多個值時的用戶的請求數(shù)據(jù),等同JSP內(nèi)置對象Request的getParameterValues方法SmartUpload獲取表單數(shù)據(jù)getRequest():得到com.jspsmart.upload.Request對象

常用方法<formmethod="post"enctype="multipart/form-data"action="control.jsp">上傳文件:<inputtype="file"name="nfile"><br/>

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論