zoukankan      html  css  js  c++  java
  • 【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, "输入不合法,请重新输入!");
                }
            }

    后续 & 补充:

    修改了目录结构:

  • 相关阅读:
    Http 请求处理流程
    ASP.NET 4.0: 请求验证模式变化导致ValidateRequest=false失效
    Android Animation学习笔记【转载】
    Http Handler 介绍
    对路径XXX的访问被拒绝(文件操作权限)的解决方法
    控制页面滚动条
    Sqlserver查询字段默认值
    Ajax基础
    浮动&定位
    定时器
  • 原文地址:https://www.cnblogs.com/xkxf/p/6776410.html
Copyright © 2011-2022 走看看