java.lang.IllegalStateException: getOutputStream() has already been called 解决方法

<body>
<%
//创建bufferedimage对象
BufferedImage image = new BufferedImage(340,160,BufferedImage.TYPE_INT_RGB);
//创建Graphics对象
Graphics g = image.getGraphics();
//使用graphics画图,图将显示在image中
g.fillRect(0, 0, 400, 400);
//设置颜色:红色
g.setColor(new Color(255,0,0));
//画一个弧
g.fillArc(20, 20, 100, 100, 30, 120);
//设置颜色:蓝色
g.setColor(new Color(0,0,255));
//画一个弧得到的弧从 startAngle 开始跨越 arcAngle 度。对角度的解释如下:0 度角位于 3 点钟位置。正值指示逆时针旋转,负值指示顺时针旋转。 
 /* 
弧的中心是矩形的中心,此矩形的原点为 (x, y),大小由 width 和 height 参数指定。 


得到的弧覆盖 width + 1 像素宽乘以 height + 1 像素高的区域 */ 
g.fillArc(20, 20, 100, 100, 150, 120);
//设置颜色:绿色
g.setColor(new Color(0,255,0));
//画一个弧
g.fillArc(20, 20, 100, 100, 270, 120);
//设置黑色,字体普通16磅
g.setColor(new Color(0,0,0));
g.setFont(new Font("Arial Black",Font.PLAIN,16));
//str - 要绘制的 string。x - x 坐标。y - y 坐标。
g.drawString("red:book", 200, 60);
g.drawString("red:blue", 200, 100);
g.drawString("red:green", 200, 140);
//释放此图形的上下文以及它使用的所有系统资源。
g.dispose();
//将图片输出到页面上
/*
产生这样的异常原因:是web容器生成的servlet代码中有out.write(""),
这个和JSP中调用的response.getOutputStream()产生冲突.即Servlet规范说明,
不能既调用response.getOutputStream(),又调用response.getWriter(),
无论先调用哪一个,在调用第二个时候应会抛出IllegalStateException,因为在jsp中,
out变量实际上是通过response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。
*/
out.clear(); 
out = pageContext.pushBody(); 
ImageIO.write(image,"JPEG", response.getOutputStream());
%>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小李子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值