Java实现简单注册登录等功能

UserServlet层

package servlet;

import dao.UserDao;

import java.util.*;

//作为方法入口
public class UserServlet {
    public static void main(String[] args) {

        UserServlet user = new UserServlet();
        user.Menu();
    }

    public void Menu() {
        boolean isLogin = false;
        Scanner scanner = new Scanner(System.in);

        System.out.println("---------------------------------------------");
        System.out.println("1-用户注册  2-用户登录  3-修改密码 4-注销 5-退出 ");
        System.out.println("---------------------------------------------");
        int key = scanner.nextInt();
        switch (key) {
            case 1:
                regiser();
                Menu();
                break;
            case 2:

                isLogin = login();
                if (isLogin) {
                    System.out.println("登陆成功!");
                    Menu();
                    switch (key) {
                        case 3:
                            change();
                            Menu();
                            break;
                        case 4:
                            withdraw();
                            Menu();
                            break;
                        case 5:
                            System.exit(0);
                    }
                } else {
                    System.out.println("登录失败请重新输入!");
                    System.out.println("请重新输入!");
                    login();
                }
                break;

        }
        if (key == 3 || key == 4 || key == 5) {
            System.out.println("请先登录!");
            Menu();
        } else {

            System.out.println("对不起输入错误!");
            System.out.println("请重新输入!");
            Menu();
        }


    }


    //注册
    public static boolean regiser() {
        boolean rst = false;
        String userName = null;
        String password = null;

        Scanner scanner = new Scanner(System.in);
        System.out.println("请创建用户名:");
        userName = scanner.nextLine();
        System.out.println("请输入您的密码:");
        password = scanner.nextLine();
        rst = UserDao.userRegiser(userName, password);


        return rst;
    }

    //登录
    public static boolean login() {
        boolean rst = false;
        String userName = null;
        String password = null;
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入用户名:");
        userName = scanner.nextLine();
        System.out.println("请输入密码:");
        password = scanner.nextLine();
        //进行用户名、密码校验

        rst = UserDao.userLogin(userName, password);

        return rst;
    }

    //修改密码
    public void change() {
        String oldPsw = "";
        String newPsw1 = "";
        String newPsw2 = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入旧密码:");
        oldPsw = scanner.nextLine();
        System.out.println("请输入的新密码");
        newPsw1 = scanner.nextLine();
        System.out.println("请再次输入的新密码");
        newPsw2 = scanner.nextLine();
        if (newPsw1.equals(newPsw2)) {
            if (UserDao.changePassword(oldPsw, newPsw2)) {
                System.out.println("修改密码成功");
            } else {
                System.out.println("修改密码失败");
            }
        } else {
            System.out.println("两次新密码不相同!修改密码失败");
        }

    }

    //注销
    public void withdraw() {
        ;
        if (UserDao.withdraw()) {
            System.out.println("注销成功");
        } else {
            System.out.println("注销失败");
        }
    }
}

DAO层

package dao;

import java.io.*;

public class UserDao {


    //用户的注册
    public static boolean userRegiser(String userName, String password) {
        boolean result = false;
        String up = null;
        boolean uP = false;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请再次输入密码:");
        try {
            up = String.valueOf(br.readLine());
            if (up.equals(password)) {
                uP = true;

                File file = new File("D:\\Projects\\Java\\UserDemo\\src\\user.txt");
                FileOutputStream fop = new FileOutputStream(file);
                OutputStreamWriter write = new OutputStreamWriter(fop);
                write.append("userName=" + userName + "\n");
                write.append("password=" + password + "\n");
                write.close();
                fop.close();

                if (userName != null && password != null) {
                    result = true;
                }
                System.out.println("注册成功!");
            } else {
                System.out.println("密码输入不相同!");
                System.out.println("注册失败!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;

    }


    //用户登录
    public static boolean userLogin(String userName, String password) {
        boolean rst = false;
        String line = null;
        boolean Ub = false;
        boolean Up = false;
        try {
            FileReader fr = new FileReader("D:\\Projects\\Java\\UserDemo\\src\\user.txt");
            BufferedReader reader = new BufferedReader(fr);
            while ((line = reader.readLine()) != null) {
                if (line.equals("userName=" + userName)) {
                    Ub = true;
                }
                if (line.equals("password=" + password)) {
                    Up = true;
                }
            }

            if (Ub && Up) {
                rst = true;
            }

            reader.close();
            fr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rst;
    }

    //修改密码
    public static boolean changePassword(String oldPassword, String newPassword) {
        RandomAccessFile raf = null;
        //创建一个字符输出流
        FileWriter fw = null;
        //判断传入的原密码和文档的原密码是否一致
        boolean isOldPswTrue = false;
        //判断密码是否修改成功
        Boolean rst = false;
        try {
            String path = "D:\\Projects\\Java\\UserDemo\\src\\user.txt";
            raf = new RandomAccessFile(path, "r");
            //获取文档中的第一行内容
            String firstRow = raf.readLine();
            String temp = "";
            while ((temp = raf.readLine()) != null) {
                if (temp.equals("password=" + oldPassword)) {
                    isOldPswTrue = true;
                }
            }
            //如果传入的原密码和文档的原密码一致,则修改新密码
            if (isOldPswTrue) {
                fw = new FileWriter(path);
                fw.write(firstRow);
                fw.write("\r\n");
                fw.write("password=" + newPassword);
                fw.flush();
                rst = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (raf != null) {
                    raf.close();
                }
                if (fw != null) {
                    fw.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return rst;
    }

    //注销
    public static boolean withdraw() {
        FileReader fr = null;
        FileWriter fw = null;
        boolean rst = false;
        try {
            String path = "D:\\Projects\\Java\\UserDemo\\src\\user.txt";
            fr = new FileReader(path);
            int temp = 0;
            if ((temp = fr.read()) != -1) {
                //清空文件内容,因为FileWrite默认是覆盖内容的
                fw = new FileWriter(path);
                rst = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (fr != null) {
                    fr.close();
                }
                if (fw != null) {
                    fw.close();
                }
            } catch (Exception e) {

            }
        }
        return rst;
    }
}

运行视频

Java实现简单注册


版权声明:本文为qq_53737050原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。