Everything is a contribution

          走過Java的點點滴滴,與大家共勉~
          隨筆 - 21, 文章 - 0, 評論 - 10, 引用 - 0
          數據加載中……

          web.xml的filter執行順序導致的亂碼,切記!

          ??? 今天跟項目組做集成的時候發現一個很奇怪的亂碼問題,web.xml的filter、jsp頁面均進行了編碼設置, 反復調試發現引起bug的原因是web.xml的下面幾行:
          ??? <filter-mapping>
          ??????? <filter-name>SecurityFilter</filter-name>
          ??????? <url-pattern>*.do</url-pattern>
          ??? </filter-mapping>

          ??? <filter-mapping>
          ??????? <filter-name>CharacterEncoding</filter-name>
          ??????? <url-pattern>*.do</url-pattern>
          ??? </filter-mapping>

          ??? <filter-mapping>
          ??????? <filter-name>CharacterEncoding</filter-name>
          ??????? <url-pattern>*.jsp</url-pattern>
          ??? </filter-mapping>

          根據servlet2.3規范filter執行是按照web.xml配置的filter-mapping先后順序進行執行,所以上面的配置會導致遇見*.do的url請求,先進行SecurityFilter的過濾器處理,這時候沒有做編碼處理,已經是亂碼,到下面的filter處理時已經時亂碼,再做編碼處理已經沒有用處。

          修正方式,調整filter-mapping順序,如下:

          ??? <filter-mapping>
          ??????? <filter-name>CharacterEncoding</filter-name>
          ??????? <url-pattern>*.do</url-pattern>
          ??? </filter-mapping>

          ??? <filter-mapping>
          ??????? <filter-name>CharacterEncoding</filter-name>
          ??????? <url-pattern>*.jsp</url-pattern>
          ??? </filter-mapping>

          ??? <filter-mapping>
          ??????? <filter-name>SecurityFilter</filter-name>
          ??????? <url-pattern>*.do</url-pattern>
          ??? </filter-mapping>

          posted on 2007-01-31 17:04 Kevin Xia 閱讀(3764) 評論(2)  編輯  收藏 所屬分類: Java開發

          評論

          # re: web.xml的filter執行順序導致的亂碼,切記![未登錄]  回復  更多評論   

          <filter-mapping>
          <filter-name>EncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
          </filter-mapping>
          我門都是這樣寫的 不知道 這樣有什么問題
          每次 提交表單是亂碼
          然后刷新一下 顯示就是好的了
          email:gcc1984629@163.com
          2007-08-17 14:45 | cc

          # re: web.xml的filter執行順序導致的亂碼,切記!  回復  更多評論   

          不錯呢
          2010-04-01 10:52 | Nassir
          主站蜘蛛池模板: 五莲县| 乳源| 河间市| 广南县| 阿瓦提县| 千阳县| 台山市| 大宁县| 昭通市| 阿拉善右旗| 安阳市| 河源市| 津市市| 宁南县| 育儿| 斗六市| 望都县| 乌兰浩特市| 利津县| 海安县| 台中县| 岗巴县| 麻栗坡县| 钦州市| 七台河市| 承德县| 封开县| 肥西县| 香格里拉县| 荔浦县| 和静县| 萝北县| 黄龙县| 龙泉市| 壤塘县| 延川县| 华阴市| 香港| 通河县| 明溪县| 梁山县|