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

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

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

    java學習

    java學習

     

    struts2實現登錄攔截器和驗證方法

    struts2中的攔截器的定義是先定義一個類實現Interceptor接口,重寫intercept方法。下面是實現登錄驗證的攔截器。

    <?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)){

            //請求的是合法

            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;

       }

    }

    當調用除了execute,login,index三個方法時,先驗證是否登錄,如果沒有登錄,調回登陸頁。

    Action實現驗證參數值,先讓action繼承ActionSupport

    因為ActionSupport實現了Validateable接口,再

    重寫。validateable方法。Validateable方法是空方法,當login方法調用前驗證是否空值,定義方法validateLogin()

    以后和業務有關的驗證方法定義都是validatexxx()xxx是執行的業務方法。

    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();

      

      

      

       /**

        * 去登錄頁面

        * @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("=========================="); 

       } 

    }

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

    <s:fielderror fieldName="password" theme="simple"/>
    得到驗證信息

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

    評論

    # re: struts2實現登錄攔截器和驗證方法 2014-10-31 18:31 admin

    謝謝  回復  更多評論   

    # re: struts2實現登錄攔截器和驗證方法 2014-10-31 18:34 userName

    歡迎光臨!  回復  更多評論   

    # re: struts2實現登錄攔截器和驗證方法 2014-12-02 22:15 山鬼謠

    給你點個贊,雖然界面的背景圖片,讓人看得相當不爽,但是這個攔截器是我想要的,網上其他的攔截器,都是攔截全部請求,而你雖然也是,但是可是“開后門”,進行有選擇性的攔截,謝謝!  回復  更多評論   

    # re: struts2實現登錄攔截器和驗證方法[未登錄] 2014-12-03 08:47 離歌

    說真的這個攔截器不錯,但是這個背景啊。。。我看的眼睛酸疼  回復  更多評論   

    # re: struts2實現登錄攔截器和驗證方法 2016-02-22 22:53 嗯嗯

    嗯嗯  回復  更多評論   


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品白丝在线观看| 亚洲网址在线观看你懂的| 日韩av无码免费播放| 99999久久久久久亚洲| 亚洲色中文字幕无码AV| 啊灬啊灬别停啊灬用力啊免费看| 99热在线免费观看| 特黄特色的大片观看免费视频| 亚洲国语精品自产拍在线观看| 亚洲成A人片在线观看中文 | 拔擦拔擦8x华人免费久久| 久章草在线精品视频免费观看| 鲁啊鲁在线视频免费播放| 精品无码AV无码免费专区| 久久不见久久见免费影院www日本| 亚洲日韩精品A∨片无码加勒比| 精品亚洲aⅴ在线观看| 亚洲不卡av不卡一区二区| 在线A亚洲老鸭窝天堂| 国产亚洲精品a在线观看| 亚洲精品国产品国语在线| 亚洲国产精品va在线播放| 亚洲精品成人av在线| 亚洲男人天堂影院| 亚洲偷偷自拍高清| 亚洲精品永久在线观看| 香蕉视频免费在线| A片在线免费观看| 亚洲91精品麻豆国产系列在线| 亚洲天堂2017无码中文| 亚洲国产成人久久综合| 国产亚洲精品免费视频播放| 日本黄色动图免费在线观看| 日韩视频在线精品视频免费观看| 免费做爰猛烈吃奶摸视频在线观看 | aa在线免费观看| 中文字幕无码免费久久99 | 亚洲日韩中文字幕一区| 国产精品九九久久免费视频 | 亚洲伦理中文字幕| 成全动漫视频在线观看免费高清版下载 |