国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CharacterEncodingFilter一定要放在第一個

VioletJack / 3211人閱讀

摘要:在開發應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇合適的來解析過來的參數。但是這里有個陷阱,整個應用里,這個的攔截順序必須是第一個,否則還是會出現亂碼問題。

在開發java web應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇合適的encoding來解析request過來的參數。

這個問題的解決辦法很簡單,就是寫一個filter來過濾所有請求,然后設置一下request的characterEncoding,比如:

public class CharacterEncodingFilter implements Filter {

  protected String encoding = "utf-8";

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
  throws IOException, ServletException {
    request.setCharacterEncoding(encoding);
    chain.doFilter(request, response);
  }

  public void init(FilterConfig filterConfig) throws ServletException {
    String initEncoding = filterConfig.getInitParameter("encoding");
    if (Strings.isNotBlank(initEncoding)) {
      this.encoding = initEncoding;
    }
  }

  public void destroy() {
    encoding = null;
  }

}

把這個filter在web.xml里配置一下所攔截的url pattern就行了。

但是這里有個陷阱,整個web應用里,這個filter的攔截順序必須是第一個,否則還是會出現亂碼問題。這是因為(至少在tomcat里):

request對象的parameter并不是一開始就解析的,它是等你第一次調用getParameter*等凡和獲得請求參數有關的方法的時候才解析的

paramter一旦被解析過一次,那就不會再次被解析

所以如果在CharacterEncodingFilter之前有另外一個filter,而這個filter調用了getParameter*方法,那么就有可能使用錯誤的encoding來解析,從而造成亂碼問題。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65026.html

相關文章

  • CharacterEncodingFilter一定放在一個

    摘要:在開發應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇合適的來解析過來的參數。但是這里有個陷阱,整個應用里,這個的攔截順序必須是第一個,否則還是會出現亂碼問題。 在開發java web應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇...

    FuisonDesign 評論0 收藏0
  • CharacterEncodingFilter一定放在一個

    摘要:在開發應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇合適的來解析過來的參數。但是這里有個陷阱,整個應用里,這個的攔截順序必須是第一個,否則還是會出現亂碼問題。 在開發java web應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇...

    KitorinZero 評論0 收藏0
  • CharacterEncodingFilter一定放在一個

    摘要:在開發應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇合適的來解析過來的參數。但是這里有個陷阱,整個應用里,這個的攔截順序必須是第一個,否則還是會出現亂碼問題。 在開發java web應用的時候經常會遇到令人頭痛的字符編碼問題,期中一個就是客戶端發送過來的請求的編碼在請求頭里并沒有,開發人員需要在后端自己選擇...

    hedzr 評論0 收藏0
  • 使用maven創建簡單的多模塊 Spring Web項目

    摘要:第一次寫技術文章,主要內容是使用創建一個簡單的項目,如有操作或理解錯誤請務必指出,當謙虛學習。基本思想其實就是一個項目引用別的模塊包,最終項目被打成包發布。 第一次寫技術文章,主要內容是使用maven創建一個簡單的SpringMVC WEB 項目,如有操作或理解錯誤請務必指出,當謙虛學習。做這一次的工作主要是因為想加強一下自己對Spring Web 項目的理解,因為平時都是直接寫業務代...

    DevYK 評論0 收藏0

發表評論

0條評論

VioletJack

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<