2012-03-12 36 views
3

我有一個網頁,有這樣一段代碼:我的Servlet如何從多部分/表單數據表單接收參數?

<form action="Servlet" enctype="multipart/form-data"> 
<input type="file" name="file"> 
<input type="text" name="text1"> 
<input type="text" name="text2"> 
</form> 

當我在我的Servlet使用request.getParameter("text1");它顯示爲空。我怎樣才能讓我的Servlet接收參數?

+0

http://www.jguru.com /faq/view.jsp?EID=1045507 – 2012-03-12 12:50:59

+0

[如何在JSP/Servlet中上載文件?](http://stackoverflow.com/questions/2422468/how-to-upload-files-in-jsp- servlet/2424824#2424824),換句話說:只是通過與檢索文件相同的API。 – BalusC 2012-03-12 13:13:28

回答

1

使用getParts()

+0

getParts()從哪個類發出? – Bolaum 2012-03-12 12:49:39

+0

點擊鏈接? – BalusC 2012-03-12 13:12:25

+0

Ops,我沒有看到鏈接。 – Bolaum 2012-03-12 13:17:36

1

Pleepleus是正確的,公地文件上傳是不錯的選擇。
如果您在servlet 3.0+ environment中工作,還可以使用其多部分支持輕鬆完成多部分數據解析作業。只需在servlet類中添加一個@MultipartConfig,然後您就可以通過調用請求來接收文本數據。 getParameter(),非常容易。

Tutorial - Uploading Files with Java Servlet Technology

0

您需要發送的參數是這樣的:

writer.append("--" + boundary).append(CRLF); 
writer.append("Content-Disposition: form-data; name=\"" + urlParameterName + "\"") 
       .append(CRLF); 
writer.append("Content-Type: text/plain; charset=" + charset).append(CRLF); 
writer.append(CRLF); 
writer.append(urlParameterValue).append(CRLF); 
writer.flush(); 

而且對servlet的一側,流程表單元素:

items = upload.parseRequest(request); 
Iterator iter = items.iterator(); 
while (iter.hasNext()) { 
     item = (FileItem) iter.next(); 
     if (item.isFormField()) { 
      name = item.getFieldName(); 
      value = item.getString(); 

    }} 
相關問題