2011-07-05 14 views
0

我已經看到了Web應用程序與文件處理交易(從 reciving應用的第三方應用程序,並在數據庫中存儲他們進一步使用)encodiing。設置字符使用的ServletRequest和ServletResponse的

即特定的web應用也具有被配置Servlet過濾器,其唯一的基本目的是字符編碼設定爲UTF-8。

例如:

public class ResponseFilterExample implements Filter { 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException { 
     filterchain.doFilter(request, response); 
     response.setContentType("text/html"); 
     response.setCharacterEncoding("UTF-8"); 
    } 
} 

現在的問題是,什麼是

request.setCharacterEncoding("UTF-8"); 

response.setCharacterEncoding("UTF-8"); 

之間的區別?

+1

第一個設置請求的字符編碼(來自瀏覽器到服務器),第二個設置響應的字符編碼(從服務器到瀏覽器)。你讀了這兩種方法的Javadoc(http://download.oracle.com/javaee/6/api/)? –

回答

0

好了,不同的是,一個sets the encoding on the request,其他sets the encoding on the response

上述文檔鏈接在更詳細的解釋。

ServletRequest.setCharacterEncoding()

覆蓋在該請求的主體中使用的字符編碼的名稱。該方法之前,必須讀出請求的參數或使用getReader()讀取輸入的被叫。否則,它不起作用。

ServletResponse.setCharacterEncoding()

設置響應的字符編碼(MIME字符集)被髮送到客戶端,例如,到UTF-8。

相關問題