OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以
        File f = new File("upload/image/2008112102425.jpg"); // 你的文件
        InputStream is = new FileInputStream(f); // 文件输入流
        byte[] bs = new byte[1024];  // 读取缓冲区
        int len;
        while((len=is.read(bs))!=-1){ // 循环读取
          os.write(bs,0,len); // 写入到输出流
        }
        is.close();  // 关闭
        os.close(); // 关闭
报错,图片都存在
java.lang.IllegalStateException: getWriter() has already been called for this response
 org.apache.coyote.tomcat5.CoyoteResponse.getOutputStream(CoyoteResponse.java:568)
 org.apache.coyote.tomcat5.CoyoteResponseFacade.getOutputStream(CoyoteResponseFacade.java:148)
 hospital.servlet.getimages.doGet(getimages.java:20)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    getWriter()和getOutputStream()是有冲突的,是不是上下文中还调用了getWriter()?
      

  2.   

    原因是在于 request的getOutputStream和getWriter不能同时使用 也不能重复调用 可能要你贴一下完整一点的代码才知道具体是怎么有错
      

  3.   


        public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            response.setContentType(CONTENT_TYPE);
            OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以
            
            File f = new File(request.getSession().getServletContext().getRealPath("/")+"upload/image/2008112102425.jpg"); // 你的文件
            InputStream is = new FileInputStream(f); // 文件输入流
            byte[] bs = new byte[1024];  // 读取缓冲区
            int len;
            while((len=is.read(bs))!=-1){ // 循环读取
              os.write(bs,0,len); // 写入到输出流
            }
            is.close();  // 关闭
            os.close(); // 关闭
        }
      

  4.   

    请问你这个问题解决了没有?是不是没有设置正确的content-type呀?