用Java完成登录注册后台系统,包含远程、自动登录、注册一体化详细教程
本文最后更新于220 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

        当涉及到开发登入注册后台系统时,Java是一个非常强大和灵活的选择。Java提供了丰富的工具和库,使得开发这样的系统变得相对简单和高效。在本文中,我将为您提供一个详细的教程,介绍如何使用Java实现一个包含远程、自动登录和注册一体化的简易登入注册后台系统。确保您已经安装了Java开发环境(JDK)并配置好了相应的开发工具。


目录

教程开始

Home类——需要运行此主类

Input类——判断指令、密码是否输入正确         

To类——包装sout方法

User类——用户类

Text类——文字信息 

Sleep类——等待方式

GetMessage类——获取和处理消息


教程开始

        Home类——需要运行此主类

  1. 定义了一个静态的布尔型变量user,用于表示用户是否登录或注册成功。

  2. 首先检测网络是否可用,如果可用则执行相应的操作。

  3. 如果是第一次登录,则进入登录或注册模式。

  4. 在登录或注册模式下,根据用户输入的数字指令执行相应的操作。

  5. 如果已有账号,则自动登录。

  6. 加载主界面菜单。

  7. 定义了一些辅助函数,如shuoMing()用于显示说明信息,zhuCe()用于处理注册操作,denLu()用于处理登录操作。

  8. firstCheck()函数用于检测是否第一次登录,根据是否存在特定文件来判断。

  9. logOn()函数用于已经登录过的自动登录功能。

  10. initialization()函数用于从未登录过的初始化功能。

  11. isNetworkAvailable()函数用于检测网络是否可用。

  1. public class Home {
  2. static boolean user;
  3. public static void main(String[] args) {
  4. if (isNetworkAvailable(Text.url)) {
  5. //初始化进入程序,检测是否需要自动登入
  6. user = firstCheck();
  7. if (!user) {
  8. //需要改变user为true结束登录或者注册模式,在二者都改变即可
  9. while (!user) {
  10. int anInt = Input.getInt();
  11. if (anInt > 3 || anInt < 1) {
  12. To.string("请输入正确的序号");
  13. } else {
  14. switch (anInt) {
  15. case 1: denLu();break;
  16. case 2: zhuCe();break;
  17. case 3: shuoMing();break;
  18. default: To.string("未知字符信息");System.exit(0);
  19. }
  20. }
  21. }
  22. }
  23. } else {
  24. To.string("连接失败,请检测你的网络再重新启动");
  25. System.exit(0);
  26. }
  27. //前面代表已有账号,自动登入
  28. //获取账号密码
  29. GetMessage ges=new GetMessage();
  30. ges.getQQMM();
  31. while (true){
  32. To.string("正在登录中...");
  33. try {
  34. String s = GetMessage.ZIDen();
  35. if (s.contains("成功")){
  36. new Sleep().start();
  37. To.string(s);
  38. break;
  39. }else {
  40. //登录失败直接退出
  41. To.string(s);
  42. System.exit(0);
  43. }
  44. } catch (Exception e) {
  45. To.string("出现异常:"+e.getMessage());
  46. }
  47. }
  48. //登录成功,加载主界面菜单
  49. homeStart();//如果以后返回界面还需要使用,直接调用这个方法
  50. }
  51. public static void homeStart(){
  52. Text.out(3);
  53. new Sleep().start();
  54. Text.Base();
  55. }
  56. private static void shuoMing() {
  57. To.string(Text.shuo);
  58. new Sleep().start();
  59. To.string("\n请继续输入数字指令");
  60. }
  61. private static void zhuCe() {
  62. GetMessage getMessage = new GetMessage();
  63. String content = null;
  64. try {
  65. content = getMessage.Content();
  66. } catch (Exception e) {
  67. To.string("出现异常:" + e.getMessage());
  68. System.exit(0);
  69. }
  70. //System.out.println(content);
  71. if (content.contains("成功")) {
  72. To.string("注册成功");
  73. user=true;//结束注册
  74. //记录本地账号密码
  75. GetMessage setMessage=new GetMessage();
  76. setMessage.wen();//检测根文件夹是否存在
  77. setMessage.setMessage();
  78. //记录运行账号密码
  79. User.user=GetMessage.user;
  80. User.pass=GetMessage.pass;
  81. }
  82. // if(content.contains("一个账号")){
  83. // To.string(content+",明天再来吧!");
  84. // System.exit(0);
  85. // }
  86. else {
  87. To.string(content + ",请重新注册");
  88. zhuCe();
  89. }
  90. }
  91. private static void denLu() {
  92. GetMessage getMessage = new GetMessage();
  93. String content=null;
  94. try {
  95. content = getMessage.Den();
  96. } catch (Exception e) {
  97. To.string("出现异常:" + e.getMessage());
  98. System.exit(0);
  99. }
  100. if (content.contains("成功")) {
  101. user=true;//结束登录
  102. //记录本地账号密码
  103. GetMessage setMessage=new GetMessage();
  104. setMessage.wen();//检测根文件夹是否存在
  105. setMessage.setMessage();
  106. //记录运行账号密码
  107. User.user=GetMessage.user;
  108. User.pass=GetMessage.pass;
  109. }
  110. else {
  111. To.string(content + ",请重新登录");
  112. denLu();
  113. }
  114. }
  115. //检测是否第一次登陆
  116. public static boolean firstCheck() {
  117. File file = new File("D:\\Benmao");
  118. //logOn()是已经登陆过自动登录功能
  119. //initialization()是从来没有登陆过功能
  120. return file.exists() ? logOn() : initialization();
  121. }
  122. private static boolean logOn() {
  123. return true;
  124. }
  125. private static boolean initialization() {
  126. To.string(Text.firstLogon + "\n" + Text.firstContent);
  127. return false;
  128. }
  129. //检测是否有无网络
  130. public static boolean isNetworkAvailable(String hostname) {
  131. try {
  132. InetAddress address = InetAddress.getByName(hostname);
  133. return address.isReachable(5000); // 5秒超时
  134. } catch (Exception e) {
  135. return false;
  136. }
  137. }
  138. }

