当前位置: 技术问答>java相关
大家帮忙分析一下,有源码!错误提示:java.lang.IllegalStateException: 已获取书写器
来源: 互联网 发布时间:2017-04-08
本文导语: 使用response.getOutputStream()出现错误提示,我用的wsad。 目的是在servlet中生成文件的数据流(PDF),在客户端用阅读器打开. 生成文件数据没有问题,执行到 ServletOutputStream pout = response.getOutputStream(); 时报错 错误提示: ja...
使用response.getOutputStream()出现错误提示,我用的wsad。
目的是在servlet中生成文件的数据流(PDF),在客户端用阅读器打开.
生成文件数据没有问题,执行到
ServletOutputStream pout = response.getOutputStream();
时报错
错误提示:
java.lang.IllegalStateException: 已获取书写器
大家帮忙分析一下原因,或者能完成这个功能的别的思路.
源码如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.html.HtmlWriter;
import javax.servlet.http.HttpServlet;
public class TestPdf extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
try{
Document对象
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfTable pdft = new PdfTable();
baos = pdft.getStream();//生成文件数据流
response.setContentType("application/pdf");
response.setContentLength(baos.size());
ServletOutputStream pout = response.getOutputStream();
baos.writeTo(pout);
pout.flush();
}
catch (Exception e2) {
System.out.println("Error in "+getClass().getName()+"n"+e2);
}
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doGet(request,response);
}
}
目的是在servlet中生成文件的数据流(PDF),在客户端用阅读器打开.
生成文件数据没有问题,执行到
ServletOutputStream pout = response.getOutputStream();
时报错
错误提示:
java.lang.IllegalStateException: 已获取书写器
大家帮忙分析一下原因,或者能完成这个功能的别的思路.
源码如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.html.HtmlWriter;
import javax.servlet.http.HttpServlet;
public class TestPdf extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
try{
Document对象
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfTable pdft = new PdfTable();
baos = pdft.getStream();//生成文件数据流
response.setContentType("application/pdf");
response.setContentLength(baos.size());
ServletOutputStream pout = response.getOutputStream();
baos.writeTo(pout);
pout.flush();
}
catch (Exception e2) {
System.out.println("Error in "+getClass().getName()+"n"+e2);
}
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doGet(request,response);
}
}
|
经典错误
ServletOutputStream pout = response.getOutputStream();
response.setContentType("application/pdf");
response.setContentLength(baos.size());
ServletOutputStream pout = response.getOutputStream();
response.setContentType("application/pdf");
response.setContentLength(baos.size());
|
getOutputStream(); getWriter()只能调用一次,只有一次!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。