简单的用户登录,注册,与退出

文章目录

  • 前言
  • 一、登录界面
    • 1.HTML部分
    • 2.CSS部分
  • 二、javascript部分
      • /Js/为存放路径
      • 登录按钮
      • 注册按钮
      • 退出按钮
  • 三、后端部分
      • SysUser实体类
      • SysUser控制类
      • SysUser服务层
      • SysUser服务实现层
      • SysUser访问层
      • mybatis部分
  • 四、ResponseCode部分
  • 五、maven部分
  • 总结


前言

HTML,让生活更奇妙🤣

接下来介绍的是简单的用户登录,注册,与退出


提示:以下是本篇文章正文内容,下面案例可供参考

一、登录界面

1.HTML部分

<div id="modal" class="c2"><form name="myForm" ><p class="c3">用户名 :<label><input type="text" autocomplete="current-username" name="username" id="name1"></label></p><p class="c3">密  码 :<label><input type="password" autocomplete="current-password" name="password" id="pwd1"></label></p><p class="c3">称呼  :<label><input type="radio" name="identity" value="guest" checked="checked" id="guest">用户<input type="radio" name="identity" value="merchant" id="merchant">商家</label></p><p class="c3"><input type="button" value="确认" id="submit1" onclick="toLogin()"><input type="button" value="注册" onclick="toRegister()"><input type="button" value="退出" onclick="exit()"></p></form>
</div>

2.CSS部分

.c2{background-color: white;position: fixed;width: 400px;height: 300px;top: 50%;left: 50%;z-index: 3;margin-top: -150px;margin-left: -200px;background-image: url("https://img.zcool.cn/community/011c805c47cab9a801203d222422ac.png@1280w_1l_2o_100sh.png");font-size: 18px;font-family: 微软雅黑, sans-serif;
}#modal>p{margin-left: 80px;
}#modal .c3{line-height: 80px;
}#modal>p>input{margin-left: 40px;font-size: 18px;background-color: gold;
}

CSS部分需要根据实际情况而定

在这里插入图片描述

二、javascript部分

注意在前端页面引入这个Js

<script type="text/javascript" src="/Js/jquery.min.js"></script>

/Js/为存放路径

代码如下(示例):

登录按钮

function toLogin() {var name1=document.getElementById("name1").value;var pwd1=document.getElementById("pwd1").value;var call=$('input[name="identity"]:checked').val();var sysUser={"username":name1,"pwd":pwd1,"permission":call};$.ajax({url:"/sysUser/login",type:"post",async:true,contentType: "application/json",data:JSON.stringify(sysUser),dataType:"json",success: function (response) {if (response.code === "201") {console.log(response.data)alert(response.msg);localStorage.setItem("username",response.data.username);localStorage.setItem("userRole",response.data.permission);location.href="/index?"+response.data.username;} else {alert(response.msg);}},error: function (response) {alert(response.msg);}});
}

注册按钮

function toRegister(){var name1=document.getElementById("name1").value;var pwd1=document.getElementById("pwd1").value;var call=$('input[name="identity"]:checked').val();var sysUser={"username":name1,"pwd":pwd1,"permission":call};$.ajax({url:"/sysUser/register",type:"post",async:true,contentType: "application/json",data:JSON.stringify(sysUser),dataType:"json",success: function (response) {if (response.code === "202") {alert(response.msg);location.href="/index";} else {alert(response.msg);}},error: function (response) {alert(response.msg);}});
}

退出按钮

function exit(){localStorage.removeItem("username");var nickname=document.getElementById("nickname");nickname.innerHTML=""location.href="/index"
}

三、后端部分

SysUser实体类

