Jfinal重複登陸問題

  爲了防止重複登陸問題,這裏寫了個例子html

這裏我先說一下個人思路:java

    首先進入頁面會請求某個控制器的index()方法,這段代碼就是我粘貼的第二段代碼,在請求index()方法以前會進CheckTokenInterceptor.class,進入這個方法建立blogToken,而後把值放入頁面的隱藏域裏,隨後進行登陸操做,登陸時會取blogToken的值,取到返回true,反之返回false,而後就確保重複登陸問題,進行登陸操做。
session

public class CheckTokenInterceptor implements Interceptor{

    public void intercept(ActionInvocation ai) {
        //建立token,這裏是一進頁面會得到token的一個值,刷新頁面值會變化
        ai.getController().createToken("blogToken");
        ai.invoke();
    }
}
    @Before({CheckTokenInterceptor.class})
    public void index(){
        ...//這裏是第一次進頁面出現的一些方法
        render("/index.jsp");
    }
   /**
     * 前臺登陸
     */
    public void login(){
        boolean flag = this.validateToken("blogToken");//若是驗證是true,則表示第一次登陸,false表示重複登錄
        if(flag){
            User user = getModel(User.class);   //把前臺須要的值根據getModel()放入一個實體中
            String md5Pwd = MD5Encrypt.encode(user.getStr("pwd"));    //轉換成md5加密格式
            User uu = User.dao.checkLogin(user.getStr("account"),md5Pwd);
            if(uu == null){
                render("/index.jsp");
            }else {
                setSessionAttr("user", uu);          //往session中賦值
                render("/index.jsp");//重定向
            }
        }else{
            forwardAction("/user");
        }
    }

這裏很重要的一點,頁面上jsp

<input type="hidden" name="blogToken" value="${blogToken}" />
相關文章
相關標籤/搜索