JavaWeb登陆成功后跳转到上一个页面(2)-阿里云开发者社区

开发者社区> 沉默王二> 正文

JavaWeb登陆成功后跳转到上一个页面(2)

简介: JavaWeb登陆成功后跳转到上一个页面
+关注继续查看


login函数

@Clear({LoginInterceptor.class})
    public void login() throws UnsupportedEncodingException {
        logger.info("进行会员登录操作...");

        // 获取用户名
        String name = getPara("username");
        // 获取密码
        String password = getPara("password");

        Members mem = Members.me.getMemByUsername(name);

        if (mem != null) {// 用户不存在
            // 密码不匹配
            if (!mem.getStr("password").equals(CipherUtils.generatePassword(password))) {
                ajaxDoneError("密码不正确!");
            } else {
                // 保存session
                setSessionAttr("username", mem);
                
                String forwardURL = getPara("forwardURL");
                
                if (forwardURL == null || forwardURL.equals("")) {
                    forwardURL = "/";
                } else {
                    forwardURL = URLDecoder.decode(forwardURL, "UTF-8");
                }

                ajaxDoneSuccess("登录成功!", forwardURL);
            }

        } else {
            ajaxDoneError("用户不存在!");
        }
    }


1. login函数中,将forwardurl取出来,作为**登录页**中的callback函数的参数值; 2. 具体ajaxDoneSuccess方法可以参照以下内容

public void ajaxDoneSuccess(String message, String forwardURL) {
        ajaxDone(200, message, forwardURL);
    }
protected void ajaxDone(int statusCode, String message, String forwardURL) {
    // 回调类型
        if (getAttr("callbackType") == null) {
            String callbackType = getPara("callbackType");
            if (callbackType != null && !callbackType.equals("")) {
                setAttr("callbackType", callbackType);

                if (callbackType.equals("forward") || callbackType.equals("closeCurrentThenForward")) {
                    String contextPath = getRequest().getContextPath();
                    
                    if (forwardURL.indexOf(contextPath) == -1) {
                        forwardURL = contextPath + forwardURL;
                    }
                    
                    setAttr("forwardURL", forwardURL);
                }
            }
        }

        renderJson();
}   


如果有callbacktype参数,则将forwardurl作为json数据传递到前端的ajaxdone方法中。

ajaxDone方法

function ajaxDone(json) {
    YUNM.ajaxDone(json);
    if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {
if ("forward" == json.callbackType) {
            if (json.forwardURL) {
                location.href = json.forwardURL;
            }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
规则引擎:大厂营销系统资格设计全解(下)
规则引擎:大厂营销系统资格设计全解(下)
3 0
spring 整合 mybatis| 学习笔记
快速学习 spring 整合 mybatis
7 0
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
8 0
实操微服务设计-从需求、领域模型、业务能力到服务(2)
实操微服务设计-从需求、领域模型、业务能力到服务(2)
4 0
有关中台的误解以及精选中台解读6篇(阿里腾讯小米等)
有关中台的误解以及精选中台解读6篇(阿里腾讯小米等)
3 0
​中台战略:业务中台的8个设计原则
​中台战略:业务中台的8个设计原则
5 0
程序员自我发展之路:从态度到方法
程序员自我发展之路:从态度到方法
3 0
都是血泪,程序员傍身的生存法则(上)
都是血泪,程序员傍身的生存法则(上)
3 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载