文章目录
- 1. 前言
- 2. 使用腾讯云短信接口发送短信
- 3. java连接数据库
- 4.部署到服务器(如果你有的话)
目录
Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。
文章中出现的源码获取方式:评论区留下邮箱地址。
创作不易,各位看官点个关注,点个赞呗!
1. 前言
前面两篇分别使用html写了前端网页和使用java写后端响应代码,实现了前端与后端的数据交互,今天这篇将介绍如何将数据写入数据库,并且实现短信验证码的发送以及如何部署到服务器上面,需要用到的有MYSQL,腾讯短信服务API,云服务器,Tomcat。
所有文章源码已整体打包上传至gizzzthub,求星星!
2. 使用腾讯云短信接口发送短信
我找了很多提供短信接口服务的,要不就是需要一次性购买几千条,要不就是需要企业才能购买,兜兜转转好几圈,最后还是在腾讯云这里找到了免费的短信,新用户可以免费领取100条,并且之后每个月还会送,而且不需要企业用户就可以使用,链接给你们找到了,自行领取。
我就当你已经领取了短信,继续往下走,点击控制台,然后搜索短信,进入下面的页面。
点击国内短信,签名管理,创建签名,选择签名用途为自用,签名类型为网站,然后会让你上传网站备案后台截图,申请说明就写学习使用短信服务就可以了。
想要给服务器备案需要服务器至少三个月的时常
创建正文模板,模板中的{1}就是我们要发送的验证码,差不多30分钟就会申请成功。
点击应用列表,如果没有默认应用,可以自己创建一个
点击应用,有一个SDKAppID和App Key,这两个码将作为短信发送的重要凭证,应妥善保管。
点击访问管理,获取密钥对
上面的工作都完成之后,点击短信服务文档,里面有关于SDK的下载文档,包括Maven和GitHub两种,博主使用的是第一种,第一次用的时候也是费了一些力气,Maven无非是把包整合到了一块,那我直接把包给你下载好,如果嫌麻烦可以直接使用我下载好的包tencentcloud-sdk-java-3.1.217.jar
然后来看下具体代码的实现
String secretId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String secretKey= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
//短信应用 ID
String appid = "xxxxxxxxx";
//短信签名内容
String sign = "花狗的小站";
//短信模板 ID
String templateID = "xxxxxx";
//+86为国家码,182********为手机号,最多不要超过200个手机号
String[] phoneNumbers = { "+86"+phone};
//模板参数: 若无模板参数,则设置为空
String[] templateParams = {String.valueOf(randnum)};//对应模板中{1} randnum为我生成的随机五位数
try {
//必要步骤: 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey
Credential cred = new Credential(secretId , secretKey);
ClientProfile clientProfile = new ClientProfile();
//SDK 默认用 TC3-HMAC-SHA256 进行签名 非必要请不要修改该字段
clientProfile.setSignMethod("HmacSHA256");
// 实例化 SMS 的 client 对象 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量
SmsClient client = new SmsClient(cred, "", clientProfile);
//实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 您可以直接查询 SDK 源码确定接口有哪些属性可以设置
SendSmsRequest req = new SendSmsRequest();
// 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666
req.setSmsSdkAppid(appid);
// 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息
req.setSign(sign);
//短信模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID
req.setTemplateID(templateID);
//下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] 例如+8613711112222
req.setPhoneNumberSet(phoneNumbers);
req.setTemplateParamSet(templateParams);
// 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 返回的 res 是一个SendSmsResponse 类的实例,与请求对象对应
SendSmsResponse res = client.SendSms(req);
// 输出 JSON 格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(res));
// 可以取出单个值,您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义
System.out.println(res.getRequestId());
短信效果:
注册成功后,来看下如何将数据写入数据库。
3. java连接数据库
请先下载我为你们准备好的JDBC。
如果连接过程中有一些错误,这篇文章可能会帮助你。Java连接MySQL以及出现的问题
//加载驱动程序
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.print("驱动程序加载成功,");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//连接数据库 127.0.0.1可以改成你服务器的ip也可以写本地ip,因为最终是要在服务器运行的,fdogsql是数据库的名称
String str = "jdbc:mysql://127.0.0.1:3306/fdogsql?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
Connection conn=null;
try {
conn=DriverManager.getConnection(str,"root","xxxxxx");
if (!conn.isClosed()) {
System.out.println("连接数据库成功");
}
} catch (SQLException e) {
System.out.println("链接数据库失败: "+e.getMessage());
}
//运用我们上一篇学过的从前端获取的数据,然后写入数据库
String username = request.getParameter("username");
String password = request.getParameter("password");
String phone = request.getParameter("phone");
String account = String.valueOf(num.ReturnRandNumer_2());//ReturnRandNumer_2函数为随机生成一个8位数作为账号
try{
String sql="insert into user(account,phone,name,password) values("+"'"+account+"',"+"'"+phone+"',"+"'"+username+"',"+"'"+password+"'"+")";
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
System.out.println("写入成功");
//调用注册成功页面
}catch(SQLException e){
System.out.println("写入失败");
}
4.部署到服务器(如果你有的话)
Eclipse 点击File,Export导出,选择WAR文件导出,记得勾选下面红框内容
使用文件上传工具,将打包好的WAR文件,上传至服务器Tomcat的webapps文件夹下。
如果没有上传工具,点击下载
如果还没有配置Tomcat,点击Tomcat配置教程
上传文件之后,Tomcat会自动将WAR文件解压,使用命令进入bin目录,使用命令./shutdown.sh关闭tomcat服务,然后使用./start.sh开启tomcat服务,稍等几秒钟,即可访问。
点击访问本案例:Fdog
文章的最后再说一遍!想要源码的可在评论区留下邮箱,随手给个小赞!
下一篇内容将使用Qt编写类似于QQ的客户端登录界面,先上一张图,包括很多小技能,关注我,不迷路哦!
下期见!