主要实现了一个简单的登录和注册功能,根据用户的输入和状态进行相应的操作 


          Input类——判断指令、密码是否输入正确         

  1. private static Scanner scanner = new Scanner(System.in):创建一个静态的Scanner对象,用于读取用户的输入。

  2. public static int getInt():获取用户输入的整数。在循环中,尝试读取用户输入的整数,如果出现异常则提示用户重新输入,并清除输入缓冲区。

  3. public static double getDouble():获取用户输入的小数。在循环中,尝试读取用户输入的小数,如果出现异常则提示用户重新输入,并清除输入缓冲区。

  4. public static String getString():获取用户输入的字符串。在循环中,尝试读取用户输入的字符串,如果出现异常则提示用户重新输入,并清除输入缓冲区。

  5. public static int putInt():获取用户输入的整数。与getInt()方法类似,但在提示信息中指定了特定的要求。

  6. public static String putString():获取用户输入的字符串。与getString()方法类似,但在提示信息中指定了特定的要求。

通过Scanner类提供了一些方法,用于获取用户输入的整数、小数和字符串。在循环中,如果用户输入的数据类型不匹配,会提示用户重新输入。

通过Scanner类提供了一些方法,用于获取用户输入的整数、小数和字符串。在循环中,如果用户输入的数据类型不匹配,会提示用户重新输入。

  1. import java.util.Scanner;
  2. public class Input {
  3. private static Scanner scanner = new Scanner(System.in);
  4. public static int getInt() {
  5. while (true) {
  6. try {
  7. return scanner.nextInt();
  8. } catch (Exception e) {
  9. To.string("无效的输入方式,请重新输入");//整数
  10. scanner.nextLine();
  11. }
  12. }
  13. }
  14. public static double getDouble() {
  15. while (true) {
  16. try {
  17. return scanner.nextDouble();
  18. } catch (Exception e) {
  19. To.string("请输入正确的序号");//小数
  20. scanner.nextLine();
  21. }
  22. }
  23. }
  24. public static String getString() {
  25. while (true) {
  26. try {
  27. return scanner.nextLine();
  28. } catch (Exception e) {
  29. To.string("请输入正确的序号");//字符串
  30. scanner.nextLine();
  31. }
  32. }
  33. }
  34. //---------------------------------------------------------------------
  35. //以下代码是小功能使用的输入
  36. public static int putInt() {
  37. while (true) {
  38. try {
  39. return scanner.nextInt();
  40. } catch (Exception e) {
  41. To.string("用户名必须是纯数字");//整数
  42. scanner.nextLine();
  43. }
  44. }
  45. }
  46. public static String putString() {
  47. while (true) {
  48. try {
  49. return scanner.next();
  50. } catch (Exception e) {
  51. To.string("密码格式有误");
  52. scanner.next();
  53. }
  54. }
  55. }
  56. }


         To类——包装sout方法

