需求:

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尝试:用户注册(一)的更多相关文章

  1. 【Java】仿真qq尝试:用户注册(三)

    需求: 实现用户名和密码存入数据库. 思路: 1.连接数据表用静态加载块 2.crud写成4个静态方法 具体流程: from:https://www.tutorialspoint.com/jdbc/j ...

  2. 【Java】仿真qq尝试:用户注册(二)

    参考: 1.corejavaI:使用解耦的try/catch与try/finally 2.Java中try catch finally语句中含有return语句的执行情况(总结版):http://bl ...

  3. 【Java】仿真qq尝试:聊天界面 && 响应用户输入

    需求分析: 逐步完善一个“qq仿真”程序. 参考: 1.文本框与文本区:http://www.weixueyuan.net/view/6062.html 2.java布局:http://www.cnb ...

  4. java 模拟qq源码

    java 模拟qq源码: http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip

  5. JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

  6. java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)

     java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...

  7. Java实现QQ邮件发送

    首先我们需要两个jar包,点击下面即可下载这两个包: JavaMail mail.jar 1.4.5 JAF(版本 1.1.1) activation.jar 我们这里采用QQ邮箱发送邮件为例,代码如 ...

  8. java实现QQ、微信、轰炸机,撩妹,抖图功能,轻松自如

    今天交大家一个很牛的功能,让你朋友服你,他不扶你你来找我. 打游戏被骂,骂不过你来找我,我们有神器,直到他怕了为止. 废话少说,代码如下,动手,干就完了 乞丐版如下 参考连接:Java实现QQ微信轰炸 ...

  9. Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析

    QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:https://github.com/20100507/Qzone [没有加入多线程,希望你可以参与进 ...

随机推荐

  1. Android插件化开发之OpenAtlas生成插件信息列表

    上一篇文章.[Android插件化开发之Atlas初体验]( http://blog.csdn.net/sbsujjbcy/article/details/47446733),简单的介绍了使用Atla ...

  2. 【python】计算器

    from __future__ import division import sys from math import * from PyQt4.QtCore import * from PyQt4. ...

  3. visio中设置下标

    下标:ctrl+"=" 上标:ctrl+shift+"="

  4. 浏览器配置工具.bat

    在Web安装的ActiveX控件,默认安装在C:\WINDOWS\Downloaded Program Files目录下,但是有时候由于Internet Explorer的安全设置,会阻止Active ...

  5. iOS 友盟统计怎么用

    本文转载至 http://blog.csdn.net/woaifen3344/article/details/41284395 友盟统计UMAnalyticsiOS友盟统计iOS UMAnalytic ...

  6. pocket

    Pocket是一个离线阅读服务软件. Pocket的主要功能就是将你要阅读或者一时没有读完的网页标记下来,接着同步到服务器端,然后你就可以在不同的设备上阅读.如果你在电脑上网的时间不多,一些东西又来不 ...

  7. 【BZOJ2324】[ZJOI2011]营救皮卡丘 有上下界费用流

    [BZOJ2324][ZJOI2011]营救皮卡丘 Description 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘,也为了正义,小智和他的朋友们义不容辞的 ...

  8. 移动端:判断是否微信端、判断手机操作系统(ios或android)

    http://caibaojian.com/browser-ios-or-android.htmlfunction is_weixin() { var ua = window.navigator.us ...

  9. 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...

  10. Android 短信箱操作

    package blackice.android.product; import java.sql.Date; import java.text.SimpleDateFormat; import ja ...