【SSM】【4】前端后端数据流转

2023-10-26

前后端数据流转图:

业务流转图

  1. 前端控制器接受用户请求响应
    1.         doJsonRequest("/ursuser/login.json", json, function (data) {
                  if (getUrlParam("session") == 1) {
                      history.back();
                  } else {
                      if (data.msgCode == 10007) {
                          openDiv("password_edit.html", "edit", function () {
                              $("#alert").append("初次登录请修改密码");
                          });
                      }
                      if (data.msgCode == 10004) {
                          window.location.href = "index.html"
                      }
                  }
              }, "POST");

       

  2. 根据url查找controller(handle):由注解@RequestMapping指定url
  3.  @RequestMapping(value = "/login.json", method = {RequestMethod.POST,
                RequestMethod.GET}, produces = "application/json;charset=UTF-8")
        public
        @ResponseBody
        Object login(@RequestBody UrsUserQuery ursUserQuery, HttpServletRequest request, HttpServletResponse httpServletResponse, HttpSession session) throws Exception {
            //update-20180614-LuoLiang-添加查询所属机构
            String sql = "select uu.*,ur.role_id,ur.role_desc,regexp_replace(tt.comname,'^\\d+','') as comname from t_urs_user uu " +
                    "left join t_urs_user_role uur on uur.user_id=uu.user_id " +
                    "left join t_urs_role ur on ur.role_id=uur.role_id " +
                    "left join v_pub_company tt on substr(uu.comcode,0,8) = substr(tt.comcode,0,8) " +
                    "where uu.enable='1' and ur.enable='1' and uu.user_id='%s' and uu.user_password='%s'";
            sql = String.format(sql, ursUserQuery.getUserId(), MD5Util.MD5(ursUserQuery.getUserPassword(), ""));
            Object object = commonServiceImp.find(sql);
            if (object != null) {
                Map<String, Object> ursUser = (Map<String, Object>) object;
                Object obj = ursUser.get("COMCODE");
                if (obj != null) {
                    String comcode = String.valueOf(obj);
                    if (comcode.length() > 6) {
                        ursUser.put("COMCODE", comcode.substring(0, 6));
                    }
                }
                //ursUser.put("M_PASSPORT", CognosUtil.getPassportId());
                String ursUserStr = JsonUtil.toJson(ursUser);
                LOGGER.info("{}登录成功", ursUserStr);
                logLoginServiceImp.loginlog(ursUserQuery.getUserId(), request.getRemoteAddr());
                ursUserStr = URLEncoder.encode(ursUserStr, CharEncoding.UTF_8);
                CookieUtil.addCookie(httpServletResponse, CookieKeyConstant.USER_KEY, ursUserStr);
                session.setAttribute("user_session", ursUser);
                if (ursUser.get("DESCRIPTION") == null) {
                    return new RestBean(MsgCodeConstant.MUST_EDITPASSWORD);
                }
                return new RestBean(MsgCodeConstant.LOGIN_SUCCESS);
            } else {
                throw new RestException(-1, "账户名或密码错误");
            }
        }

    返回json:@ResponseBody会返回一个json串,将返回的数值直接返回给HTTP Response Body,通过Ajax异步传值,前台会的到返回的HTTP Response Body  也就是就送串

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SSM】【4】前端后端数据流转 的相关文章

  • c++:STL-函数对象

    函数对象 函数对象的概念 1 重载函数调用操作符的类 其对象常称为函数对象 2 函数对象使用重载的 时 行为类似函数调用 也叫仿函数 本质 函数对象仿函数是一个类 不是一个函数 函数对象使用 特点 1 函数对象在使用时 可以像普通函数那样去
  • xss-labl 练习 (1--10关)

    xss lab 第一关 将name的值直接输出 可以利用 弹窗 第二关 使用第一关的方法 行不通 查看php源代码 在github上下载
  • 设计数字频率计FPGA

    设计数字频率计FPGA 数字频率计是电子测量中常用的一种仪器 它可以测量任何周期性信号的频率 在现代电子领域中 数字频率计的应用越来越广泛 其设计和实现成为了必不可少的技能 本文将介绍如何使用FPGA来实现数字频率计 在FPGA中实现数字频
  • python php 快速排序

    usr bin python coding UTF 8 def partition li left rigth temp li left 获取第一个值假定为列表的中间值 while left lt rigth 如果中间值的左边小于右边 则说
  • 分割字符串取最后一部分

    第一种方法 全分割 在取最后一部分 String dirDiveded fileName split String newName if dirDiveded length gt 0 newName dirDiveded dirDivede
  • 从零开始深度学习

    特点 从深度学习基础开始 快速进入重要高级架构的细节 从头开始实施所有内容 学习如何从头开始应用多层神经网络 卷积神经网络和循环神经网络 非常清晰和彻底的心智模型 伴随着工作代码示例和数学解释 使用易于理解的面向对象框架 从头开始实现多层神
  • js-使用attr()方法

    在使用attr 过程中遇到些许问题 总结归纳一下 获取xo标签attribute属性的值 xo attr attribute 设置attribute属性的值为value xo attr attribute value 设置多个attribu
  • 数据标准化常见问题:对整个数据集数据标准化后再划分训练集、测试集和先对训练级标准化再将规则用于测试集有什么区别(Python实现)

    在数据分析与挖掘 算法建模的都会用到数据标准化 数据的标准化 normalization 是将数据按比例缩放 使之落入一个小的特定区间 在某些比较和评价的指标处理中经常会用到 去除数据的单位限制 将其转化为无量纲的纯数值 便于不同单位或量级
  • 还在为日语动词变形感到困惑吗?一张图即可搞定

    还在为日语动词变形感到困惑吗 一张图即可搞定 身在异国他乡 不会当地语言 是寸步难行 因此 我想把自己学习到的知识以文字形式分享给大家 仅供大家参考 目前我也正处于日语自学阶段 在 如何阅读一本书 里面讲到 掌握知识的最佳方法就是记住与输出
  • Vue3通透教程【十六】TS编译配置

    文章目录 写在前面 初始化配置文件 target module lib types node include outDir 写在最后 写在前面 专栏介绍 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章 应粉丝要求开始更新 Vue3
  • 微信小程序 wx.getUserProfile 接口获取用户信息

    wx getUserInfo 开发中遇到getUserInfo一直获取不到用户信息 查询后了解到 考虑到近期开发者对小程序登录 用户信息相关接口调整的相关反馈 为优化开发者调整接口的体验 回收wx getUserInfo接口可获取用户授权的
  • 如何让自己的写的程序在阿里云一直运行

    参考 如何让自己的写的程序在阿里云一直运行 作者 图触靓 发布时间 2020 08 02 11 53 28 网址 https blog csdn net bhbhhyg article details 107742311 目录 1 下载sc
  • 下载huggingface上模型的正确姿势

    更多 更及时内容欢迎留意微信公众号 小窗幽记机器学习 文章目录 背景 环境安装 模型下载 背景 之前下载huggingface上模型的时候 要么是用类似如下脚本的方式下载 from transformers import AutoToken
  • 京东JD商品详情接口

    Result Object items url https search jd com Search keyword 手机 enc utf 8 wq 手机 pvid 33dbb420d9fa4ca483a869f2e4c5625c keyw
  • Prometheus监控

    Prometheus监控 时序数据库 使用kube Prometheus 使用之前要先卸载master01节点上的metrics server 否则会导致master01节点 noreday 下载安装文件 https github com
  • ping不通的几种可能原因

    平时使用中经常会碰到ping不通的情况 ping不通的原因有很多 比如路由设置问题 比如网络问题 以下列出几点原因 1 太心急 即网线刚插到交换机上就想Ping通网关 忽略了生成树的收敛时间 当然 较新的交换机都支持快速生成树 或者有的管理
  • 搭建OpenVpn

    由于个人需求 需要科学上网 就在ucloud买了一个100块一年的服务器 不过如果拿来访问openai的chatgpt在线版还是不行 因为ucloud的ip段因为大量访问 所有已经被封掉了 很多有限制的网站都不行 网上相关的文章已经有很多了
  • shader- 之高光反射

    Shader Shadertest test1Shader Properties Diffuse Diffuse Color 1 1 1 1 SubShader Tags RenderType Opaque 顶点 片元着色器代码需要卸载pa
  • Python人工智能学习路线(长篇干货)

    本文篇幅较长 干货较多 建议收藏慢慢看 前言 谈到人工智能 AI 算法 常见不外乎有两方面信息 铺天盖地各种媒体提到的高薪就业 贩卖课程 知乎上热门的算法岗 水深火热 灰飞烟灭 的梗 贩卖焦虑 其实 这两方面都是存在的 但都很片面 这里不加

