The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

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

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

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

          解決辦法:   
           錯誤的順序:
              
               <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 閱讀(3191) 評論(2)  編輯  收藏 所屬分類: JSP

          Feedback

          # re: filter-mapping的執(zhí)行順序和字符集設(shè)置的優(yōu)先級 2016-01-10 16:02 范甘迪
          s'd'f's'd  回復(fù)  更多評論
            

          # re: filter-mapping的執(zhí)行順序和字符集設(shè)置的優(yōu)先級 2016-07-19 14:02 d
          a  回復(fù)  更多評論
            

          主站蜘蛛池模板: 南丹县| 巍山| 许昌县| 翁源县| 定南县| 白玉县| 肇源县| 万载县| 岐山县| 广州市| 江安县| 昆山市| 镇赉县| 桃江县| 盐池县| 长寿区| 榕江县| 太湖县| 佛教| 柘荣县| 郸城县| 桂林市| 松潘县| 买车| 贡觉县| 泽库县| 穆棱市| 商洛市| 新化县| 扎兰屯市| 盘山县| 文安县| 东光县| 隆林| 文昌市| 浙江省| 临洮县| 噶尔县| 西藏| 北安市| 广南县|