用攔截器實現登錄驗證功能AuthorizationInterceptor
          package com.interceptor;   
            
          import com.opensymphony.xwork2.ActionInvocation;   
          import com.opensymphony.xwork2.interceptor.*;   
          import com.opensymphony.xwork2.*;   
          import java.util.*;   
          /**  
           * 
          @author http://xp9802.iteye.com/  
           
          */
            
          public class AuthorizationInterceptor extends AbstractInterceptor {   
              
          private String ignoreActions;   
            
              
          // ignoreActions屬性的getter方法   
              public String getIgnoreActios() {   
                  
          return ignoreActions;   
              }
             
            
              
          // ignoreActions屬性的setter方法   
              public void setIgnoreActions(String ignoreActions) {   
                  
          this.ignoreActions = ignoreActions;   
              }
             
            
              @Override  
              
          public String intercept(ActionInvocation invocation) throws Exception {   
                  ActionContext ctx 
          = invocation.getInvocationContext();   
            
                  Map session 
          = ctx.getSession();   
                  String user 
          = (String) session.get("username");   
            
                  
          boolean ignore = false;   
                  String currentAction 
          = invocation.getProxy().getActionName();   
                  String[] actions 
          = ignoreActions.split(",");   
            
                  
          for (String action : actions) {   
                      
          if (currentAction.matches(action.trim())) {   
                          ignore 
          = true;   
                          
          break;   
                      }
             
                  }
             
            
                  
          if (user != null || ignore == true{   
            
                      
          return invocation.invoke();   
                  }
           else {   
                      
          return Action
          <interceptors>    
              
          <interceptor name="authorization" class="com.interceptor.AuthorizationInterceptor" />    
              
          <interceptor-stack name="myStack">    
                  
          <interceptor-ref name="authorization">    
                      
          <param name="ignoreActions"> validate_code,register.*,.*login.*,upload,connector</param>    
               
          </interceptor-ref> <interceptor-ref name="defaultStack" />   
          </interceptor-stack>    
          lt;/interceptors>    
          <default-interceptor-ref name="myStack"/>  
          .LOGIN;   
                  }
             
            
              }
             
          }
            

          在struts.xml文件里面配置該攔截器:



          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          posts - 34, comments - 38, trackbacks - 0, articles - 0

          Copyright © 陳小東

          主站蜘蛛池模板: 新泰市| 句容市| 宁波市| 桂东县| 定南县| 荣成市| 黑龙江省| 兴山县| 五大连池市| 清徐县| 涟水县| 涞源县| 大兴区| 兴义市| 桐庐县| 泰来县| 祁东县| 黑水县| 陕西省| 陈巴尔虎旗| 都兰县| 藁城市| 合肥市| 桦川县| 阿克| 黔西| 墨玉县| 永寿县| 惠来县| 夏津县| 延寿县| 邢台市| 六安市| 龙井市| 时尚| 绩溪县| 揭阳市| 北流市| 宜丰县| 仲巴县| 饶河县|