用户管理系统(2)

news2024/11/16 15:39:09

2.实现添加功能:有两个和后端交互的接口

根据用户的身份显示登陆界面:

进行插入操作:

1)在我们的前端直接获取到用户名,密码,确认密码,年龄,QQ,邮箱,判断他们是否为空,检测密码和确认密码是否一致

2)将这些参数传递到我们的后端,添加操作成功了,我们就返回一个1,失败我们就返回一个数字-1

3)在这里面我们还是要注意,我们的有几个控件

1.比如说我们想要获取到性别这样的控件(input type=radio)

<input id="man" type="radio" name="sex" value="男" checked="checked">男
<input id="women" type="radio" name="sex" value="女">女
当我们的单选框中的name属性一样的时候,我们才可以进行单选

该怎们进行实现呢? 

针对上面的控件:

jQuery("input[name=sex]:checked").val();
1)先通过name=sex来进行获取到input的radio控件
2)checked拿到选中的控件
3)val()方法可以拿到性别信息是因为input里面有value属性

2.我们还要要拿到籍贯的控件:select标签,里面有id属性

<select name="address" id="address" class="form-control">
    <option value="北京">北京</option>
    <option value="上海">上海</option>
    <option value="广州">广州</option>
</select>
jQuery("#address").val-----针对select标签来进行设置
根据id来进行取值

 当我们的用户进行添加操作的时候,后端在继续进行插入的时候,如果前端请求的参数User对象,当User对象的IdAdmin是1的时候,表明当前用户是管理员,他要进行添加管理员操作,我们要验证当前登录的用户是否是管理员!!!!我们就通过HttpSession中的Session对象来进行判断:

 <div class="form-group" id="adminDiv" style="display: none;">
        <label for="email">管理员:</label>
        <input id="admin_yes" type="radio" name="isadmin" value="1"/>是
        &nbsp;&nbsp;&nbsp;
        <input id="admin_no" type="radio" name="isadmin" value="0" checked="checked"/>否
 </div>
//上面有一个display:none的属性表示不会进行显示里面的内容

前端代码:向那些非必传的参数直接进行获取到val()就可以了,但是仍然进行校验的比如说用户名和密码,我们还是需要先获取到控件的

div class="form-group" style="text-align: center">
<input id="btn_sub" class="btn btn-primary" type="button" value="提交" onclick="mysub()"/>
<input id="btn_back" class="btn btn-default" type="button" value="返回" onclick="location.href='list.html'"/>
    </div>

<script>
    function mysub(){
    var username=jQuery("#username");
    var password=jQuery("#password");
    var password2=jQuery("#password2");
    var sex=jQuery("input[name=sex]:checked").val();
    var age=jQuery("#age").val();
    var address=jQuery("#address").val();
    var qq=jQuery("#qq").val();
    var email=jQuery("#email").val();
    var isAdmin=jQuery("input[name=isadmin]:checked").val();//这里面表示被添加为用户的认识否是超级管理员
    //1.对于那些需要进行登录权限的,先获取到控件,对于那些不需要进行监测的,直接获取到内容
    //1.先进行校验用户名和密码是否为空,还有确认密码
    if(jQuery.trim(username.val())==""){
        alert("用户名为空");
        username.focus();
         return;
    }
    if(jQuery.trim(password.val())==""){
        alert("您当前输入的密码是空");
        username.focus();
        return;
    }
    if(jQuery.trim(password2.val())==""){
        alert("您当前输入的确认密码是空");
        username.focus();
        return;
    }
    //2.判断密码和确认密码是否相同
    if(jQuery.trim(password.val())!=jQuery.trim(password2.val())){
        alert("您当前输入的密码和确认密码不相同");
        username.focus();
        return;
    }
    //3.向后端发送添加用户的请求
    $.ajax({
        type:"POST",
        url:"Java100/addUser",
        contentType:"application/json;charset=utf-8",
        data:JSON.stringify(
           {
            "userName":username.val(),
            "passWord":password.val(),
            "sex":sex,
            "age":age,
            "address":address,
            "qq":qq,
            "email":email,
            "isAdmin":isAdmin,
     } ),
    success:function(data,status){
            if(data!=null&&data.data>0){
                alert("恭喜添加成功");
                if(confirm("是否继续添加?")){
                    location.href=location.href;
                }else{
                    location.href="list.html";
                }
            }else{
                alert("您的用户名重复");
            }
        }
    });
}

