一、创建项目及文件:
创建如图文件夹及文件:
二、编写源码
UserDao类:
public class UserDao {
//用户的注册
public boolean userRegister(String username, String psw) {
boolean rts=false;
String name="";
BufferedWriter bw = null;
BufferedReader br = null;
try {//判断注册的用户名是否存在,不存在则使rts==true
br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
if((name=br.readLine())==null||(!name.equals(username))){
rts = true;
}
//如果rts==ture,则将传入的参数写入文档中作为用户名和密码
if(rts){
bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
bw.write(username);
bw.newLine();
bw.write(psw);
bw.flush();
bw.close();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return rts;
}
//用户登录
public boolean userLogin(String username, String psw) {
boolean rst = false;
BufferedReader br = null;
try {//判断输入的用户名和密码是否与文档中注册的用户名密码同时相同
br=new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
if (br.readLine().equals(username)&&br.readLine().equals(psw)){
rst=true;
}
br.close();
}catch (Exception e){
e.printStackTrace();
}
return rst;
}
//修改密码
public boolean changePsw(String oldPsw, String newPsw) {
boolean rts=false;
String name;
String psw;
BufferedWriter bw = null;
BufferedReader br = null;
try {//先把原用户名和密码记录下来
br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
name=br.readLine();
psw=br.readLine();
//比对输入的旧密码和文档中旧密码是否相同,相同则将上面记录的用户名和输入的新密码写入文档
if(psw.equals(oldPsw)){
rts=true;
bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
bw.write(name);
bw.newLine();
bw.write(newPsw);
bw.flush();
bw.close();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return rts;
}
//注销
public boolean withdraw() {
boolean rts=false;
BufferedWriter bw= null;
BufferedReader br=null;
String s = "";
try {//写入一个空串覆盖原用户名和密码
bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
bw.write(s);
bw.flush();
//判断文档中是否还有数据,没有则rts=ture
if (br.readLine()==null) {
rts=true;
}
br.close();
bw.close();
}catch (Exception e){
e.printStackTrace();
}
return rts;
}
}
UserServlet类:
public class UserServlet {
public static void main(String[] args) {
UserServlet userServlet = new UserServlet();
String mode;
//通过mode记录当前操作状态,调用操作选择方法选择操作
mode = userServlet.select(userServlet);
}
//选择功能交互模块
public String select(UserServlet userServlet){
String mode;
Scanner scanner = new Scanner(System.in);
System.out.println("请选择功能:注册 登录 修改密码 注销");
//通过输入的文字选择调用不同的操作方法
mode=scanner.nextLine();
switch (mode){
case "注册":userServlet.register();
break;
case "登录":userServlet.login();
break;
case "修改密码":userServlet.changePsw();
break;
case "注销":userServlet.withdraw();
break;
default:
System.out.println("无此操作!");
}
return mode;
}
//注册交互模块
public boolean login(){
UserDao userDao = new UserDao();
Scanner scanner = new Scanner(System.in);
boolean rts=false;
String username;
String psw;
//人机交互并调用Dao类方法读写数据
System.out.println("请输入用户名:");
username = "username="+scanner.nextLine();
System.out.println("请输入密码:");
psw = "psw="+scanner.nextLine();
rts = userDao.userLogin(username,psw);
if(rts){
System.out.println("登录成功!");
}else {
System.out.println("用户名或密码错误!");
}
return false;
}
//登录交互模块
public boolean register(){
UserDao userDao = new UserDao();
Scanner scanner = new Scanner(System.in);
boolean rts=false;
String username;
String psw;
//人机交互并调用Dao类方法读写数据
System.out.println("请输入用户名:");
username = "username="+scanner.nextLine();
System.out.println("请输入密码:");
psw = "psw="+scanner.nextLine();
rts = userDao.userRegister(username,psw);
if(rts){
System.out.println("注册成功!");
}else {
System.out.println("用户名重复,注册失败!");
}
return rts;
}
//修改密码交互模块
public boolean changePsw(){
UserDao userDao = new UserDao();
Scanner scanner = new Scanner(System.in);
boolean rts=false;
String oldpsw;
String newpsw;
//人机交互并调用Dao类方法读写数据
System.out.println("请输入旧密码:");
oldpsw = "psw="+scanner.nextLine();
System.out.println("请输入新密码:");
newpsw = "psw="+scanner.nextLine();
rts = userDao.changePsw(oldpsw,newpsw);
if(rts){
System.out.println("修改成功!");
}else {
System.out.println("原密码错误!");
}
return rts;
}
//注销账户交互模块
public boolean withdraw(){
boolean rts=false;
UserDao userDao = new UserDao();
if(userDao.withdraw()){
System.out.println("注销成功!");
}else {
System.out.println("注销失败!");
}
return rts;
}
}
三、操作演示
-
注册
- 注册成功
- 注册失败
![在这里插入图片描述](https://img-blog.csdnimg.cn/7787d59f58944765a57009ece7c52a96.png#pic_center)
-
登录
-
登录成功
-
登录失败
-
-
修改密码
-
修改密码成功
-
修改密码失败
-
-
注销
四、视频演示
登录系统演示