Java读取数据库Blob对象返回到JSP页面和getOutputStream() has already been called for this response异常处理
2011-07-22 11:26
603 查看
<%@page import="java.sql.Blob"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.CallableStatement"%> <%@page import="java.io.BufferedOutputStream"%> <%@page import="java.io.FileInputStream"%> <%@page import="java.io.OutputStream"%> <%@page import="java.io.InputStream"%> <%@page import="java.io.File"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% //CallableStatement cs = conn.prepareCall("call `xxx`.`xxxx`();"); //ResultSet rs = cs.executeQuery(); //if (rs.next()) { //Blob b = rs.getBlob("magazine"); //long size = b.length(); //byte[] bs = b.getBytes(1, (int)size); //} //后面差不多,主要是byte的来源变了 File file = new File("C:\\Begin Google Map.pdf");//也可以从文件读取 long length = file.length(); InputStream stream = new FileInputStream(file); BufferedOutputStream os = new BufferedOutputStream(response.getOutputStream());//用Buffered包裹效率高 //OutputStream os = response.getOutputStream(); byte[] buf=new byte[(int)length]; response.setContentType("application/pdf"); try { int n; while ((n = stream.read(buf)) != -1) os.write(buf, 0, n);//这里要这么写,表示读多少写多少 } catch (Exception e) { e.printStackTrace(); } os.flush(); os.close(); out.clear();//这两句话一定要加上,否则报getOutputStream() has already been called for this response异常 out = pageContext.pushBody(); %> </body> </html>
相关文章推荐
- jsp图片验证码实现及getOutputStream() has already been called for this response异常
- JAVA异常 getOutputStream() has already been called for this response
- 在同一个jsp页面上即使用字符流,又使用字节流就会出现以下异常:getOutputStream() has already been called for this response
- jsp图片验证码实现及getOutputStream() has already been called for this response异常
- getOutputStream() has already been called for this response 错误异常的处理
- jsp图片验证码实现及getOutputStream() has already been called for this response异常
- 登录页面验证码的简单实现,以及getOutputStream() has already been called for this response异常的解决方法
- jsp图片验证码实现及getOutputStream() has already been called for this response异常
- tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- JSP验证码报错:getOutputStream() has already been called for this response异常
- getOutputStream() has already been called for this response异常出现的原因和解决方法
- tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法(转)
- jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- tomcat6下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- tomcat6下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
- getOutputStream() has already been called for this response异常的原因和解决方法[转]
- getOutputStream() has already been called for this response异常
- getOutputStream() has already been called for this response异常的原因和解决方法
- (生成excel)解决getOutputStream() has already been called for this response java getOutputStream()的问题
- struts2中getOutputStream() has already been called for this response异常解决方法