JSP Servlet保存为弹出窗口

时间:2013-03-16 15:07:54

标签: jsp servlets popup save

我想将excel中的数据下载到用户选择的路径,在jsp中我已经给出了ExportToExcel按钮,所以我想要下面的场景

当用户点击ExportToExcel按钮然后保存为弹出窗口应该来自那里我想调用servlet并需要在弹出窗口中选择的servlet中接收文件保存路径然后我想将我的数据写入excel表并保存到用户选择的路径。保存后,我想在另一个jsp页面中向用户显示一条消息。

1 个答案:

答案 0 :(得分:2)

有关文件保存路径的信息不会以任何方式发送到服务器。另外,你显然无法使用例如当客户端在物理上不同的机器上运行时,服务器中的new File(savedPath)将在非开发环境中运行。所以你的整个要求没有任何意义。您应该直接将文件写入HTTP响应的HTTP响应主体,该响应将触发另存为对话。

目前尚不清楚您使用什么来生成Excel文件,但如果它是Apache POI,那么它看起来像这样:

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("cell value");

response.setContentType("application/vnd.ms-excel"); // Tell browser what content type the response body represents,  so that it can associate it with MS Excel, if necessary.
response.setHeader("Content-Disposition", "attachment; filename=name.xls"); // Force "Save As" dialogue.
workbook.write(response.getOutputStream()); // Write created Excel sheet to response. This will be saved in the location specified by the user.