public class SysUser implements Serializable {private static final long serialVersionUID = 574667272665458058L;private Integer uId;private String username;private String pwd;private String permission;public Integer getUId() {return uId;}public void setUId(Integer uId) {this.uId = uId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getPermission() {return permission;}public void setPermission(String permission) {this.permission = permission;}}

SysUser控制类

@RestController
@RequestMapping("sysUser")
public class SysUserController {@Resourceprivate SysUserService sysUserService;//登录@RequestMapping(value = "/login")@ResponseBodypublic ResponseData toLogin(@RequestBody SysUser sysUser,String code) {return sysUserService.toLogin(sysUser,code);}//注册@RequestMapping(value = "/register")@ResponseBodypublic ResponseData toRegister(@RequestBody SysUser sysUser,String code){return sysUserService.toRegister(sysUser,code);}
}

SysUser服务层

public interface SysUserService {ResponseData toLogin(SysUser sysUser, String code);SysUser insert(SysUser sysUser);ResponseData toRegister(SysUser sysUser, String code);
}

SysUser服务实现层

@Service("sysUserService")
public class SysUserServiceImpl implements SysUserService {@Resourceprivate SysUserDao sysUserDao;@Overridepublic ResponseData toLogin(SysUser sysUser, String code) {String username = sysUser.getUsername();//将提交的密码进行加密处理String password=new Md5Hash(sysUser.getPwd(),"wxy",10).toString();String user_role=sysUser.getPermission();if (username==null && password==null){return new ResponseData(ResponseCode.FAIL05,sysUser);}if (username==null&&!password.equals("")){return new ResponseData(ResponseCode.FAIL06,sysUser);}if (!(username ==null) &&password==null){return new ResponseData(ResponseCode.FAIL07,sysUser);}if (!Objects.equals(sysUserDao.findName(username), username)){return new ResponseData(ResponseCode.FAIL01,sysUser);}if(!sysUserDao.findPwdByName(username).equals(password)){return new ResponseData(ResponseCode.FAIL02,sysUser);}if (sysUserDao.findPwdByName(username).equals(password) && sysUserDao.findPermissionByName(username).equals(user_role)){return new ResponseData(ResponseCode.SUCCESS02,sysUser);}if (!sysUserDao.findName(username).equals(username) && !sysUserDao.findPwdByName(username).equals(password)){return new ResponseData(ResponseCode.FAIL08,sysUser);}if (!sysUserDao.findPermissionByName(username).equals(user_role)){return new ResponseData(ResponseCode.FAIL09,sysUser);}return new ResponseData(ResponseCode.SUCCESS01,sysUser);}@Overridepublic ResponseData toRegister(SysUser sysUser, String code) {if (sysUser.getUsername()==null|| sysUser.getUsername()==""){return new ResponseData(ResponseCode.FAIL06,sysUser);}if (sysUser.getPwd()==null||sysUser.getPwd()==""){return new ResponseData(ResponseCode.FAIL07,sysUser);}if (sysUser.getPermission()==null){return new ResponseData(ResponseCode.FAIL10,sysUser);}if (sysUserDao.findName(sysUser.getUsername())!=null){return new ResponseData(ResponseCode.FAIL03,sysUser);}//将提交的密码进行加密处理String newPwd = new Md5Hash(sysUser.getPwd(), "wxy", 10).toString();//将生成的加密密码存到sysUser里sysUser.setPwd(newPwd);//添加到数据库中sysUserDao.insert(sysUser);return new ResponseData(ResponseCode.SUCCESS03,sysUser);}
}

SysUser访问层

public interface SysUserDao {//添加用户int insert(SysUser sysUser);//查询单个用户或者商家的名称SysUser findByName(String username);//查看是否存在用户String findName(String username);//通过名称查询密码String findPwdByName(String username);//通过名称查询权限String findPermissionByName(String username);
}

mybatis部分

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.online.dao.SysUserDao"><resultMap type="com.example.online.entity.SysUser" id="SysUserMap"><result property="uId" column="u_id" jdbcType="INTEGER"/><result property="username" column="username" jdbcType="VARCHAR"/><result property="pwd" column="pwd" jdbcType="VARCHAR"/><result property="permission" column="permission" jdbcType="VARCHAR"/></resultMap><!--添加用户--><insert id="insert">insert into `online-restaurant`.sys_user(username, pwd, permission)values (#{username}, #{pwd}, #{permission})</insert><!--通过主键删除--><delete id="deleteById">delete from `online-restaurant`.sys_user where u_id = #{uId}</delete><!--查询所有用户或者商家--><select id="queryAllName" resultMap="SysUserMap">select * from `online-restaurant`.sys_user</select><!--查询单个用户或者商家的名称--><select id="findByName" resultMap="SysUserMap">select u_id,username,pwd,permission from `online-restaurant`.sys_user where username=#{username}</select><!--查看是否存在用户--><select id="findName" resultType="java.lang.String">select username from `online-restaurant`.sys_user where username=#{name}</select><!--通过名称查询密码--><select id="findPwdByName" resultType="java.lang.String">select pwd from `online-restaurant`.sys_user where username=#{username}</select><!--通过名称查询权限--><select id="findPermissionByName" resultType="java.lang.String">select permission from `online-restaurant`.sys_user where username=#{username}</select></mapper>

四、ResponseCode部分