后面感觉此步多余了

  1. public class To {
  2. //此处是包装sout方法
  3. public static void string(String str){
  4. System.out.println(str);
  5. }
  6. public static void string(int num){
  7. System.out.println(num);
  8. }
  9. }

        User类——用户类

 运行中保存用户数据的一个类,感兴趣的可以自己实现多元化,如用户等级、用户介绍、用户是否为会员等等

  1. public class User {
  2. static int user;
  3. static String pass;
  4. }

        Text类——文字信息 

  1. firstLogonfirstContent:定义了第一次启动程序时的提示信息和内容。

  2. url:定义了一个字符串变量,表示URL地址。

  3. Server:定义了一个字符串变量,表示服务器相关的选项。

  4. shuo:定义了一个字符串变量,表示说明信息。

  5. benmao:定义了一个字符串变量,表示笨猫编程手册的标题。

  6. Base():定义了一个静态方法,用于输出笨猫编程手册的标题和用户账号,以及服务器选项。

  7. out(int num):定义了一个静态方法,用于输出指定数量的空行。

  1. public class Text {
  2. static String firstLogon = "--你可能是第一次启动这个程序,你需要登录或者注册--";
  3. static String firstContent = "1.登录\n2.注册\n3.使用方法";
  4. static String url = "www.benmao.love";
  5. static String Server = "\n 1.编程笔记 2.公用接口\n 3.聊天系统 4.远程通知\n 5.启动统计 6.用户信息\n 7.我要反馈 8.修改密码";
  6. static String shuo = "--如果你想进行操作,请输入对应的数字即可--\n--如果出现无法避免的异常,请重新启动程序试试--\n--此程序由笨猫所写,感谢你的使用哦--";
  7. static String benmao = "+---------登录注册系统----------+";
  8. public static void Base() {
  9. To.string(benmao + "\n" + "[欢迎使用,你的用户账号" + User.user + "]" + Server);
  10. }
  11. //输出n个空格
  12. public static void out(int num) {
  13. for (int i = 0; i < num; i++) {
  14. System.out.println();
  15. }
  16. }
  17. }

        Sleep类——等待方式

  1. public class Sleep extends Thread{
  2. @Override
  3. public void run() {
  4. try {
  5. Thread.sleep(1500);
  6. } catch (InterruptedException e) {
  7. throw new RuntimeException(e);
  8. }
  9. }
  10. public void start(){
  11. Sleep sleep=new Sleep();
  12. Thread thread=new Thread(sleep);
  13. thread.start();
  14. try {
  15. thread.join();
  16. } catch (InterruptedException e) {
  17. throw new RuntimeException(e);
  18. }
  19. }
  20. }

        GetMessage类——获取和处理消息

  1. Content()方法:用于处理注册操作。获取用户输入的用户名和密码,然后通过URL连接到服务器,发送注册请求,并返回服务器的响应结果。

  2. Den()方法:用于处理登录操作。获取用户输入的用户名和密码,然后通过URL连接到服务器,发送登录请求,并返回服务器的响应结果。

  3. ZIDen()方法:用于自动登录。使用之前保存的用户账号和密码,通过URL连接到服务器,发送登录请求,并返回服务器的响应结果。

  4. getQQMM()方法:用于读取本地保存的账号和密码。从文件中读取账号和密码,并保存在User类的静态变量中。

  5. setMessage()方法:用于保存账号和密码到本地文件。将用户账号和密码写入到本地文件中。

  6. wen()方法:用于检查根文件夹是否存在,如果不存在则创建。

  7. trans(int num)方法:用于将整数转换为字符串。

  8. trans(String str)方法:用于将字符串转换为整数。

  1. import java.net.*;
  2. import java.io.*;
  3. import java.util.Scanner;
  4. public class GetMessage {
  5. static int user;
  6. static String pass;
  7. public String Content() throws Exception {
  8. StringBuilder result = new StringBuilder();
  9. To.string("请输入注册的用户名");
  10. user = Input.putInt();
  11. To.string("请输入注册的密码");
  12. pass = Input.putString();
  13. String anUrl = "http://www.benmao.love/userregister.php?admin=1706780680&user=" + user + "&pass=" + pass;
  14. URL url = new URL(anUrl);
  15. URLConnection conn = url.openConnection();
  16. BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  17. String inputLine;
  18. while ((inputLine = in.readLine()) != null) {
  19. result.append(inputLine);
  20. }
  21. return result.toString();
  22. }
  23. public String Den() throws Exception {
  24. StringBuilder result = new StringBuilder();
  25. To.string("请输入登录的用户名");
  26. user = Input.putInt();
  27. To.string("请输入登录的密码");
  28. pass = Input.putString();
  29. String anUrl = "http://www.benmao.love/userlogin.php?admin=1706780680&user=" + user + "&pass=" + pass;
  30. URL url = new URL(anUrl);
  31. URLConnection conn = url.openConnection();
  32. BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  33. String inputLine;
  34. while ((inputLine = in.readLine()) != null) {
  35. result.append(inputLine);
  36. }
  37. return result.toString();
  38. }
  39. //自动登入
  40. public static String ZIDen() throws Exception {
  41. StringBuilder result = new StringBuilder();
  42. user=User.user;
  43. pass=User.pass;
  44. String anUrl = "http://www.benmao.love/userlogin.php?admin=1706780680&user=" + user + "&pass=" + pass;
  45. URL url = new URL(anUrl);
  46. URLConnection conn = url.openConnection();
  47. BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  48. String inputLine;
  49. while ((inputLine = in.readLine()) != null) {
  50. result.append(inputLine);
  51. }
  52. return result.toString();
  53. }
  54. //读取本地账号和密码
  55. public void getQQMM(){
  56. try (FileReader myQQ = new FileReader("D:\\Benmao\\qq.txt");
  57. FileReader myMM = new FileReader("D:\\Benmao\\mm.txt");
  58. BufferedReader brQQ = new BufferedReader(myQQ);
  59. BufferedReader brMM = new BufferedReader(myMM)) {
  60. String qq = brQQ.readLine();
  61. String mm = brMM.readLine();
  62. //每次调用的时候,顺带保存在运行中
  63. //记录运行账号密码
  64. User.user=trans(qq);
  65. User.pass=mm;
  66. } catch (IOException e) {
  67. throw new RuntimeException(e);
  68. }
  69. }
  70. public void setMessage() {
  71. String getQQ=trans(user);
  72. try {
  73. FileWriter myQQ = new FileWriter("D:\\Benmao\\qq.txt");
  74. FileWriter myMM = new FileWriter("D:\\Benmao\\mm.txt");
  75. myQQ.write(getQQ);
  76. myMM.write(pass);
  77. myQQ.close();
  78. myMM.close();
  79. } catch (IOException e) {
  80. To.string("文件写入出现异常");
  81. }
  82. }
  83. public void wen() {
  84. File wj = new File("D:\\Benmao");
  85. if (!wj.exists()) {
  86. wj.mkdir();
  87. }
  88. }
  89. //编码时转换代码
  90. public String trans(int num){
  91. return String.valueOf(num);
  92. }
  93. //编码时转换代码
  94. public int trans(String str){
  95. return Integer.parseInt(str);
  96. }
  97. }

用于处理用户的注册、登录和自动登录功能,以及保存和读取用户的账号和密码


        通过这个教程,您将能够创建一个安全、高效和易于使用的登入注册后台系统。这个系统将为用户提供便捷的登录和注册体验,并具备远程登录、自动登录和注册一体化的功能。

        总之,使用Java开发登入注册后台系统是一个令人兴奋和有挑战的任务。通过掌握这个教程中的知识和技巧,您将能够构建出令人满意的系统,并为用户提供出色的用户体验。

        希望这个总结能够帮助您对本文的内容有一个清晰的概述。祝您在开发登入注册后台系统的过程中取得成功!

本文源于CSDN转载

文末附加内容

评论

  1. 5 月前
    2025-8-21 10:59:29

    厉害厉害

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