MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          今天做一個jsp的驗證碼程序,把驗證碼的繪制寫在一個jsp里,發現在調用時總是出現getOutputStream() has already been called for this response異常,搞得一頭霧水,看似自己重復調用了,因為在程序最后是這樣輸出的
          ImageIO.write(image, “JPEG”, response.getOutputStream());
          但是仔細檢查了程序,并沒有問題,不過最后還是解決了,問題出在%>與<%之間的空行,把換行都去掉就OK了。
          因為Application Server在處理編譯jsp時對于%>和<%之間的內容一般是原樣輸出,而且默認是PrintWriter,而你卻要進行流輸 出:ServletOutputStream,這樣做相當于試圖在Servlet中使用兩種輸出機制,就會發生getOutputStream() has already been called for this response的錯誤
          詳細請見《More Java Pitfill》一書的第二部分 Web層Item 33:試圖在Servlet中使用兩種輸出機制 270
          而且如果有換行,對于文本文件沒有什么問題,但是對于其它格式,比如AutoCAD、Word、Excel等文件
          下載下來的文件中就會多出一些換行符0×0d和0×0a,這樣可能導致某些格式的文件無法打開,有些也可以正常打開。
          主站蜘蛛池模板: 恭城| 兴宁市| 大余县| 北碚区| 齐齐哈尔市| 宜君县| 信阳市| 句容市| 会东县| 宜良县| 青龙| 永新县| 鞍山市| 句容市| 郎溪县| 青岛市| 霍山县| 汨罗市| 张家界市| 万山特区| 上蔡县| 龙岩市| 从化市| 常山县| 道真| 裕民县| 石城县| 甘孜| 平江县| 大厂| 婺源县| 达尔| 民县| 疏附县| 徐闻县| 苍溪县| 房产| 淮南市| 洛阳市| 那坡县| 东乡族自治县|