Я хотел бы начать загрузку файла с clickkevent в моем веб-приложении gwt.Поэтому я написал сервлет, который записывает данные на выход и должен начать загрузку.Данные получены через http get.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = request.getParameter("data");
String filename = request.getParameter("filename");
byte[] streamData = data.getBytes();
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment; fileName="
+ filename + ".csv");
response.setContentLength(streamData.length);
ServletOutputStream out = response.getOutputStream();
out.write(streamData);
out.flush();
}
В клиенте я запускаю метод get через requestBuilder.sendRequest ():
RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, /download");
requestBuilder.sendRequest("filename=dues&data="+ theDataAsString, new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
// Anything to do here?
}
@Override
public void onError(Request request, Throwable exception) {
exception.printStackTrace();
SC.warn("Error while creating export file.");
}
});
Ничего не происходит.Но почему?Разве браузер не должен попросить начать загрузку?
Имеет ли в этом случае значение, если я использую post или get?
Я не хочу использовать что-то вроде
Window.open("/download?data=myData&filename=filename", "_blank", "");
Есть идеи?