这是一个使用spring boot做的一个qq邮箱注册和登录的项目。
没写前端页面,使用postman测试。有截图详细。
注册:通过输入的邮箱发送验证码,检验前端传来的验证码是否和后台生成的一致,若一致,将数据写入数据库,完成注册;
登录:通过输入的邮箱查询密码,然后比较密码是否一致,一致就是登录成功。
登录qq邮箱后,点击左上方的设置,选择账户,如下图。
然后一直往下滑,看到如下图的pop3/smtp服务,点击开启,应该会让帮定的手机号发个短信,然后会收到一个授权码,一定要好好保存,在appliction.properties配置中会用到。
下边是pom.xml中<dependencies>标签的全部依赖
<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot衣物捐赠-starter</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency> <!--web--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-mail</artifactid> </dependency> <!--mybatis--> <dependency> <groupid>org.mybatis.spring.boot</groupid> <artifactid>mybatis-spring-boot-starter</artifactid> <version>1.3.2</version> </dependency> 长江下游 <!--jdbc--> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>8.0.19</version> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-jdbc</artifactid> </dependency></dependencies>
application.properties配置文件
#邮箱配置#平台地址,这里用的是qq邮箱,使用其他邮箱请更换spring.mail.host = smtp.qq.com#改成自己的邮箱spring.mail.urname = xxxxx@qq.com#发送短信后它给你的授权码 填写到这里spring.mail.password = xxxxxx#这东西不用改spring.mail.properties.mail.smtp.ssl.enable=true##编码格式spring.mail.default-encoding=utf-8#数据库相关配置spring.datasource.driver-class-name=com.mysql.cj.jdbc.driverspring.datasource.url=jdbc:mysql://localhost:3306/email?ussl=true&characterencoding=utf-8&rvertimezone=utcspring.datasource.urname=rootspring.datasource.password=root #配置mappermybatis.mapper-locations=classpath:mapper/*.xml
数据库结构如下图
创建一个数据库email
createdatabaemail;
在email数据库创建ur表
create table `ur` ( `id` int(20) not null auto_increment, `urname` varchar(255) not null, `password` varchar(255) not null, `email` varchar(255) not null, primary key (`id`))engine=innodbauto_increment=6defaultchart=utf8;
如最上边的项目结构图。controller包是和前端对接的,mapper包中是接口,pojo是实体类,rvice层是逻辑代码,vo包是前端发送数据暂时保存。
执行流程: 使用postman发送请求,controller中会接受,然后调用rvice中的逻辑代码,rvice会调用的mapper中接口,mapper的对应的xml实现对数据库的各种操作。
3.1、urcontroller.java
package com.lu.youxiang.controller;import com.lu.youxiang.rvice.mailrvice;import com.lu.y美味汉堡ouxiang.vo.urvo;import org.springframework.beans.factory.annotation.autowired;import org.springframework.stereotype.controller;import org.springframework.web.bind.annotation.postmapping;import org.springframework.web.bind.annotation.responbody;import javax.rvlet.http.httpssion;@controllerpublic class urcontroller { @autowired private mailrvice mailrvice; @postmapping("/ndemail") @responbody public string ndemail(string email, httpssion httpssion){ mailrvice.ndmimemail(email, httpssion); return "sucess"; } @postmapping("/regist") @responbody public string regist(urvo urvo, httpssion ssion){ mailrvice.registered(urvo,ssion); return "sucess"; } @postmapping("/login") @responbody public string login(string email, string password){ mailrvice.loginin(email,password); return "sucess"; }}
3.2、urmapper.java
package com.lu.youxiang.mapper;import com.lu.youxiang.pojo.ur;import org.apache.ibatis.annotations.mapper;import org.springframework.stereotype.repository;@mapper@repositorypublic interface urmapper { /** * 注册,插入数据 * @param ur */ void inrtur(ur ur); /** * 根据邮箱查询 * @param email * @return */ ur querybyemail(string email);}
3.3、ur.java
package com.lu.youxiang.pojo;public class ur { private string urname; private string password; private string email; //get和t方法省略了,自己生成一下}
3.4、mailrvice.java ,重要。
package com.lu.youxiang.rvice;import com.lu.youxiang.mapper.urmapper;import com.lu.youxiang.pojo.ur;import com.lu.youxiang.vo.urvo;import com.lu.youxiang.vo.urvotour;import org.springframework.beans.factory.annotation.autowired;import org.springframework.beans.factory.annotation.value;import org.springframework.mail.simplemailmessage;import org.springframework.mail.javamail.javamailnder;import org.springframework.stereotype.rvice;import javax.rvlet.http.httpssion;import java.util.random;@rvicepublic class mailrvice { @autowired private javamailnder mailnder;//一定要用@autowired @autowired private urmapper urmapper;//注入urmapper,交给bena //application.properties中已配置的值 @value("${spring.mail.urname}") private string from; /** * 给前端输入的邮箱,发送验证码 * @param email * @param ssion * @return */ public boolean ndmimemail( string email, httpssion ssion) { 荷花淀读后感 try { simplemailmessage mailmessage = new simplemailmessage(); mailmessage.tsubject("验证码邮件");//主题 //生成随机数 string code = randomcode(); //将随机数放置到ssion中 ssion.tattribute("email",email); ssion.tattribute("code",code); mailmessage.ttext("您收到的验证码是:"+code);//内容 mailmessage.tto(email);//发给谁 mailmessage.tfrom(from);//你自己的邮箱 mailnder.nd(mailmessage);//发送 return true; }catch (exception e){ e.printstacktrace(); return fal; } } /** * 随机生成6位数的验证码 * @return string code */ public string randomcode(){ stringbuilder str = new stringbuilder(); random random = new random(); for (int i = 0; i < 6; i++) { str.append(random.nextint(10)); } return str.tostring(); } /** * 检验验证码是否一致 * @param urvo * @param ssion * @return *东莞社保网上查询/ public boolean registered(urvo urvo, httpssion ssion){ //获取ssion中的验证信息 string email = (string) ssion.getattribute("email"); string code = (string) ssion.getattribute("code"); //获取表单中的提交的验证信息 string vocode = urvo.getcode(); //如果email数据为空,或者不一致,注册失败 if (email == null || email.impty()){ //return "error,请重新注册"; return fal; }el if (!code.equals(vocode)){ //return "error,请重新注册"; return fal; } //保存数据 ur ur = urvotour.tour(urvo); //将数据写入数据库 urmapper.inrtur(ur); //跳转成功页面 return true; } /** * 通过输入email查询password,然后比较两个password,如果一样,登录成功 * @param email * @param password * @return */ public boolean loginin(string email, string password){ ur ur = urmapper.querybyemail(email); if(!ur.getpassword().equals(password)){ return fal; } system.out.println("登录成功:数据库密码是:"+ur.getpassword()); return true; }}
3.5、urvo.java
package com.lu.youxiang.vo;public class urvo { private string urname; private string password; private string email; // 验证码 private string code; //省略了get和t方法,自己生成一下}
3.6、urvotour.java
package com.lu.youxiang.vo;import com.lu.youxiang.pojo.ur;public class urvotour { /** * 将表单中的对象转化为数据库中存储的用户对象(剔除表单中的code) * @param urvo * @return */ public static ur tour(urvo urvo) { //创建一个数据库中存储的对象 ur ur = new ur(); //传值 ur.turname(urvo.geturname()); ur.tpassword(urvo.getpassword()); ur.temail(urvo.getemail()); // 返回包装后的对象 return ur; }}
主配置类不复制了,创建springboot项目后,就有。
3.7、urmapper.xml
在resources包下创建mapper包,用来放xml,然后再这个包中创建urmapper.xml,内容如下。
<?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.lu.youxiang.mapper.urmapper"> <inrt id="inrtur" parametertype="com.lu.youxiang.pojo.ur"> inrt into ur (urname,password,email) values (#{urname},#{password},#{email}) </inrt> <lect id="querybyemail" resulttype="com.lu.youxiang.pojo.ur"> lect * from ur where email = #{email} </lect></mapper>
如果没有这个软件,安装一下,使用很简单。
打开后,点击左上角的file,再点击new tab,就会出来一个页面。
(或者使用ctrl+t快捷键)
请求url:
http://localhost:8080/ndemail?email=123456@qq.com
把请求url复制到如下如的url中, 邮箱换成自己的,请求方式换成post。点击nd。
如下图
请求url:
http://localhost:8080/regist
把请求url复制到如下如的url中, 邮箱换成自己的,code的值写邮箱收到的,请求方式换成post。点击nd,如下图
请求url:
http://localhost:8080/login?email=123456@qq.com&password=12345
复制url,改成post请求,点击nd。
如下图:
本文发布于:2023-04-05 07:22:21,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/4af7382b534ac55557c0fb4c5d2a8da9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:正确的邮箱qq格式怎么写(个人电子邮箱填写方法).doc
本文 PDF 下载地址:正确的邮箱qq格式怎么写(个人电子邮箱填写方法).pdf
留言与评论(共有 0 条评论) |