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

下載本文檔

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

文檔簡(jiǎn)介

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

計(jì)算顯示的頁(yè)數(shù)

編寫(xiě)SQL語(yǔ)句

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

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

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

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

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

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

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

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

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

su.setMaxFileSize(20000);

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論