我創建了一個servlet來下載客戶端發佈的特定文本(之前在textarea中)...客戶端中的表單沒有任何特定規則:從servlet下載文件客戶端時出現意外字符
form = new FormPanel();
form.setMethod(FormPanel.METHOD_POST);
form.setAction(GWT.getModuleBaseURL() + "services/export");
exportButton = new Button(resource.SUBMENU_Export(), new ClickHandler() {
public void onClick(ClickEvent event) {
form.submit();
}
});
這是在服務器端的代碼(的serlvet):
package com.server.servlet;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ExportServlet extends HttpServlet implements Servlet {
private static final long serialVersionUID = 7526472295622776147L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
String expl = req.getParameter("Expl");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=hint.txt;");
OutputStream stream = response.getOutputStream();
ObjectOutputStream objectStream = new ObjectOutputStream(stream);
objectStream.writeObject(expl);
objectStream.flush();
}
}
但是當我打開下載的文件,也有意想不到的字符只有在文件中開頭:
"`¬í tč-`"
我不知道,當寫這些文字我的文件...
您應該將內容類型設置爲「text/plain」。這不是二進制數據,這只是純文本數據。 – BalusC 2012-02-23 17:58:49
當您可以與服務器與RPC(或requestbuilder)進行通信時,爲什麼會遇到所有這些麻煩,servlet端的remoteservlet會爲您讀取文件並將文本發送到客戶端回調。 – 2012-02-27 02:56:37