NutzCN Logo
问答 登陆的一个设计方案环节的问题
发布于 2627天前 作者 qq_4945a577 1826 次浏览 复制 上一个帖子 下一个帖子
标签:

需求想要这样的效果,新手入门里登录页面登陆的话,如果后端返回“验证码错误”这样类似的信息,就让他显示在原来的登陆页面上,如果成功就跳转到别的jsp或者转发(或者重定向)到别的路径上,所以一个入口函数就要判断两个返回路径了,nutz这我只找到了这样的(@Ok("jsp:${obj == null ? 'jsp.user.login' : 'jsp.user.home'}")),但以我对nutz的了解肯定不止这一个方法,我想多学学更好的实现方法,至少能不能告诉我上边这样的实现方式是不是最优的

 @At
    @POST
    
    public Object login(@Param("username")String username,
                        @Param("password")String password,
                        @Param("captcha")String captcha,
                        @Attr(scope=Scope.SESSION, value="nutz_captcha")String _captcha,
                        HttpSession session) {
        NutMap re = new NutMap();
        if (!Toolkit.checkCaptcha(_captcha, captcha)) {
            return re.setv("ok", false).setv("msg", "验证码错误");
        }
        int userId = userService.fetch(username, password);
        if (userId < 0) {
            return re.setv("ok", false).setv("msg", "用户名或密码错误");
        } else {
            session.setAttribute("me", userId);
            // 完成nutdao_realm后启用.
             SecurityUtils.getSubject().login(new SimpleShiroToken(userId));
             //设置登陆失效时长,默认配置为30分钟
            //SecurityUtils.getSubject().getSession().setTimeout(5000);
            return re.setv("ok", true);
        }
    }
3 回复

用ajax得到登录结果,然后在js代码内实现提示或跳转,应该是最优的了

为什么呀?页面跳转跟用户浏览器就多了交互次数,后台跳转(@Ok("jsp:${obj == null ? 'jsp.user.login' : 'jsp.user.home'}"))这样的方式代码也不复杂,所以这样来说的话这后台跳转不就会快一点么

ajax更友好

添加回复
请先登陆
回到顶部