【Java】仿真qq尝试:用户注册(一)
需求:
1、流程分析:客户端程序拿到用户名和密码,将用户名和密码发送到服务端(在客户端验证合法性),服务端接收并存储用户名和密码,返回给客户端一个信息(可能是成功也可能是失败。)
2、数据怎么存?服务端的用户数据为什么存入数据库而不是通过IO存入一个文件?数据库就是封装了CRUD的“专业化”存数据的软件,相比自己写的“非专业”存储方式更安全(不是任何人都可以访问、不易丢失)性能更好(CRUD更快)。。
3、应对多用户注册。
参考:
1、java正则表达式Pattern和Matcher:http://www.cnblogs.com/lzq198754/p/5780340.html
2、java单元测试:http://blog.csdn.net/liushuijinger/article/details/32140843、http://blog.csdn.net/andycpp/article/details/1327147
3、socket传输对象:http://blog.csdn.net/kongxx/article/details/7259827(关于socket的内容很全、代码质量高。。,有时间可以通看。。。)
4、swing消息提示框:http://hnulanwei.iteye.com/blog/2218639
思路:
代码:
1、创建一个User类。封装对象传输显然比拆分字符串传输要好。
package com.xkfx.qq.tools;
public class User implements java.io.Serializable {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2、检查用户名和密码的合法性
package com.xkfx.qq.tools.check;
import java.util.regex.*;
public class Check {
private static final String regEx = "^[A-Za-z][A-Za-z1-9_-]+$";
private static final Pattern pattern = Pattern.compile(regEx);
public static boolean idAndPass(String username, String password) {
Matcher userMatcher = pattern.matcher(username);
Matcher passMatcher = pattern.matcher(password);
return userMatcher.matches() && passMatcher.matches();
}
}
3、融入主代码
// 用户点击了注册
if (e.getActionCommand().equals("Sign up")) {
// 从JTextField获取用户名和密码
String username = txtUsername.getText();
String password = txtPassword.getText(); // 本地验证用户名、用户密码的合法性
if (Check.idAndPass(username, password)) {
User user = new User(username, password);
System.out.println("正在向服务发送注册请求");
} else {
// 提示用户重新输入
JOptionPane.showMessageDialog(this, "输入不合法,请重新输入!");
}
}
后续 & 补充:
修改了目录结构:

【Java】仿真qq尝试:用户注册(一)的更多相关文章
- 【Java】仿真qq尝试:用户注册(三)
需求: 实现用户名和密码存入数据库. 思路: 1.连接数据表用静态加载块 2.crud写成4个静态方法 具体流程: from:https://www.tutorialspoint.com/jdbc/j ...
- 【Java】仿真qq尝试:用户注册(二)
参考: 1.corejavaI:使用解耦的try/catch与try/finally 2.Java中try catch finally语句中含有return语句的执行情况(总结版):http://bl ...
- 【Java】仿真qq尝试:聊天界面 && 响应用户输入
需求分析: 逐步完善一个“qq仿真”程序. 参考: 1.文本框与文本区:http://www.weixueyuan.net/view/6062.html 2.java布局:http://www.cnb ...
- java 模拟qq源码
java 模拟qq源码: http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip
- JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)
JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...
- java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)
java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...
- Java实现QQ邮件发送
首先我们需要两个jar包,点击下面即可下载这两个包: JavaMail mail.jar 1.4.5 JAF(版本 1.1.1) activation.jar 我们这里采用QQ邮箱发送邮件为例,代码如 ...
- java实现QQ、微信、轰炸机,撩妹,抖图功能,轻松自如
今天交大家一个很牛的功能,让你朋友服你,他不扶你你来找我. 打游戏被骂,骂不过你来找我,我们有神器,直到他怕了为止. 废话少说,代码如下,动手,干就完了 乞丐版如下 参考连接:Java实现QQ微信轰炸 ...
- Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析
QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:https://github.com/20100507/Qzone [没有加入多线程,希望你可以参与进 ...
随机推荐
- (转)使用.NET Reflector 查看Unity引擎里面的DLL文件
当你查看unity里面API的时候,是不是有时候追踪了一两步就碰到DLL文件走不下去了呢?很是不爽吧. 这种问题我也是经常碰到.这是人家商业引擎不想让你看到底层代码啦,所以着急不得. 不过,今天我终于 ...
- 【SR】正则化
MAP框架:
- 【分享】Collecting all the cheat sheets
http://overapi.com/ 这个网站可以查询到所有与编程相关的各种技术,并给出详细的知识点(干货).
- js封装日历控件
最终效果 代码实现 <script> $(function () { $(".j-calendar").calendar({ date: '2017-08-03', c ...
- SQL Server 数据库分离与附加(图文教程)
from:http://www.jb51.net/article/36624.htm 一.概述 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库.复制数据库等多种数据库的备份和恢复 ...
- Setting up PhoneGap on Ubuntu for Android app development
This is just some notes I made, mostly taken from http://docs.phonegap.com/en/3.0.0/guide_overview_i ...
- spring boot打包会有.war.original文件的原因 (笔记)
今天使用spring boot 2.1.1.RELEASE版本搭建项目,虽然可以直接打包成可运行的jar包,但是由于公司准备采用docker容器来管理项目,所以需要把jar包变成war包,并且war包 ...
- 全局最小割模板(定S,不定T,找最小割)
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- [Algorithms] Topological Sort
Topological sort is an important application of DFS in directed acyclic graphs (DAG). For each edge ...
- 如何修改Myeclipse的JSP模板
先找到MyEclipse的安装目录, 再找到myeclipse/eclipse/plugins/com.genuitec.eclipse.wizards_5.1.0/templates/jsp (co ...