随机推荐

  • 【Blender】我的第一个3D模型--马克杯(附教程)

    渲染图 Blander导出gltf插件 https github com Kupoman blendergltf 图文教程 对着正方体按X 确定删除默认的正方体 按Shitft A 快捷键 创建一个圆环 按TAB 键 进入编辑模式 再按E
  • 盒子模型和box-sizing属性

    1 前言 今天被杭州有赞的前端面试官面了 很多问题一知半解 主要原因还是因为我这几个月大多数时间都在写项目 平常学习也是主要以框架为主 很多基础知识都遗忘了 从这篇文章开始 我会记录 学习和研究面试中遇到的问题 当然 一般都是关于前端开发的
  • 移动数据网络类型是nr_5G(NR)网络中小区接入控制

    无线接入控制是一种针对话务拥塞的处理机制 通过限制移动设备向基站的连接请求 保护和保证紧急呼叫等关键通信的成功接入 无线侧可控制接入的方法有两种 1 终端侧 接入控制方式 在向基站移动设备发送任何连接请求之前 终端 需读取广播消息 基站 识
  • 小程序全局悬浮窗_微信小程序悬浮窗弹出怎么实现?

    微信小程序悬浮窗弹出怎么实现 很多的微信小程序管理员会在微信小程序界面开发微信小程序悬浮窗弹出功能 接下来小编会为大家介绍微信小程序悬浮窗弹出关注实现的全部步骤哦 微信小程序悬浮窗弹出怎么实现 微信小程序悬浮窗弹出的效果如下 微信小程序悬浮
  • Android开发者必备工具-常见Android模拟器(MuMu、夜神、蓝叠、逍遥、雷电、Genymotion...)

    模拟器的用途介绍 作为一名Android开发者 模拟器是我们调试和测试应用必备的神器 模拟器主要有以下用途 第一个是用于游戏 游戏玩家可以在他们的电脑上使用模拟器来让一些游戏更容易玩 他们不必依赖设备的电池寿命 借助于键盘 鼠标以及更大的屏
  • unity下简易摇杆实现

    using System Collections using System Collections Generic using UnityEngine using UnityEngine UI using UnityEngine Event
  • 华为OD机试 - 战场索敌 - 深度优先搜索dfs算法(Java 2023 B卷 100分)

    目录 一 题目描述 二 输入描述 三 输出描述 四 深度优先搜索dfs 五 解题思路 六 Java算法源码 七 效果展示 1 输入 2 输出 3 说明 4 如果增加目标敌人数量K为5 5 来 上强度 华为OD机试 2023B卷题库疯狂收录中
  • 后台管理页面,jqGrid框架使用

    之前做后台管理页面是用的 jquery LayUI 样式什么的 分页表格啊 表单之类的全是LayUI搞定 不过现在觉得 LayUI还是有点混乱 然后最近在做一个新的后台管理页面 是用的 jquery jqGrid bootstrap fa
  • weblogic 任意文件上传漏洞复现(CVE-2018-2894)

    weblogic 任意文件上传漏洞复现 CVE 2018 2894 漏洞介绍 WebLogic管理端页面 ws utc begin do ws utc config do下可上传任意getshell 复现环境 vulhub的docker环境
  • 可以新建文本的管理器_「通达信」自定义数据管理器的制作方法

    自定义数据管理器制作的数据可以实现在板块中 K线主图上显示我们制作的数据 对于记性不好的股友起到很好的提醒作用 非常使用 譬如下图中在板块中显示你自定义的数据 调出路径 功能 公式系统 自定义数据管理器 如下图 打开 自定义数据管理器 面板
  • Java注解:Java注解的基本认识

    Java的注解从1 5就有了 算不上新特性 应该算是 老特性 基本业务代码写的时候也可以说是 最熟悉陌生人 我们最起码会经常用到spring的注解来开发 比如说我们定一个 service来作为我们处理逻辑 实现服务接口的 但是可能会对自己使
  • 9 万字 208 道 Java 经典面试题总结 (附答案), 看到就是赚到

    前言 最近有很多粉丝问我 有什么方法能够快速提升自己 通过阿里 腾讯 字节跳动 京东等互联网大厂的面试 我觉得短时间提升自己最快的手段就是背面试题 最近总结了Java常用的面试题 分享给大家 希望大家都能圆梦大厂 加油 下面篇幅较长 有需要
  • rosserial_arduino的安装及使用

    本文主要是使用rosserial arduino包 可以通过msp430launchpad for arduino IDE直接使用ROS 此ide和audrino ide 的使用方法大同小异 rosserial提供了一个通信协议 它通过ar
  • matlab pcacov排序,matlab中pcacov这个命令的作用???

    满意答案 5a3d010 2013 09 12 采纳率 43 等级 12 已帮助 16369人 pcacov Principal components analysis PCA using the covariance matrix Syn
  • JS中原型对象中的constructor的作用?

    最近被同事问道一个问题 function Father this color red green function Child this test 1 Child prototype new Father let instance new
  • Linux内核配置——menuconfig

    1 menuconfig介绍 menuconfig的作用是提供一个图像化的界面去配置内核 也就是修改 config文件 其实你直接去修改 config文件 不用menuconfig也是可以的 但是 config里的配置项太多了 靠人根本记不
  • Maven 设置仓库地址

    修改本地仓库地址 maven 用来管理我们的 Java 第三方库 我们需要设置仓库的本地地址来存放这此第三方库 打开 Maven 目录下的配置文件 apache maven 3 5 0 conf settings xml 找到 标签
  • 光纤信号衰减的原理及分析

    光纤信号衰减是指随着光信号在光纤中传输的距离增加 光信号的强度逐渐减弱的现象 光纤信号衰减的原理主要包括以下两个方面 1 光纤的损耗 光纤在传输过程中会出现一定程度的损耗 主要包括以下几种 1 吸收损耗 光信号在传输过程中会被光纤材料吸收
  • js的FileSaver.saveAs()方法:监听保存进度,进度条等方法

    在使用FileSaver saveAs保存表格到本地时 如果想要获取导出 保存进度可以如下操作 FileSaver js的saveAs 方法是一个异步操作 它将文件保存到用户设备上 在调用saveAs 方法后 可以通过使用回调函数 Prom
  • 【SSM】【4】前端后端数据流转

    前后端数据流转图 业务流转图 前端控制器接受用户请求响应 doJsonRequest ursuser login json json function data if getUrlParam session 1 history back e