在JSP使用:
response.reset();
response.setContentType("application/vnd.ms-excel");
OutputStream os = response.getOutputStream();
抛出异常:
ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
原因:1,是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();
就可以了;
2,不要在%><%之间写内容包括空格和换行符
3,在页面写入图片的时候,需要flush()
OutputStream output=response.getOutputStream();
output.flush();
4,在页面确定写入,<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
分享到:
相关推荐
NULL 博文链接:https://nethub2.iteye.com/blog/2023937
纠结了半天的 java.lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个错误一般就是下面2个.....
servlet的response可以对返回的内容和格式进行一些设置。
public void code(HttpServletRequest request, HttpServletResponse response) throws IOException{ String[] tableNames = new String[]{};... IOUtils.write(data, response.getOutputStream()); }
随机获取验证码 public class CheckNumberServlet extends HttpServlet { ... ServletOutputStream sos = response.getOutputStream();…………………………………………………………………………………………
用与java web 开发,java 实现的数字验证码的生成 class Image{} <%@ page contentType="image/jpeg" import="javax.imageio.*" %> ...ImageIO.write(image.creatImage(), "JPEG", response.getOutputStream()); %>
在table中导出Excel详细过程OutputStream os = response.getOutputStream(); response.setContentType("application/msexcel"); response.setHeader("Content-disposition","attachment; filename=clerkAddress.xls...
VC6.0 实现jpeg图像的读取
OutputStream os = response.getOutputStream(); os.write(bs, 0, bs.length); os.close(); } catch (JRException e) { // TODO Auto-generated catch block e.printStackTrace(); }
OutputStream o = response.getOutputStream(); // 将图片转换成字符串 File f = new File("f:\\Vista.png"); FileInputStream fis = new FileInputStream( f ); byte[] bytes = new byte[fis.available...
简单的验证码实现 public static void ... ServletOutputStream out = response.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(image); out.close(); }
getWriter() 和Response.getOutputStream冲突
介绍软件测试培训的PPT private void collect(String stu,String val,... ServletOutputStream out=response.getOutputStream(); out.write(buffer.toString().getBytes("UTF-8")); out.close(); }
import java.io.*; import java.util.*; import javax.servlet.*; ... public class MyServlet ... OutputStream out_Stream = response.getOutputStream(); out_Stream.write( data ); out_Stream.close(); } }
OutputStream outs = response.getOutputStream();// 获取文件输出IO流 BufferedOutputStream bouts = new BufferedOutputStream(outs); response.setContentType("application/x-download");// 设置response...
基于JFreeChart的jsp图表实例 根目下JFreeChart/有报表教程.doc文件 ...变成ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,640,370);就能生成报表,其中ChartUtilities类在org.jfree.chart包下
NULL 博文链接:https://javal.iteye.com/blog/1993903
IOUtils.copy(inputStream, response.getOutputStream()); response.flushBuffer(); System.out.println("输出成功!"); } HTML前端接response收流: ...
由 servlet 直接获得图片, ZipPicture.zip(filepath, response.getOutputStream(), width, signature); 不需要其他代码。
heads是excel表头,datalist是数据public void createExcelStream(HttpServletResponse response,String filename,String[] heads,List[]> datalist){ try{ OutputStream os = response.getOutputStream();...