后台返回json可能會出現的異常解析:java.lang.IllegalStateException: WRITER


    在使用filter做權限管理限制訪問時,經常是在數據可以正確返回時,在后台日志中卻有這個異常拋出,這個現象讓人不禁想去一探究竟。

我要做的是在一個filter中攔截所有的請求,並且根據拿到的請求中的參數去作相應的判斷處理,如果不通過,則直接在filter中返回信息給前台,如果處理通過,則通過調用filter鏈的chain.doFilter()將請求轉發給下一個filter(如果沒有下一個過濾器,則為請求的資源)。這個異常恰恰就發生在url被攔截時向前台返回數據的時候。

    在攔截url向前端返回數據時,需要用到response對象向頁面輸入,這里使用的是:printWriter對象的write()方法,向前台傳輸數據(可以在ajax的回調函數種獲取到傳過去的數據),異常顯示就發生在返回數據這一行。

在網上搜索資料顯示,這個異常發生都是由於在一次請求中多次調用輸出流時產生的。

解決方案:確保在所有可能返回數據的情況中,每一種情況只取獲取一次輸出流(printWriter或者servletOutputStream,如果獲取第二次,則會拋出這個異常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM