<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學(xué)習(xí)

    java學(xué)習(xí)

     

    struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法

    struts2中的攔截器的定義是先定義一個(gè)類實(shí)現(xiàn)Interceptor接口,重寫intercept方法。下面是實(shí)現(xiàn)登錄驗(yàn)證的攔截器。

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE struts PUBLIC

       "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

       "http://struts.apache.org/dtds/struts-2.1.7.dtd">

    <struts> 

       <package name="mystruts" extends="struts-default">  

         <interceptors>   

            <interceptor name="LoginInterceptors" class="com.kaishengit.interceptors.LoginInterceptors">

              <param name="excludeName">execute,login,index</param>

              <param name="sessionName">currUser</param>

            </interceptor>     

            <interceptor-stack name="myInterceptors">           

              <interceptor-ref name="LoginInterceptors"></interceptor-ref>                      

            <interceptor-ref name="defaultStack"></interceptor-ref>

            </interceptor-stack>      

         </interceptors>

            <default-interceptor-ref name="myInterceptors"></default-interceptor-ref>

         <!-- 適用于所有的action -->

         <global-results>

              <result name="login" type="redirect">index.jsp</result>

         </global-results>

      

         <!-- AppAction -->

         <action name="index" class="com..web.AppAction">

            <result>/WEB-INF/views/index.jsp</result>

           

         </action>

         <action name="login" class="com.web.AppAction" method="login">

        

            <result type="redirectAction">main</result>

            <result name="input" type="">/WEB-INF/views/index.jsp</result>

         </action>

       </package>

    </struts>

    public class LoginInterceptors extends AbstractInterceptor{

     

      

       private static final long serialVersionUID = 1L;

       private String sessionName;

       private String excludeName;

       private List<String>  list;

       public List<String>  strlsit(String str){

         String[]  s = str.split(",");

         List<String>  list = new  ArrayList<String>();

         for(String ss : s){

            list.add(ss.trim());

         }

         return list;

       }

       @Override

       public void init() {

          list = strlsit(excludeName);

       }

       @Override

       public String intercept(ActionInvocation invocation) throws Exception {

         String actionName = invocation.getProxy().getActionName();

         if(list.contains(actionName)){

            //請(qǐng)求的是合法

            return invocation.invoke();

         }else {

            //查看session

            Map<String,Object>  session = invocation.getInvocationContext().getSession();

            User user = (User) session.get(sessionName);

            if(user==null){

              return "login";

            }else {

              return invocation.invoke();

            }

         }

       }

       public String getSessionName() {

         return sessionName;

       }

       public void setSessionName(String sessionName) {

         this.sessionName = sessionName;

       }

       public String getExcludeName() {

         return excludeName;

       }

       public void setExcludeName(String excludeName) {

         this.excludeName = excludeName;

       }

       public List<String> getList() {

         return list;

       }

       public void setList(List<String> list) {

         this.list = list;

       }

    }

    當(dāng)調(diào)用除了execute,login,index三個(gè)方法時(shí),先驗(yàn)證是否登錄,如果沒(méi)有登錄,調(diào)回登陸頁(yè)。

    Action實(shí)現(xiàn)驗(yàn)證參數(shù)值,先讓action繼承ActionSupport

    因?yàn)?/span>ActionSupport實(shí)現(xiàn)了Validateable接口,再

    重寫。validateable方法。Validateable方法是空方法,當(dāng)login方法調(diào)用前驗(yàn)證是否空值,定義方法validateLogin()

    以后和業(yè)務(wù)有關(guān)的驗(yàn)證方法定義都是validatexxx()xxx是執(zhí)行的業(yè)務(wù)方法。

    public class AppAction extends ActionSupport implements SessionAware,ServletRequestAware {

       private static final long serialVersionUID = 1L;

       private Map<String,Object> session;

       private HttpServletRequest request;

       private User user;

       private UserService userService = new UserService();

      

      

      

       /**

        * 去登錄頁(yè)面

        * @return

        */

       public String execute() {

         return "success";

       }

      

       /**

        * 登錄

        * @return

        */

       public String login() {

         if(user==null){

            return "login";

         }else {

     

            User loginUser = userService.login(user);

            if(loginUser == null) {

              return "login";

            } else {

              //Map<String,Object> session = ActionContext.getContext().getSession();

              session.put("currUser", loginUser);

             

              // = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);

              //HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);

             

              return "success";

            }

        

         }

       }

     

     

       public void setSession(Map<String, Object> session) {

         this.session = session;

       }

       public void setServletRequest(HttpServletRequest request) {

         this.request = request;

       }

      

       //get set

     

       public User getUser() {

         return user;

       }

     

       public void setUser(User user) {

         this.user = user;

       }

     

       public void validateLogin() {

         if(user==null){

            return;

         }

         System.out.println("================validateLogin==========");

         if("".equals(user.getUsername())||user.getUsername()==null){

            addFieldError("userName", "名稱必填");

         }

         if("".equals(user.getPassword())||user.getPassword()==null){

            addFieldError("password", "密碼不能空");

         }

       }

       public void validate() {

       System.out.println("=========================="); 

       } 

    }

    在頁(yè)面上寫<s:fielderror fieldName="userName" theme="simple"/>

    <s:fielderror fieldName="password" theme="simple"/>
    得到驗(yàn)證信息

    posted on 2013-04-06 23:43 楊軍威 閱讀(4886) 評(píng)論(5)  編輯  收藏

    評(píng)論

    # re: struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法 2014-10-31 18:31 admin

    謝謝  回復(fù)  更多評(píng)論   

    # re: struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法 2014-10-31 18:34 userName

    歡迎光臨!  回復(fù)  更多評(píng)論   

    # re: struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法 2014-12-02 22:15 山鬼謠

    給你點(diǎn)個(gè)贊,雖然界面的背景圖片,讓人看得相當(dāng)不爽,但是這個(gè)攔截器是我想要的,網(wǎng)上其他的攔截器,都是攔截全部請(qǐng)求,而你雖然也是,但是可是“開(kāi)后門”,進(jìn)行有選擇性的攔截,謝謝!  回復(fù)  更多評(píng)論   

    # re: struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法[未登錄](méi) 2014-12-03 08:47 離歌

    說(shuō)真的這個(gè)攔截器不錯(cuò),但是這個(gè)背景啊。。。我看的眼睛酸疼  回復(fù)  更多評(píng)論   

    # re: struts2實(shí)現(xiàn)登錄攔截器和驗(yàn)證方法 2016-02-22 22:53 嗯嗯

    嗯嗯  回復(fù)  更多評(píng)論   


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久精品九九亚洲精品| 天天摸夜夜摸成人免费视频| 十八禁视频在线观看免费无码无遮挡骂过 | 乱爱性全过程免费视频| 男女猛烈xx00免费视频试看| 亚洲av永久无码天堂网| 亚洲国产欧美一区二区三区| 亚洲变态另类一区二区三区 | 亚洲国产另类久久久精品| 亚洲综合网站色欲色欲| 国产亚洲精品a在线无码| 亚洲av无码一区二区三区不卡| 亚洲男人的天堂在线播放| 亚洲精品高清国产麻豆专区| 亚洲最新在线视频| 亚洲精品综合在线影院| 亚洲丰满熟女一区二区哦| 男女啪啪免费体验区| 久久毛片免费看一区二区三区| 国产无遮挡裸体免费视频在线观看| 久久狠狠躁免费观看| 青青在线久青草免费观看| 永久久久免费浮力影院| 亚洲精品456播放| 亚洲va无码手机在线电影| 91嫩草亚洲精品| 亚洲爆乳成av人在线视菜奈实| 免费看一级一级人妻片| 波多野结衣免费一区视频| 黄色网址免费大全| 国产男女猛烈无遮档免费视频网站| 亚洲精品和日本精品| 久久久久亚洲精品成人网小说 | 亚洲免费人成在线视频观看| 久久亚洲美女精品国产精品| 亚洲人成人无码.www石榴| 国产免费区在线观看十分钟 | 国产一级淫片a免费播放口| 久久天天躁狠狠躁夜夜免费观看| 国产又黄又爽又刺激的免费网址| 国产精品久久久亚洲|