赤坎手机网站建设公司,wordpress顶部加广告,城乡住房建设部网站,网站建设便捷1.准备工作
操作之前准备两个邮箱
我准备了网易邮箱和QQ邮箱#xff0c;网易邮箱用来发送验证码#xff0c;QQ邮箱用来做注册#xff08;希望大家和我一样#xff0c;不然可能会出错 #xff09;
发送验证码的邮箱需要开启一些设置#xff0c;否则不…1.准备工作
操作之前准备两个邮箱
我准备了网易邮箱和QQ邮箱网易邮箱用来发送验证码QQ邮箱用来做注册希望大家和我一样不然可能会出错
发送验证码的邮箱需要开启一些设置否则不能发送验证码 网易免费邮箱 - 你的专业电子邮局
网易邮箱官网没有的注册一个有的直接输入账号密码登录
1.登录后点击设置 2.继续操作 3.保证两个服务开启:
IMAP/SMTP服务: POP3/SMTP服务: 4.生成授权码授权码要保存起来只能查看一次 将生成的授权码放入properties配置文件 稍后会用
server.port8081
restart.include.mapper/mapper-[\\w-\\.]jar
restart.include.pagehelper/pagehelper-[\\w-\\.]jar
spring.mvc.static-path-pattern/static/**
spring.thymeleaf.prefixclasspath:/templates/
spring.thymeleaf.suffix.html
spring.thymeleaf.modeHTML5
spring.thymeleaf.encodingUTF-8
spring.thymeleaf.servlet.content-typetext/html
spring.thymeleaf.cachefalse
spring.datasource.urljdbc:mysql://localhost:3306/test?useSSLfalse
spring.datasource.usernameroot
spring.datasource.password123456
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
spring.datasource.druid.initial-size1
spring.datasource.druid.min-idle1
spring.datasource.druid.max-active20
spring.datasource.druid.test-on-borrowtrue
spring.datasource.druid.stat-view-servlet.allowtrue
mybatis.type-aliases-packagecom.dss.springboot.entity
mybatis.mapper-locationsclasspath:mapper/**/*.xml
spring.mail.default-encodingutf-8
spring.mail.hostsmtp.163.com
spring.mail.username15543326163163.com
spring.mail.password
spring.mail.protocolsmtp
spring.mail.port25 根据配置文件修改成自己的数据库和密码
发送消息的账号添加到
spring.mail.usernamexxxxxx163.com 其他设计默认即可 4.创建数据库 5.新建数据库 6.用户表语句 user表 数据库建表语句
create table user
(uid int auto_incrementprimary key,username varchar(255) not null,password varchar(255) not null,nickname varchar(255) null,email varchar(255) not null,state int not null,code varchar(255) null
);
在控制台执行 2.开始搭建 选择有项目 sdk 8java8 没有的随便选等创建 项目完成在修改 将文件复制到properties
1.properties
server.port8081
restart.include.mapper/mapper-[\\w-\\.]jar
restart.include.pagehelper/pagehelper-[\\w-\\.]jar
spring.mvc.static-path-pattern/static/**
spring.thymeleaf.prefixclasspath:/templates/
spring.thymeleaf.suffix.html
spring.thymeleaf.modeHTML5
spring.thymeleaf.encodingUTF-8
spring.thymeleaf.servlet.content-typetext/html
spring.thymeleaf.cachefalse
spring.datasource.urljdbc:mysql://localhost:3306/test?useSSLfalse
spring.datasource.usernameroot
spring.datasource.password123456
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
spring.datasource.druid.initial-size1
spring.datasource.druid.min-idle1
spring.datasource.druid.max-active20spring.datasource.druid.test-on-borrowtrue
spring.datasource.druid.stat-view-servlet.allowtrue
mybatis.type-aliases-packagecom.dss.springboot.entity
mybatis.mapper-locationsclasspath:mapper/**/*.xml
spring.mail.default-encodingutf-8
spring.mail.hostsmtp.163.com
spring.mail.username15543326163163.com
spring.mail.password你邮箱生成的授权码
spring.mail.protocolsmtp
spring.mail.port25 2. pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.dss/groupIdartifactIdspringboot--javaMail/artifactIdversion0.0.1-SNAPSHOT/versionpackagingwar/packagingnameemailtest/namedescriptionDemo project for Spring Boot/descriptionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.0.3.RELEASE/versionrelativePath / !-- lookup parent from repository --/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- 引入 thymeleaf 模板依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency!-- 引入数据源依赖这里使用alibaba的druid数据源 --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.0/version/dependency!-- mysql的连接依赖 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.32/version/dependency!--mybatis相关依赖 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.1/version/dependency!-- 支持发送邮件 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project3.连接数据库 4.修改文件设置 5. 启动项目检验配置是否成功 6. 配置注册页面 resource目录下templates 下 新建 thymeleaf 文件夹 新建页面 register.html
!DOCTYPE html
html
head langenmeta charsetUTF-8 /title/title
/head
bodyform action/user/register methodpost用户名input typetext nameusername idusername/br/密码input typepassword namepassword idpassword/br/确认密码input typepassword namepassword1 idpassword1/br/昵称:input typetext namenickname idnickname/br/邮箱input typetext nameemail idemail/br/input typesubmit value注册/
/form/body
/html
result.html !DOCTYPE html
html
head langenmeta charsetUTF-8 /title/title
/head
bodyh1 th:text${message}/h1/body
/html
7. 用mybatisx
生成 实体类 mapper 层 service 层 imp层 mapper.xml 整理后项目结够如下 8.添加工具类
package com.dss.javaMail.utils;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;/*** 发送邮件的工具类* author duan ss**/
Component
public class MailUtil {Autowiredprivate JavaMailSender javaMailSender;/*** 发送邮件* param toUser 收件人* param code 激活码* return*/public String send(String toUser, String code) {// 建立邮件消息SimpleMailMessage mainMessage new SimpleMailMessage();// 发送者mainMessage.setFrom(15543326163163.com);// 接收者mainMessage.setTo(toUser);// 发送的标题mainMessage.setSubject(注册激活邮件);// 发送的内容mainMessage.setText(h1来自xxx网站的注册激活邮件激活请点击以下链接http://localhost:8081/user/regActive?codecode);javaMailSender.send(mainMessage);return success;}}9.编写各层代码 mapper层 package com.example.emailtest.mapper;import com.example.emailtest.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;/**
* author l
* description 针对表【user】的数据库操作Mapper
* createDate 2024-02-23 12:49:21
* Entity com.example.emailtest.domain.User
*/
Mapper
public interface UserMapper extends BaseMapperUser {void registerUser(User user);User getUserByCode(User user);void updateState(User user);User getUserByUsernameAndPassword(String username, String password);
} service层
package com.example.emailtest.service;import com.example.emailtest.domain.User;
import com.baomidou.mybatisplus.extension.service.IService;/**
* author l
* description 针对表【user】的数据库操作Service
* createDate 2024-02-23 12:49:21
*/
public interface UserService extends IServiceUser {void registerUser(User user);User getUserByCode(User user);void updateState(User user);User getUserByUsernameAndPassword(String username, String password);
}serviceimpl层
package com.example.emailtest.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.emailtest.domain.User;
import com.example.emailtest.service.UserService;
import com.example.emailtest.mapper.UserMapper;
import org.springframework.stereotype.Service;import javax.annotation.Resource;/**
* author l
* description 针对表【user】的数据库操作Service实现
* createDate 2024-02-23 12:49:21
*/
Service
public class UserServiceImpl extends ServiceImplUserMapper, Userimplements UserService {Resourceprivate UserMapper userMapper;Overridepublic void registerUser(User user) {userMapper.registerUser(user);}Overridepublic User getUserByCode(User user) {return userMapper.getUserByCode(user);}Overridepublic void updateState(User user) {userMapper.updateState(user);}Overridepublic User getUserByUsernameAndPassword(String username, String password) {return userMapper.getUserByUsernameAndPassword(username, password);}
} mapper.xml层
?xml version1.0 encodingUTF-8?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.emailtest.mapper.UserMapperresultMap idBaseResultMap typecom.example.emailtest.domain.Userid propertyuid columnuid jdbcTypeINTEGER/result propertyusername columnusername jdbcTypeVARCHAR/result propertypassword columnpassword jdbcTypeVARCHAR/result propertynickname columnnickname jdbcTypeVARCHAR/result propertyemail columnemail jdbcTypeVARCHAR/result propertystate columnstate jdbcTypeINTEGER/result propertycode columncode jdbcTypeVARCHAR//resultMapsql idBase_Column_Listuid,username,password,nickname,email,state,code/sqlinsert idregisterUser parameterTypecom.example.emailtest.domain.Userinsert into user values(#{ uid}, #{username}, #{password}, #{nickname}, #{email}, #{state}, #{code})/insertupdate idupdateStateupdate user set state 1 where uid #{uid} and code #{code}/updateselect idgetUserByCode resultTypecom.example.emailtest.domain.Userselect * from user where code #{code}/selectselect idgetUserByUsernameAndPassword resultTypecom.example.emailtest.domain.User
select * from user where username #{username} and password #{password}/select
/mappercontroller层
package com.example.emailtest.controller;import com.example.emailtest.domain.User;
import com.example.emailtest.mapper.UserMapper;
import com.example.emailtest.service.UserService;
import com.example.emailtest.utils.MailUtil;
import com.example.emailtest.utils.UuidUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;Controller
RequestMapping(value /user)
public class UserController {ResourceUserMapper userMapper;Autowiredprivate UserService userService;Autowiredprivate MailUtil mailUtil;RequestMapping(value /goReg)public String getUser() {return thymeleaf/register;}RequestMapping(value /register)ResponseBodypublic String register(User user) {user.setState(0); // 0表示未激活/1表示激活user.setCode(UuidUtil.get32UUID());String result mailUtil.send(user.getEmail(), user.getCode());System.out.println(发送邮件结果 result);System.out.println(user);userService.registerUser(user);return success;}RequestMapping(value /regActive)public String regActive(RequestParam(code) String code,ModelMap map) {User user new User();user.setCode(code);user userService.getUserByCode(user);if(user ! null) {if(user.getState() 1) {map.addAttribute(message, 你已经激活过了...);}else {userService.updateState(user);map.addAttribute(message, 激活成功...);}}else {map.addAttribute(message, 激活失败...);}return thymeleaf/result;}}启动类加mappscan注解
package com.example.emailtest;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
MapperScan(com.example.emailtest.mapper)
SpringBootApplication
public class EmailtestApplication {public static void main(String[] args) {SpringApplication.run(EmailtestApplication.class, args);}}3.启动项目
注册接口地址
http://localhost:8081/user/goReg 邮件会收到消息 输入激活码 数据库如下
激活的账号state为1 4.todo 正在准备邮箱登录