SpringBoot+MyBatis+MySql从头到尾完成一个电商项目(五、用户注册、登录)

本文介绍了如何使用SpringBoot、MyBatis和MySQL完成一个电商项目的用户注册和登录功能。从获取短信验证码的接口编写,到前后端分离的注册界面实现,再到用户注册接口开发,最后实现用户登录功能,全程详细讲解每个步骤,并解决了密码表与用户信息表关联的问题。
摘要由CSDN通过智能技术生成

1、码云新建一个分支user-register

2、用户获取短信验证码otp的接口编写:

首先在UserController中注入HttpServletRequest这样我们可以拿到Session

然后写接口如下:

然后启动程序进行测试结果如下:

再看一下我们的控制台打印出来了电话和验证码,这里只是测试,正规的企业开发不能暴漏用户的验证码!!

3、下面我们通过前后端分离的方式把前端的注册界面做出来:

这里我们整合前后端使用的是thymeleaf,先去application,properties中添加如下设置:

然后开始前端页面的书写:

在static包下新建一个getotp.html的网页如下图:

这里是界面的编写,可以看一下效果如下:

然后下面是js代码的书写,这里我们使用jquery采用ajax进行前后端的传值!

<script>
    // 所有的jquery的动态绑定元素需要页面渲染完成以后才可以操作
    jQuery(document).ready(function () {

        //绑定otp的点击事件,用于向后端发送获取验证码的实现
        $("#getotp").on("click",function () {

            var telphone=$("#telphone").val();
            if(telphone==null || telphone==""){
                alert("手机号不能为空");
                //我们使用的是ajax传值,所以要捕获点击事件,不让它冒泡排序到上一层
                return false;
            }
            $.ajax({
                //头
                type:"POST",
                contentType:"application/x-www-form-urlencoded",
                url:"http://localhost:8090/user/getotp",

                //传参
                data:{
                    //获取用户输入的telphone
                    "telphone":$("#telphone").val(),
                },
                //成功的回调函数
                //data是后端输出的json数据
                //与后端的@CrossOrigin(allowCredentials = "true",allowedHeaders = "*")相互呼应
                xhrFields:{withCredentials:true},
                success:function (data) {
                    if(data.status==="success"){
                        alert("otp已经发送到你的手机上,请注意查收");
                        window.location.href="file:///H:/fondend/miaosha/src/main/resources/static/register.html";
                    }else {
                        alert("otp发送失败,原因为"+data.data.errMsg);
                    }

                },
                //失败的回调函数
                error:function (data) {
                    alert("otp发送失败,原因为"+data.responseText);
                }
            });
            return false;
        });

    });

</script>

在这里跟大家解释一下逻辑顺序:

首先当用户输入手机号然后点击确定后会出发jquery的点击事件的方法,然后可以使用$("#telphone").val()获取用户输入的手机号进行判断手机号是否为空。如果手机号不为空,使用ajax进行前后端的传值,ajax传值包括4个部分,一个是 头 部分如下图:

这里type是指传值的方式,包括GET  PUT  POST等形式,

contentType是传值的格式,

url是指传值的接口,这里写的是我们在上面写好的获取otp的接口,注意在url里面不要写参数,只写url。

一个是传参部分,这里前端传给后端的值是用户输入的手机号,用来于接口url进行组合获取信息;如下图:

第三个部分是前后端传值成功的函数:

这里如果传值成功,会将页面跳转至用户注册界面进行注册。

第四部分是传值失败的回调函数如下图

Spring Boot + MyBatis + MySQL 实现登录注册一个常见的企业级Java Web应用架构,主要包含以下几个步骤: 1. **环境配置**: - 安装并配置Java、Spring Boot、MyBatisMySQL数据库。 - 在Spring Boot项目中引入相应的依赖,如`spring-boot-starter-data-jpa`(用于JPA支持)和`spring-boot-starter-data-mysql`(用于MySQL数据库连接)。 2. **数据模型设计**: - 创建用户表(User),包含字段如id(主键)、username、password等。 3. **服务层接口**: - 定义UserRepository接口,继承自JpaRepository或MyBatis的Mapper接口,用于操作数据库。 - 创建UserService,包含登录和注册方法,调用Repository方法实现业务逻辑。 4. **登录注册实现**: - 登录方法:接收用户输入的用户名和密码,从数据库查询是否存在该用户,验证密码是否正确。 - 注册方法:接受新用户的注册信息,对输入的数据进行验证(如检查用户名是否唯一),然后存入数据库。 5. **验证码、密码加密**: - 使用Spring Security处理密码安全,可能涉及到验证码和密码加密(如bcrypt或更安全的算法)。 6. **前端展示**: - 使用HTML、CSS和JavaScript构建前端页面,包括表单提交、错误提示等。 7. **异常处理**: - 编写全局异常处理器,处理可能出现的各种异常,并提供友好的错误信息。 8. **测试**: - 编写单元测试和集成测试,确保功能的正确性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值