    SUCCESS01("200","请求成功"),SUCCESS02("201","登录成功"),SUCCESS03("202","注册成功"),FAIL00("800","网络请求错误"),FAIL01("801","账号不存在"),FAIL02("802","密码错误"),FAIL03("803","账号已存在"),FAIL04("804","密码不为空"),FAIL05("805","请输入账号和密码"),FAIL06("806","请输入账号"),FAIL07("807","请输入密码"),FAIL08("808","账号和密码都错误"),FAIL09("809","称呼名不对"),FAIL10("810","请选择称呼"),

五、maven部分

<!--MD5的编码引入依赖--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.4.0</version></dependency>

总结

HTML,让生活更奇妙🤣

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3. 用户/管理员注册登录 - 如何使用个人Facebook来登录门户网站

Facebook也是使用OAuth2.0协议的几个Provider之一&#xff0c;可以将它放到我们的Protal中使用&#xff0c;下面我们将通过配置Prodiver来实现使用个人Facebook账户登陆我们的Power Protal。 1. 首先登录到我们的Power Apps&#xff0c;在左侧应用栏中选择应用&#xff0c;找到…

ChatGPT,你了解UWB吗?

说到最近网上最火的科技名词&#xff0c;非“ChatGPT”莫属。推出仅5天&#xff0c;用户超100万&#xff0c;上线两个月&#xff0c;全球活跃用户破1亿。上知天文下晓地理&#xff0c;能做题、会写诗、懂代码、几秒钟撰写论文&#xff0c;可以聊天交互……近日&#xff0c;一款…

留学生ChatGPT使用场景有哪些?用对了,学习效率事倍功半

ChatGPT的使用可谓是当今留学生必须掌握的内容之一。让我看看&#xff0c;应该没人还不知道如今hit爆的人工智能ChatGPT吧&#xff1f;&#xff01;留学生正确使用ChatGPT可以帮助你解决许多问题&#xff0c;包括语言障碍、文化差异和学习压力等等。今天&#xff0c;求真老师就…

微信小程序之三步简单上手如何使用后端提供的接口

一.在js中的data对象中定义一个用于接收数据的空数组 这个数组我命名为resData。 二.在js中用wx.request发起网络请求 在测试的时候可以先把不校验合法域名给勾选上 wx.request({//这里的url用的是新视觉实训的一个测试接口url: https://edu.newsight.cn/wxList.php,//succe…

微信小程序开发者账号注册以及开发者工具的使用

打开微信小程序开发者平台官网 https://mp.weixin.qq.com/ 点击注册 选择小程序 接下来就是填写个人信息进行认证 在账号申请好后&#xff0c;我们下载一个微信开发者工具 进入官网https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据电脑对应…

ChatGPT可以一本正经的胡说八道,其他AI可以吗?

目录 1.ChatGPT是什么&#xff1f; 2.它是哪个公司开发的&#xff1f; 3.TA会做什么&#xff1f; 写文章 写代码 聊天 4.总结 1.ChatGPT是什么&#xff1f; ChatGPT是由人工智能实验室OpenAI上线的一款由 聊天机器人模型新模型&#xff0c;暂时网页版允许用户免费使用&…

CHATGPT是新的“搜索引擎终结者”吗?百度是否慌了

ChatGPT 以其非凡的自然语言处理 &#xff08;NLP&#xff09; 能力和清晰的响应风靡全球&#xff0c;有望带来一场重大的技术革命。在不知不觉中&#xff0c;叙事转向了ChatGPT与百度的对决&#xff0c;因为来自OpenAI的智能和健谈的聊天机器人已经慢慢获得了“潜在的百度终结…

搜索引擎已死?ChatGPT访问量创新高:面前只剩三家

ChatGPT上月全球访问量 17.6 亿次&#xff0c;已达到谷歌的2%&#xff01; 根据SimilarWeb统计&#xff0c;已超越必应、鸭鸭走DuckDuckGo等其他国际搜索引擎。 挡在前面的除了谷歌&#xff0c;就只剩中国的百度和俄罗斯的Yandex了。 如果把谷歌从图表中拿走更容易观察。整个…

ChatGPT 究竟在做什么?它为何能做到这些?(2)

机器学习和神经网络的训练 到目前为止&#xff0c;我们一直在讨论那些 “已经知道” 如何完成特定任务的神经网络。但是&#xff0c;神经网络之所以如此有用&#xff08;估计也是在大脑中&#xff09;&#xff0c;是因为它们不仅是可以完成各种任务&#xff0c;而且可以逐步 “…

Python 输入信息获得ChatGPT 机器人

Python 输入信息获得ChatGPT 机器人

WhatsApp 电脑版如何下载安装?

WhatsApp是全球第一大通讯软件&#xff0c;超过20亿用户&#xff0c;在国外的普及程度类似于国内的微信&#xff0c;是外贸业务必备工具之一。 越来越多的企业用WhatsApp取代Email&#xff0c;作为外贸客户沟通的第一工具。 WhatsApp电脑版怎么下载安装&#xff1f; WhatsAp…

30 岁“古董”电脑,因 ChatGPT 被迫“复工”:在 Windows 3.1 里用上 ChatGPT!

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChatGPT 问世的这半年&#xff0c;我们目睹了许多由它掀起的变革和争议&#xff0c;见证了越来越多大模型的崛起&#xff0c;同时推测着未来的发展趋势……但万万没想到&#xff0c;这股名为 ChatGPT…

大陆和香港手机号正则校验

大陆和香港手机号正则校验 在日常的开发中&#xff0c;经常会遇到需要校验手机号的情况&#xff0c;这里列举大陆和香港的手机校验。 大陆手机号匹配校验 /*** 大陆手机号码11位数&#xff0c;匹配格式&#xff1a;前三位固定格式后8位任意数* 此方法中前三位格式有&#xff…

使用Foxmail收发Gmail邮件(含两部验证)

foxmail的账户添加&#xff1a; 点击右上角-选择账户管理-选择“账户”选项卡-点击“新建”-输入gmail的邮箱地址以及密码&#xff08;注意这里的密码是指没有开通gmail两部验证的密码&#xff0c;也就是邮箱密码&#xff09;&#xff0c;接着点击创建-如果不成功&#xff0c;…

用chatgpt超级写手一键批量制作符合小红书SEO逻辑的爆款标题

用chatgpt超级写手一键批量制作符合小红书SEO逻辑的爆款标题 Part1什么是小红书SEO 小红书SEO的意思是&#xff0c;是指通过优化小红书上的内容和相关元素&#xff0c;提高品牌和产品在小红书上的曝光度和搜索排名&#xff0c;以吸引更多潜在用户的搜索和关注。 Part2如何做小红…

Github学生包申请秒过经验并使用Copilot

写在前面 前提是在校学生&#xff0c;且有学校邮箱&#xff0c;当然你也得有Github账户前往学信网下载 教育部学籍在线验证报告将报告转换成英文版本&#xff0c;我用的是手机夸克自带的拍照翻译功能 具体流程 设置Github个人信息 来到 https://github.com/settings/profil…

云服务器部署开源ChatGLM-6B,让你也能拥有自己的ChatGPT

文章目录 一、背景二、服务器选型2.1. 运行要求2.2. 服务器选型 三、服务器配置3.1. 注册使用3.2. 购买服务器并安装镜像 四、部署ChatGLM4.1. Git加速配置4.2. 下载ChatGLM源代码4.3. 安装依赖4.4. 启动脚本修改4.5. 启动ChatGLM 五、使用六、对话效果七、关闭服务以及重启服务…

chatgpt赋能python:利用Python赚钱的SEO技巧

利用Python赚钱的SEO技巧 随着互联网的不断发展&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为了网站推广和在线营销中不可或缺的一环。而在这个过程中&#xff0c;Python已经成为了SEO工程师必备的技能之一。下面&#xff0c;我们将向大家介绍如何利用Python来…

chatgpt赋能python:如何利用Python兼职赚钱?

如何利用Python兼职赚钱&#xff1f; Python是一种高级的编程语言&#xff0c;但它不仅仅是用于大型企业的软件开发。Python也可以是一种非常有用的工具&#xff0c;可以用于兼职赚钱。下面我们将介绍如何利用Python技能&#xff0c;参与兼职项目来获得收入。 爬虫 Python可…

问了ChatGPT 上百个问题后,我断定ChatGPT可以重塑学习范式!

ChatGPT现在火爆&#xff0c;关于ChatGPT的热点话题有三个&#xff0c;一个是技术&#xff0c;一个是赚钱&#xff0c;一个是聊天&#xff0c;但我对这些暂时都不感兴趣&#xff0c;我只对利用ChatGPT获得知识有兴趣。 像我们这种做数据管理的知识工作者&#xff0c;是以吸收知…