The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(11)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          問題起因:
             今天遇到一個亂碼問題,以前已經配置好了的呀。而且是普遍現象,看來是公共的變更引起的問題。
             
          分析過程:

              于是開始進行調試,因為是公共問題,所以就對web.xml最近的變更進行增刪調試,發現如果使用SecurityFilter就報錯,去掉久正常了。
            仔細檢查,發現如下現象:
             1、在設置字符集之前, 提前調用了request.getParameter()方法,就會出現問題。即使后來再設置字符集,隨后的action接收的數據也會亂碼。
              2、對于同一個url,如:*.do,filter-mapping 是有順序的,按照web.xml中的配置順序。

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

          解決辦法:   
           錯誤的順序:
              
               <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>
           
           正確的順序:
           
               <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 2011-12-29 16:42 Eric_jiang 閱讀(3190) 評論(2)  編輯  收藏 所屬分類: JSP

          Feedback

          # re: filter-mapping的執行順序和字符集設置的優先級 2016-01-10 16:02 范甘迪
          s'd'f's'd  回復  更多評論
            

          # re: filter-mapping的執行順序和字符集設置的優先級 2016-07-19 14:02 d
          a  回復  更多評論
            

          主站蜘蛛池模板: 韶山市| 施甸县| 淅川县| 遵化市| 临夏县| 天峨县| 石楼县| 电白县| 吉水县| 北碚区| 庆安县| 始兴县| 武定县| 子洲县| 加查县| 瑞金市| 桂东县| 东乡县| 汶上县| 江川县| 泸溪县| 卫辉市| 宝山区| 洪泽县| 中宁县| 西贡区| 兴业县| 鄢陵县| 政和县| 卢龙县| 江永县| 清河县| 武汉市| 苏州市| 丹棱县| 涿鹿县| 如皋市| 孟津县| 衡东县| 麻江县| 军事|