实现修改操作:

先要把对应用户的信息展示出来,所以说会进行查询,查询出来之后再给用户进行展示,展示完成之后用户再去进行修改,修改完成之后在进行提交,提交修改完成之后在跳转到列表页

当前我们的项目是不能够修改超级管理员的,况且我们的登陆名字是不可以进行修改的

1)从我们的url中获取到UserID(前端),根据location.search来进行查询:

错误代码
console.log(getParamValue());
    function getParamValue(){
        //获取到前端的url参数
        var value="";
        var queryString=location.search;
        if(location.search==null){
            return "";
        }
       var querys=queryString.substring(1,queryString.length);//这个操作是去掉queryString中的?
        console.log(querys);
        var kvs=querys.split("&");
       for(let data of kvs){
        var str=data.substring("=");
        for(let message of str){
            if(message=="userID"){
                 return str[1];
            }
        }
        return "";
       }
    }

2)向后端发送ajax请求,展示信息(展示用户信息,浏览器进行循环拼接页面)

3)用户进行编辑信息再去提交信息(这时候又发送了一个ajax请求)

涉及到的安全问题:

再进行展示页面的时候先要获得用户登录权限的校验,还有查看权限的校验普通用户是不能进行编辑超级管理员的信息的

在我们进行编辑和提交信息的时候也是要做上面两个步骤的校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker 第二次学习笔记

一、dockers简介 docker官网&#xff1a;https://www.docker.com 1.1 docker定义 docker是一种容器化技术&#xff0c;用来更好的构建和发布应用。 二、docker安装 2.1 方法1 centos7.x系统的安装 官网安装步骤&#xff1a;https://docs.docker.com/engine/install/cento…

IDEA中,maven项目下,lombok插件 ,添加lombok.jar, Maven项目下lombok依赖配置

IDEA中&#xff0c;maven项目下&#xff0c;lombok插件 &#xff0c;添加lombok.jar, Maven项目下lombok依赖配置 Maven 项目的创建 在IDEA 21版中&#xff0c;Maven项目无需下载其他版本&#xff0c;查看有无Maven&#xff0c;如果没有下载 安装 首先打开IDEA &#xff0c;点…

​ 详解Linux内核通信-proc文件系统

使用 /proc 文件系统来访问 Linux 内核的内容&#xff0c;这个虚拟文件系统 在内核空间和用户空间之间打开了一个通信窗口&#xff1a; /proc 文件系统是一个虚拟文件系统&#xff0c;通过它可以使用一种新的方法在 Linux内核空间和用户间之间进行通信。在 /proc 文件系统中&…

MySQL事务和索引

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;MySQL &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录索引概念使用索引在MySQL中的数据结构事务概念mysql的隔离级别索引 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所…

一图看懂,阿里云飞天企业版如何支持政企数智创新

杭州&#xff0c;2022年11月5日 – 今日&#xff0c;在云栖大会专有云技术和应用实践论坛&#xff0c;阿里云重磅发布飞天企业版在建云、管云、用云方面的全面升级&#xff0c;并邀请行业专家、政企客户代表和合作伙伴面向未来十年共话新一代政企IT发展趋势&#xff0c;分享阿里…

行业洞察 | AI贩卖的焦虑,我们该买单吗?

图片来源Midjourney Showcase 在过去的几个月里&#xff0c;人工智能生成的艺术在受欢迎程度和可访问性方面都经历了快速增长。随着DALL-E、Midjourney和Stable Diffusion等引擎刺激了 AI 生成的艺术品在在线平台上的大量涌入。 此前&#xff0c;一位美国39岁游戏设计师&#…

测试行业3年经验,面试想拿 15K,HR说你只值 7K,该如何回答或者反驳?

面试最尴尬的不是被拒绝&#xff0c;而是直接说你不值那个价格... 最近朋友在面试的时候&#xff0c;HR 突然来了句&#xff1a;你只值 7K。朋友后面和我说了这个事。我想如果是我处在这种情况下&#xff0c;自己并不能很好地回答或者反驳。不知道大家会怎么回答或者反驳&…

深入浅出了解MYSQL8特性注入是什么

