銆愭爣 棰樸戯細tomcat5涓媕sp鍑虹幇getOutputStream() has already been called for this response寮傚父鐨勫師鍥犲拰瑙e喅鏂規硶
銆愬叧閿瓧銆戯細tomcat5,jsp,getOutputStream,has,already,been,called,for,this,response
銆愭潵 婧愩戯細http://blog.csdn.net/alexwan/archive/2007/02/13/1508871.aspx
tomcat5涓媕sp鍑虹幇getOutputStream() has already been called for this response寮傚父鐨勫師鍥犲拰瑙e喅鏂規硶
鍦╰omcat5涓媕sp涓嚭鐜版閿欒涓鑸兘鏄湪jsp涓嬌鐢ㄤ簡杈撳嚭嫻侊紙濡傝緭鍑哄浘鐗囬獙璇佺爜錛屾枃浠朵笅杞界瓑錛夛紝
娌℃湁濡ュ杽澶勭悊濂界殑鍘熷洜銆?br>
鍏蜂綋鐨勫師鍥犲氨鏄?br>鍦╰omcat涓璲sp緙栬瘧鎴恠ervlet涔嬪悗鍦ㄥ嚱鏁癬jspService(HttpServletRequest request, HttpServletResponse response)鐨勬渶鍚?br>鏈変竴孌佃繖鏍風殑浠g爜
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
榪欓噷鏄湪閲婃斁鍦╦sp涓嬌鐢ㄧ殑瀵硅薄錛屼細璋冪敤response.getWriter(),鍥犱負榪欎釜鏂規硶鏄拰
response.getOutputStream()鐩稿啿紿佺殑錛佹墍浠ヤ細鍑虹幇浠ヤ笂榪欎釜寮傚父銆?/p>
鐒跺悗褰撶劧鏄鎻愬嚭瑙e喅鐨勫姙娉曪紝鍏跺疄鎸虹畝鍗曠殑錛堝茍涓嶆槸鍜屾煇浜涙湅鍙嬭鐨勯偅鏍?-
灝唈sp鍐呯殑鎵鏈夌┖鏍煎拰鍥炶濺絎﹀彿鎵鏈夐兘鍒犻櫎鎺夛級錛?/p>
鍦ㄤ嬌鐢ㄥ畬杈撳嚭嫻佷互鍚庤皟鐢ㄤ互涓嬩袱琛屼唬鐮佸嵆鍙細
out.clear();
out = pageContext.pushBody();
鏈鍚庤繖閲屾槸涓涓緭鍑哄僵鑹查獙璇佺爜渚嬪瓙錛堣繖鏍風殑渚嬪瓙鍑犱箮闅忓鍙錛?br>imag.jsp
<% @ page import = " java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* " %>
<% @ page import = " java.io.OutputStream " %>
<%!
Color getRandColor( int fc, int bc){
Random random = new Random();
if (fc > 255 ) fc = 255 ;
if (bc > 255 ) bc = 255 ;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r,g,b);
}
%>
<%
try {
response.setHeader( " Pragma " , " No-cache " );
response.setHeader( " Cache-Control " , " no-cache " );
response.setDateHeader( " Expires " , 0 );
int width = 60 , height = 20 ;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
OutputStream os = response.getOutputStream();
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor( 200 , 250 ));
g.fillRect( 0 , 0 , width, height);
g.setFont( new Font( " Times New Roman " ,Font.PLAIN, 18 ));
g.setColor(getRandColor( 160 , 200 ));
for ( int i = 0 ;i < 155 ;i ++ )
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt( 12 );
int yl = random.nextInt( 12 );
g.drawLine(x,y,x + xl,y + yl);
}
String sRand = "" ;
for ( int i = 0 ;i < 4 ;i ++ ){
String rand = String.valueOf(random.nextInt( 10 ));
sRand += rand;
g.setColor( new Color( 20 + random.nextInt( 110 ), 20 + random.nextInt( 110 ), 20 + random.nextInt( 110 )));
g.drawString(rand, 13 * i + 6 , 16 );
}
session.setAttribute( " rand " ,sRand);
g.dispose();
ImageIO.write(image, " JPEG " ,os);
os.flush();
os.close();
os = null ;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
}
catch (IllegalStateException e)
{
System.out.println(e.getMessage());
e.printStackTrace();
} %>

]]>