设为首页 | 加入收藏  
软件定制开发
  网站首页 关于我们 新闻中心 产品介绍 解决方案 成功案例 服务支持 联系我们
首页 > 最新公告
 
【软件开发中缓存的应用之登陆策略】
来源:www.sywebsoft.com 发布者:领航科技  发布时间:2019-04-23 
 

下面是完整的Java代码:


@Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
        // 不管请求哪个页面,登陆成功后仅打开指定页面index
//        redirectStrategy.sendRedirect(request, response, "/index");
        // 获取缓存
        SavedRequest savedRequest = requestCache.getRequest(request, response);
        // 设置响应格式和编码
        response.setContentType(FebsConstant.JSON_UTF8);
        
        // 缓存非空判断
        if (savedRequest != null) {
            // 跳转到之前引发跳转的url
            String url = savedRequest.getRedirectUrl();
            
            String messsage = "成功";
            // 准备json
            Map json = new HashMap<String, Object>();
            json.put("code", 0);
            json.put("message", "操作成功");
            json.put("url", url);

            Object jsons = ResponseBo.ok(messsage, url);
            response.getWriter().write(mapper.writeValueAsString(ResponseBo.ok(messsage, url)));
        } else {
            // 这个是没有缓存,直接跳转到默认ajax默认的页面
            response.getWriter().write(mapper.writeValueAsString(ResponseBo.ok()));
        }
    }

6. 前端页面Ajax代码:

    $.ajax(
        {
            type: "post",
            url: "/login",
            // 登陆表单数据序列化
            data: $form.serialize(),
            dataType: "json",
            error: function (data, type, err) {
                if (data.responseJSON != undefined) {
                    console.log(data.responseJSON.error != undefined);
                    console.log(JSON.stringify(data.responseJSON.error));
                    $MB.n_danger("error:" + JSON.stringify(data.responseJSON.error));
                }
            },
            success: function (data) {
                console.log(JSON.stringify(data));
                alert(JSON.stringify(data));

                if (data.code == 0) {
                    // 如果有url,则跳转该url
                    if (data.url != undefined) {
                        $form[0].reset();
                        window.location.href = data.url;
                    } else {
                        // 重置表单的输入框内容
                        $form[0].reset();
                        window.location.href = /index;
                        // $form.attr("action", /index);
                    }

                } else {
                    // if (r.msg !== 验证码不能为空!) reloadCode();
                    console.log(data.message);
                }
            },
        }
    );

7.不出意外的话,浏览器会收到下面的数据:

{"code":0,"message":"操作成功"}

如果你也收到了这条数据,说明已经成功了


下一篇:net开发中需要了解的知识体系
 
推荐文章

net开发中需要了解的知识体系 [2019-04-23]
dotnet开发中中间件底层与分析 [2019-04-22]
我们在开发中机器的矩阵向量求导与疑问 [2019-04-22]
软件开发中的一大模式-桥接模式 [2019-04-22]
3D 渲染引擎构建工厂是基于 HTML5 Canvas [2019-04-22]
Scrapy框架入门:使用Scrapy框架爬取全书 [2019-04-22]
 
沈阳软件开发
沈阳软件定制开发
沈阳软件公司
沈阳软件开发公司
首页
关于我们
新闻中心
产品介绍
解决方案
成功案例
服务支持
联系我们
关于领航
 
公司地址:沈阳市沈河区北站路77-1号光达大厦C座13层
邮政编码:110013
客服电话:13840539193 024-31281857
Email:2579047692@qq.com
客服Q Q:2579047692
官方微信
 
Copyright @ 2005-2019 sywebsoft.com All Right Reserved
展开