攔截器再應(yīng)用學(xué)習(xí)

          攔截器
          如果用戶登錄后可以訪問(wèn)action中的所有方法
          user.jsp{
          request.getSession().setAttribute(
          "user""itcast");
          //專門設(shè)置用戶是否登錄狀態(tài),session來(lái)專門標(biāo)注用戶是否登錄
          }
          退出登錄
          quit.jsp{
          request.getSession().removeAttribute(
          "user");
          //將session去掉就行了..
          }
          如果用戶沒(méi)有登錄不允許訪問(wèn)action中的方法,并且提示

          1.定義攔截器
          1.1實(shí)現(xiàn)com.opensymphony.xwork2.ActionInvocation.Interceptor接口
              @Override
              
          public void destroy() {//當(dāng)此類被摧毀的時(shí)候執(zhí)行
                  
              }

              @Override
              
          public void init() {//實(shí)例化自動(dòng)執(zhí)行
                  
              }
          public String intercept(ActionInvocation invocation) throws Exception {
                  
          // TODO Auto-generated method stub
                  Object user = ActionContext.getContext().getSession().get("user");
                  
          if(user!=null)//判斷用戶是否登錄
                      invocation.invoke();//執(zhí)行被攔截到的方法,不掉用,被攔截的action方法

          不會(huì)被執(zhí)行
                  ActionContext.getContext().put(
          "message""you have not right");
                  
          return "success";//定義全局
              }//當(dāng)攔擊到action就會(huì)執(zhí)行此方法
          1.2注冊(cè)攔截器 在struts的package中注冊(cè)攔截器
          <package name="employee" namespace="/control/employee" extends="struts-default">
                  
          <interceptors> <!-- 注冊(cè)攔截器 -->
                      
          <interceptor name="permission" 

          class="cn.itcast.interceptor.PermissionInterceptor"></interceptor>
                      
          <!-- 使用攔截器棧可以使用自定義攔截器,且 不失去系統(tǒng)自定義攔截器功能 

          -->
                      
          <interceptor-stack name="permissionStack">
                          
          <!-- 系統(tǒng)默認(rèn)攔截器 -->
                          
          <interceptor-ref name="defaultStack"></interceptor-ref>
                          
          <!-- 自定義攔截器的引入 -->
                          
          <interceptor-ref name="permission"></interceptor-ref>
                      
          </interceptor-stack>
                  
          </interceptors>
                  
          <!--默認(rèn)包里面全用此攔截器  1 與 @@對(duì)應(yīng)-->
                  
          <default-interceptor-ref name="permissionStack"></default-interceptor-ref>
                  
          <global-results>
                      
          <result name="success">/WEB-INF/page/message.jsp</result>
                  
          </global-results>
                  
                  
                  
          <action name="list_*" class="cn.itcast.action.HelloWorldAction" 

          method
          ="{1}">
                      
          <!-- 使用攔截器 @@ -->
                      
          <!-- <interceptor-ref name="permissionStack"></interceptor-ref>
                      
          <interceptor-ref name="增加自定義新攔截器"></interceptor-ref> -->
                  
          </action>
              
          </package>

          1.3 需要定義攔截器棧,否則自定義攔截器會(huì)覆蓋struts自帶的攔截器,使struts失去自身的攔截器功能
          /control/employee

          posted on 2012-06-07 11:55 youngturk 閱讀(176) 評(píng)論(0)  編輯  收藏 所屬分類: struts2

          <2012年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語(yǔ)英語(yǔ)

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 双辽市| 华安县| 五常市| 达尔| 乐东| 金寨县| 莎车县| 叶城县| 青河县| 厦门市| 徐汇区| 上蔡县| 华宁县| 富顺县| 安阳县| 南乐县| 张家港市| 武鸣县| 红安县| 北安市| 房产| 亚东县| 电白县| 七台河市| 延安市| 从化市| 门头沟区| 金阳县| 嘉义县| 蓝山县| 商南县| 白城市| 布拖县| 三河市| 海伦市| 濮阳市| 惠东县| 栾川县| 西峡县| 平阴县| 武定县|