`
艾蛋蛋
  • 浏览: 41784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

getOutputStream() has already been called for this

阅读更多
tomcat5下jsp出现getOutputStream() has already been cal
led for this response异常的原因和解决方法

在tomcat5下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),
没有妥善处理好的原因。

具体的原因就是
在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponse response)的最后
有一段这样的代码
finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
这里是在释放在jsp中使用的对象,会调用response.getWriter(),因为这个方法是和
response.getOutputStream()相冲突的!所以会出现以上这个异常。

采用方法很简单.在使用OutputStream输出流完成后,调用下面2个方法即可解决该问题:
  out.clear();
  out = pageContext.pushBody();

示例代码:

OutputStream os=response.getOutputStream();
os.write(new String("true   "+"nowNum=" + nowNum+"===").getBytes());
os.flush();
os.close();

  out.clear();
  out = pageContext.pushBody();
[/align][align=left]
分享到:
评论

相关推荐

    getOutputStream() has already been called for this response 错误解决

    在Java Web开发中,"getOutputStream() has already been called for this response" 是一个常见的错误,通常出现在使用Servlet或JSP时。这个错误意味着在HTTP响应中,`getOutputStream()`已经被调用,然后尝试再次...

    tomcat6下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法

    在使用Tomcat 6服务器部署和运行Java Server Pages (JSP) 时,可能会遇到一个特定的异常:“getOutputStream() has already been called for this response”。该异常发生在尝试向响应对象中写入数据时,已经调用了...

    验证码出现getOutputStream()问题解决

    验证码出现getOutputStream() has already been called for this response错误解决

    java.lang.IllegalStateException: getOutputStream() has already解决办法

    纠结了半天的 java.lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个错误一般就是下面2个.....

    JSP彩色验证码

    解决了getOutputStream() has already been called for this response. 并将产生验证码的逻辑从JSP页面中分离出来,单独写了一个类 便于重用。

    Cannot forward after response has been committed

    "Cannot forward after response has been committed" 是一个在Java Web开发中常见的错误,通常与Servlet、Filter或控制器逻辑有关。这个错误表明服务器已经完成了对HTTP响应的处理,并将其发送到客户端,然后试图...

    handleStream ServletOutputStream out = response.getOutputStream(); InputStream i

    `getOutputStream()` 方法就是从中获取一个输出流,这个流将用于向客户端发送响应内容。 `ServletOutputStream` 实例化后,我们可以通过调用它的`write()` 方法来写入字节数据。例如,如果我们在一个Servlet中想要...

    servlet2.4doc

    Returns a boolean indicating whether the named response header has already been set. contextDestroyed(ServletContextEvent) - Method in interface javax.servlet.ServletContextListener Notification ...

    java.lang.IllegalStateException: OutputStream already obtain

    标题 "java.lang.IllegalStateException: OutputStream already obtain" 涉及到的是Java编程中的一个常见错误,特别是当处理I/O流时。这个异常通常在尝试获取已经存在的OutputStream实例时抛出,表明该输出流已经被...

    rxtx for java.zip

    6. **读写数据**:通过`SerialPort`对象的`getInputStream()`和`getOutputStream()`方法获取输入流和输出流,然后可以使用Java的I/O操作进行串口通信。 7. **关闭串口**:完成通信后,记得调用`SerialPort.close()`...

    验证码(网页中用到的)

    * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server ...

    用java来实Ntalk聊天工具.doc

    DataOutputStream outToClient = new DataOutputStream(connectionSocket[i].getOutputStream()); outToClient.writeBytes("UNIX>Ntalk " + inet.getHostAddress() + '\n'); outToClient.writeBytes("Server:Red_...

    Java高级课程设计--网络聊天室

    this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { try { MsgBean bean = new MsgBean(); bean.setType("请求下线"); bean.setSource(ClientFrame...

    QQ Server 端代码

    BufferedWriter wrbuf = new BufferedWriter(new OutputStreamWriter(s1.getOutputStream())); wrbuf.write("false\n"); wrbuf.flush(); }else{ Socket s2 = clients.get(str[0]); ...

    android 串口驱动

    if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) { throw new SecurityException(); } } catch (Exception e) { e.printStackTrace(); throw new ...

    TcpClient for MAC Android Studio

    2. **数据传输**:连接建立后,通过Socket的`getOutputStream()`获取输出流,使用`getInputStream()`获取输入流。然后,可以使用`DataOutputStream`和`DataInputStream`进行字节级别的读写操作,或者使用`...

    可群发,冒号加客户号可指定用户发送的java聊天程序

    outputS = new ObjectOutputStream(connection.getOutputStream()); beConnected = true; } catch (IOException e) { System.out.println("无法获取连接的输入输出流"); } } ...

Global site tag (gtag.js) - Google Analytics