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,這樣可能導致某些格式的文件無法打開,有些也可以正常打開。
          主站蜘蛛池模板: 自治县| 交口县| 黄浦区| 达孜县| 郓城县| 青河县| 偃师市| 象州县| 苍南县| 荆州市| 广州市| 广东省| 陇南市| 万山特区| 思茅市| 平顶山市| 翁源县| 营口市| 商都县| 共和县| 防城港市| 华容县| 长沙市| 吉林市| 桃园县| 泌阳县| 彩票| 鹤峰县| 元氏县| 吉首市| 巴楚县| 南川市| 和静县| 河东区| 闽侯县| 翁源县| 祁东县| 岳阳市| 上杭县| 连江县| 柳河县|