前言 今天给大家带来的是MYSQL8版本的特性注入&#xff0c;说起SQL注入大家一定不陌生&#xff0c;可是你有没有想过&#xff0c;当SQL注入中最关键的函数SELECT被过滤后&#xff0c;我们要如何去执行SQL语句呢&#xff0c;这就是本文要讲的内容&#xff0c;即利用MYSQL8版本的…

智慧人社解决方案-最新全套文件

智慧人社解决方案-最新全套文件一、建设背景二、思路架构三、建设方案1、全局性数据整合2、综合数据分析平台3、一体化数据管控四、获取 - 智慧人社全套最新解决方案合集一、建设背景 智慧人社平台以建设智慧大社保服务体系为目标&#xff0c;全面践行“互联网&#xff0b;人社…

python基于PHP+MySQL的大学生交友社交网站

近年来,大学生的数量在逐步的增加,为了能够让这些大学生有一个更好的交友环境,需要创建一个基于大学生的社交交友网站。这样可以拉近彼此大学生之间的感情,让他们可以更好的进行学习和交流。 PHP大学生交友社交网站通过PHP&#xff1a;MySQL进行开发,分为前台和后台两部分,通过…

[附源码]SSM计算机毕业设计餐厅卫生安全系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

mariadb10.8 主主同步 相互复制

1. 配置说明 操作系统&#xff1a;CentOS7 CPU指令集&#xff1a;x86_64 host1 主机&#xff1a; 2 core 2G 40GIP&#xff1a;192.168.0.98 host2 主机&#xff1a; 2 core 2G 40GIP&#xff1a;192.168.0.166 2. 数据库安装 见 MariaDB官方下载文档 https://mariadb.or…

mysql“数据不存在插入,存在则更新”实现

参考文章:Mysql:如果数据存在则更新&#xff0c;不存在则插入 场景 工作中有遇到需要配置一些指定的字段数据&#xff0c;但数据量大&#xff0c;不清楚之前是否有配置过&#xff0c;正确的思路应该是如果有这条数据了&#xff0c;那么更新数据的值&#xff0c;如果没有这条数…

股票行情接口level2的盘口信息和level1有哪些区别?

普通的行情接口软件会有价格曲线、五档盘口、分时成交等等这些行情数据&#xff0c;但是股票行情接口level2所能够提供的行情数据远远不止这些&#xff0c;level2顾名思义其实就是level1的高配版&#xff0c;那么它包含的数据相对于比普通行情接口的会更精细也更丰富&#xff0…

华为 x 香格里拉集团|品质网络守护数字旅程

作者 | 曾响铃 文 | 响铃说 酒店行业正在快速推动数字化&#xff0c;其目标是对内提升酒店管理效率&#xff0c;对外提升宾客入住体验&#xff1b;而网络作为整个数字化变革的联接底座&#xff0c;迫切需要进行升级和优化。以香格里拉集团为例&#xff0c;作为成立超过半个世…

微信怎么使用手机号码收款转账?

微信怎么使用手机号码收款&#xff1f; 1、微信手机号码收款方&#xff0c;打开微信钱包&#xff0c;并点击钱包进入&#xff1b; 2、在微信钱包找到支付设置&#xff0c;并点击进入支付设置&#xff1b; 3、在微信钱包支付设置内&#xff0c;开启允许通过手机号向我转账&…

力荐,京东首席架构师:亿级流量架构的核心技术文档免费分享

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

大厂敲门砖,在阿里工作十年的朋友,总结出这份java面试必看手册

眼看着时间一天一天地过去&#xff0c;距离过年也就二个月的日子了&#xff0c;还有多少程序员是两眼摸黑不知道面试要做哪些准备的朋友&#xff1f; 还不知道进大厂需要复习哪些资料的朋友可以看过来&#xff0c;知道有些朋友会没什么准备跟无头苍蝇一样所以博主早在一个月前…

[附源码]计算机毕业设计JAVA镐京学院教务管理系统

[附源码]计算机毕业设计JAVA镐京学院教务管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

Python文件操作

文章目录文件操作打开文件关闭文件读文件写文件使用上下文管理器文件操作 打开文件 open函数 open函数的作用是打开一个文件&#xff0c;并返回打开的文件对象。该函数的常见调用方式如下&#xff1a; f open(file, mode, encoding)参数说明&#xff1a; file&#xff1a;待…