隨筆-4  評(píng)論-7  文章-0  trackbacks-0

          struts2使用FilterDispatcher進(jìn)行url過濾,默認(rèn)是所有的url都過濾,但是項(xiàng)目中有些url是不想用struts2進(jìn)行過濾的,網(wǎng)上搜了不少方法

           

          1.修改web.xml文件。

          <filter-mapping>   

              <filter-name>struts2</filter-name>   

              <url-pattern>*.action</url-pattern>   

          </filter-mapping>

          只讓過濾器對(duì)加有.action后綴的路徑有效,如果需要攔截.jsp,加上*.jsp就行了。

          但是這樣如果有無后綴名的url(如/demo/)就不能過濾了

           

          2.修改struts2核心jar中的default.properties文件

          把struts.action.extension=action,,

          改為struts.action.extension=action,do,jsp,

          但我改了之后發(fā)現(xiàn)根本沒效果,不知為何

           

          3.自定義一個(gè)繼承StrutsPrepareAndExecuteFilter的過濾器,將配置換成自己自定義的過濾器。(推薦此法)

          public class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter {
              
              @Override
              
          public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
                  HttpServletRequest request 
          = (HttpServletRequest) req;
                  
          //不過濾的url,可以不斷添加,如fck可用/fckeditor/editor/filemanager/connectors/fileupload,下面的是flex
                  if ("/fpms/messagebroker/amf".equals(request.getRequestURI())) {
                      
          //System.out.println("使用自定義的過濾器");
                      chain.doFilter(req, res);
                  }
          else{
                      
          //System.out.println("使用默認(rèn)的過濾器");
                      super.doFilter(req, res, chain);
                  }
              }
          }

          修改web.xml

          <!-- sturts2過濾器 -->
              
          <filter>
                  
          <filter-name>struts2</filter-name>
                          
          <!-- 改為自己的過濾器 -->
                  
          <filter-class>
                      com.filter.ExtendStrutsFilter
                  
          </filter-class>
              
          </filter>
              
          <filter-mapping>
                  
          <filter-name>struts2</filter-name>
                  
          <url-pattern>/*</url-pattern>
              
          </filter-mapping>

          這種方法試驗(yàn)成功

          posted on 2010-10-15 11:54 wkkyo 閱讀(5802) 評(píng)論(2)  編輯  收藏 所屬分類: Struts2

          評(píng)論:
          # re: 解決struts2過濾器沖突的簡單方法 2013-05-16 18:04 | 孫小寶
          謝謝,解決大問題了  回復(fù)  更多評(píng)論
            
          # re: 解決struts2過濾器沖突的簡單方法 2014-05-19 17:26 | 騷年
          @孫小寶
          牛逼啊!!!找了好久  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 台江县| 九龙坡区| 马龙县| 山西省| 漯河市| 沙坪坝区| 湖州市| 阜城县| 囊谦县| 德阳市| 灵丘县| 堆龙德庆县| 四川省| 珲春市| 儋州市| 平遥县| 高碑店市| 酒泉市| 万全县| 神池县| 白河县| 滦南县| 乌拉特中旗| 舒城县| 盱眙县| 通化市| 甘南县| 温泉县| 黄大仙区| 青神县| 秭归县| 昌图县| 延长县| 唐河县| 高碑店市| 邹城市| 晋宁县| 浦城县| 天气| 鞍山市| 凌海市|