2014-09-22 35 views
0

移動邏輯我自己上課的時候我在我的servlet doPost方法有這樣的代碼,一切都很好。UnsupportedEncodingException當我從我的servlet doPost方法

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
... 
String data = CharStreams.toString(new InputStreamReader(request.getInputStream(), "UTF-8")); 
... 
} 

我想提出這個代碼到另一個階級,但是當我這樣做,我得到這個錯誤的IntelliJ報道:

java.io.UnsupportedEncodingException 

public class SomeUtil { 

    public String readFromInput(ServletInputStream is) { 

    return CharStreams.toString(new InputStreamReader(is, "UTF-8")); 
    } 

} 

是否該servlet的doPost地方處理這個異常,我可以」你看嗎?

+0

你能嘗試它接受一個字符集的構造? (又名:'Charset.forName( 「UTF-8」)') – NoDataFound 2014-09-22 23:55:08

+0

爲什麼在我的servlet的doPost相同的代碼工作的? – Blankman 2014-09-22 23:56:02

+0

它目前在什麼類?你是從已經拋出一個更通用的異常(如IOException)的某個Servlet類進行擴展嗎? – mkobit 2014-09-22 23:56:41

回答

2

doPost()方法聲明throws ServletException, IOException覆蓋在你使用的是的InputStreamReader構造的throws UnsupportedEncodingException

在你readFromInput()方法,你可以聲明throws條款,以及或環繞在的try-catch塊線。爲了避免UnsupportedEncodingException,使用接受一個字符集對象的構造,只是通過在標準UTF-8

相關問題