tomcat5下jsp出现getOutputStream() has already been called 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()相冲突的!所以会出现以上这个异常。
然后当然是要提出解决的办法,其实挺简单的(并不是和某些朋友说的那样--
将jsp内的所有空格和回车符号所有都删除掉),
在使用完输出流以后调用以下两行代码即可:
Java代码
out.clear();
out = pageContext.pushBody();
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanleigis/archive/2008/12/26/3614796.aspx
分享到:
相关推荐
验证码出现getOutputStream() has already been called for this response错误解决
1.在tomcat6.0下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法 在tomcat6.0下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有...
纠结了半天的 java.lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个错误一般就是下面2个.....
NULL 博文链接:https://javal.iteye.com/blog/1993903
NULL 博文链接:https://nethub2.iteye.com/blog/2023937
servlet的response可以对返回的内容和格式进行一些设置。
TelnetClient包,Telnet...然后,可以使用getInputStream() 和 getOutputStream() 方法获取用于通过Telnet连接发送和接收数据的InputStream和OutputStream 。使用完流后,必须调用 disconnect 而不是简单地关闭流。
上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具...
发送请求:通过HttpURLConnection类中的getOutputStream()方法获取输出流并写入请求体,从而发送POST请求。 处理响应:通过HttpURLConnection类中的getInputStream()方法获取输入流并读取响应体,从而处理服务器...
如果创建了一个Socket对象,那么它可能通过调用Socket的 getInputStream()方法从服务程序获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息。在读写活动完成之后,客户...
注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。 2.如何开发一个Server-Client模型的程序 开发原理: ...
getWriter() 和Response.getOutputStream冲突
由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向给它...
基于JAVA的剪刀石头布游戏设计 摘要:本课程设计使用Java语言,运用 java.io包和java.net包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,...
GetOutputStream方法得到一个输出流,客户端Socket对象上的getOutputStream方法返回的输出流就是将要发送到服务器端的数据流,(其实是一个缓冲区,暂时存储将要发送过去的数据)。 多播通信是一类特殊的IP地址(D类...
如果有必要,可以使用 setDoOutput(true)方法设置输出,并且通过往 getOutputStream()流中写入数据的方法来往服务器端传递数据使用
通过调用此方法获取从服务器得到的数据 调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器。 2程序概要设计 一个剪刀石头布游戏,根据一般的常识,首先要有两个人,两个人同时出,然后, ...
获得输入流/输出流,进行数据传送和接收 s.getInputStream() s.getOutputStream() (4)关闭输入流/输出流和套接字 os.close(); s.close(); 注意:使用HttpURLConnection,只用调用java自身的jar包中的net方法,而...