程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jspsmartupload上傳文件servlet得不到jsp參數

jspsmartupload上傳文件servlet得不到jsp參數

編輯:關於JSP

最近在做項目的時候用jspsmartupload上傳文件,但是發現一個問題,用request.getParameter("name") 不能獲得表單的數據,最後終於解決,留篇文章。
       原因很簡單:
因為你用jspsmartuploadsmart時post請求 的格式是multipart/form-data,即enctype="multipart/form-data" ,這和默認form提交是不同的
不同主要體現在:傳送到服務器端的數據組織格式不同,就是說協議不一樣(在3W官網上能找到相關格式說明文件)。 而現在的WEB容器對HttpServletRequest 方法getParameter(str)的實現都是按照默認協議。這也就難怪直接用request.getParameter()取到的值為null了。
解決方法是:
用smartupload裡已經提供了專門的方法,
不能用普通的request.getParameter()
而要用upload.getRequest()就可以使用了
例子:
SmartUpload su = new SmartUpload();
// 上傳初始化
su.initialize(pageContext);
// 設定上傳限制
// 1.限制每個上傳文件的最大長度。
// su.setMaxFileSize(10000);
// 2.限制總上傳數據的長度。
// su.setTotalMaxFileSize(20000);
// 3.設定允許上傳的文件(通過擴展名限制),僅允許doc,txt文件。
//su.setAllowedFilesList("xml");
// 4.設定禁止上傳的文件(通過擴展名限制),禁止上傳帶有exe,bat,jsp,htm,html擴展名的文件和沒有擴展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上傳文件
   su.upload();
String softname=su.getRequest().getParameter("softname");
注意:一定要在su.upload();,之後取得!!

本文出自“實踐記錄”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved