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 閱讀(3758) 評論(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
          主站蜘蛛池模板: 安新县| 万山特区| 凤山市| 沾益县| 三明市| 綦江县| 英德市| 宜宾市| 南岸区| 枣庄市| 望江县| 五峰| 合川市| 余姚市| 巨野县| 临夏市| 宾川县| 伊金霍洛旗| 保靖县| 伊通| 本溪市| 湘乡市| 绿春县| 饶阳县| 黑龙江省| 噶尔县| 兴安盟| 郧西县| 泗水县| 泰宁县| 应城市| 邻水| 郁南县| 翁源县| 绵竹市| 新郑市| 金门县| 阿克陶县| 洛南县| 岑溪市| 东丰县|