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}" />