sre*_*127 3 java excel jsp servlets response
我无法将响应从 servlet 导出到 excel 文件。请看下面的代码:
测试.java:
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
out = response.getWriter();
out.print("<form name=\"test\" method=\"post\" action=\"Export\">");
out.print("<table border=\"1\" cellpadding=\"3\" bordercolor='black'");
out.print("<tr>");
out.print("<td>1</td>");
out.print("<td>hello how are you?</td>");
out.print("</tr>");
out.print("</table>");
out.print("<td><input type=\"submit\" name =\"submit1\" value=\"Export To Excel\"></td>");
out.print("</form>");
Run Code Online (Sandbox Code Playgroud)
单击提交按钮时会生成一个不包含任何值的 Excel 工作表。查看Export.java单击提交按钮时调用的 。
导出.java
public class Export extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String submit1 = request.getParameter("submit1");
if (submit1 != null) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=users.xls");
}
}
}
Run Code Online (Sandbox Code Playgroud)
此外,据观察,如果我将以下代码写入Test.java.
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=users.xls");
Run Code Online (Sandbox Code Playgroud)
单击提交按钮时,是否有任何方法可以将输出转发Export.java到Test.java。
终于,我找到了解决办法!我把所有的out.print()东西都存储到一个StringBuffer. 然后使用getServletContext().setAttribute("test", Buffer);我将整个内容转发到另一个 servlet 并从另一个 servlet 我使用StringBuffer data = (StringBuffer) getServletContext().getAttribute("test");.
最后,
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=sample.xls");
response.getWriter().write(data.toString());`
Run Code Online (Sandbox Code Playgroud)
完成了工作。
| 归档时间: |
|
| 查看次数: |
41379 次 |
| 最近记录: |