我的Blog我做主^_^

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評(píng)論 :: 0 Trackbacks
          在寫JSP程序的時(shí)候,如果程序中調(diào)用了response.getOutputStream()去向客戶端輸出文件等數(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ī)范說明,不能既調(diào)用response.getOutputStream(),又調(diào)用response.getWriter(),無論先調(diào)用哪一個(gè),在調(diào)用第二個(gè)時(shí)候應(yīng)會(huì)拋出IllegalStateException,因?yàn)樵趈sp中,out變量實(shí)際上是通過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_蟈蟈 閱讀(320) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沂水县| 连平县| 忻州市| 中方县| 沂水县| 滕州市| 科技| 池州市| 榆树市| 柳林县| 东乡族自治县| 明溪县| 昌图县| 且末县| 乌鲁木齐县| 渭南市| 北流市| 昔阳县| 宁明县| 黑山县| 弥勒县| 东乌| 灯塔市| 永清县| 昌黎县| 永登县| 乌兰浩特市| 衡水市| 洞头县| 嘉鱼县| 大方县| 贵阳市| 普兰县| 明星| 布尔津县| 新源县| 柳江县| 平湖市| 阳高县| 盘锦市| 瑞金市|