文章目錄
- 問題:servlet中使用request.getParameter()獲取不到前端發送的form表單中的文本資料
- 解決方案
問題:servlet中使用request.getParameter()獲取不到前端發送的form表單中的文本資料
因為前端提交的表單中包含圖片資訊,所以把前端中的表格enctype屬性更改為"multipart/form-data"
<form name="form1" method="post" action="<%=request.getContextPath()%>/manage/manager.do?method=edit&&manager_id=<%=map.get(" manager_id ")%>&&manager_imgpath=<%=map.get("manager_imgpath ")%>" οnsubmit="return checkForm(form1)" enctype="multipart/form-data">
<table width="96%" border="0" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#D2E3E6" bordercolorlight="#FFFFFF">
<tr>
<td><input type="hidden" name="manager_id" value="<%=map.get(" manager_id ")%>" />
<td>管理員名字:</td>
<td><input type="text" name="manager_name" value="<%=map.get(" manager_name ")%>" /></td>
<td colspan="3"><img id="preview" style="width: 200px; height: 300px" src="<%=request.getContextPath()%>/Images/dp.png" /></td>
</tr>
<tr>
<td>管理員密碼:</td>
<td><input type="text" name="manager_pass" value="<%=map.get(" manager_pass ")%>" /></td>
</tr>
<tr>
<td>管理員頭像:<span id="spid"><input type="file"
name="manager_imgpath" id="manager_imgpath" value="<%=map.get("manager_imgpath")%>"/></span></td>
<td><input style="float: right" type="submit" value="更新" /></td>
</tr>
</table>
</form>
導致在后臺獲取資料的時候,除了檔案資訊可以獲取到,其余都是null,但是把enctype="multipart/form-data"洗掉之后,檔案資訊就獲取不到了
解決方案
使用List<FileItem>
// 創建工廠類
DiskFileItemFactory factory = new DiskFileItemFactory();
// 創建具體功能類
ServletFileUpload upload = new ServletFileUpload(factory);
// 處理中文
upload.setHeaderEncoding("utf-8");
// 資料傳進去,獲取具體決議到的結果
List<FileItem> formItemList = upload.parseRequest(request);
然后通過呼叫get方法即可獲取資料
String manager_name = formItemList.get(1).getString("utf-8");
System.out.println("manager_name" + manager_name);
String manager_pass = formItemList.get(2).getString("utf-8");
System.out.println("manager_pass" + manager_pass);
get方法中,引數為索引,為資料提交的順序,使用get方法,這樣即可獲取到資料,即為把request決議存盤至List<FileItem>中
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/229905.html
標籤:其他
