我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評(píng)論 :: 0 Trackbacks
          在寫(xiě)JSP程序的時(shí)候,如果程序中調(diào)用了response.getOutputStream()去向客戶(hù)端輸出文件等數(shù)據(jù)流,容器就會(huì)拋出這樣的異常:
          Java.lang.IllegalStateException: getOutputStream() has already been called for this response
                  at org.apache.catalina.connector.Response.getWriter(Response.java:596)
                  at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
            產(chǎn)生這樣的異常原因:是web容器生成的servlet代碼中有out.write(""),這個(gè)和JSP中調(diào)用的response.getOutputStream()產(chǎn)生沖突.即Servlet規(guī)范說(shuō)明,不能既調(diào)用response.getOutputStream(),又調(diào)用response.getWriter(),無(wú)論先調(diào)用哪一個(gè),在調(diào)用第二個(gè)時(shí)候應(yīng)會(huì)拋出IllegalStateException,因?yàn)樵趈sp中,out變量實(shí)際上是通過(guò)response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out變量,故出現(xiàn)以上錯(cuò)誤。
            解決方案:在程序的最后添加:
          out.clear();
          out = pageContext.pushBody();
          就可以了。

          http://blog.erp100.com/html/39/3639-1547.html

          posted on 2007-04-13 11:54 java_蟈蟈 閱讀(323) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 永修县| 朝阳区| 日土县| 清远市| 噶尔县| 常州市| 康定县| 龙游县| 兰州市| 合作市| 潍坊市| 郸城县| 元朗区| 浑源县| 濮阳县| 庆元县| 苏尼特右旗| 大荔县| 天峨县| 茶陵县| 南江县| 金乡县| 上高县| 宁武县| 额尔古纳市| 铜川市| 广丰县| 临潭县| 辉县市| 通州区| 麻城市| 房产| 莆田市| 湟源县| 临江市| 栾川县| 成都市| 隆子县| 温州市| 广丰县| 宝丰县|