-
2019-08-22 15:10:25
注册登录系统
- 创建菜单,注册,登录,退出
- 注册模块:
a) 通过键盘输入用户名,密码
b) 保存用户名密码到user.txt文件(包含用户名和密码)
c) 注册成功 - 登录模块
a) 通过键盘输入用户名和密码
b) 判断(超过三次提示过多错误,需要休眠30秒)
c) 登陆成功
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; import java.util.Scanner; class TestRegex{ public boolean isUser(String user) { String regex="[1-9][0-9]{4,9}"; boolean b=user.matches(regex); return b; } public boolean isMiMa(String mm) { String regex="\\w+(\\.*\\w)"; boolean b=mm.matches(regex); return b; } } public class MySQLregisterTest{ //1. 注册登录系统 //1. 创建菜单,注册,登录,退出 public static void MySQLmenu() { System.out.println("***************************"); System.out.println("*****MySQL注册登录系统*****"); System.out.println("**1.注册"); System.out.println("**2.登录"); System.out.println("**3.退出"); } //2. 注册模块: //a) 通过键盘输入用户名,密码 //b) 保存用户名密码到user.txt文件(包含用户名和密码) //c) 注册成功 public static void MySQLregister() throws IOException { TestRegex tr=new TestRegex(); File f=new File("user.txt"); Scanner sc=new Scanner(System.in); System.out.println("欢迎来到注册界面!"); System.out.println("请输入用户名!"); String s=sc.next(); boolean bu=tr.isUser(s); FileInputStream fis=new FileInputStream("user.txt"); Properties pro=new Properties(); pro.load(fis); String user=pro.getProperty("user"); String pass=pro.getProperty("pass"); if(bu==false&&user.equals(s)) { System.out.println("账号注册失败"); }else { FileOutputStream fos=new FileOutputStream(f,true); byte[] bye=new byte[512]; int len=0; fos.write(("user="+s+"\r\n").getBytes()); fos.flush(); fos.close(); fis.close(); System.out.println("注册成功"); } System.out.println("请输入密码!"); String st=sc.next(); boolean bm=tr.isMiMa(st); if(bm==false&&pass.equals(st)) { System.out.println("密码注册失败"); }else { FileOutputStream fos=new FileOutputStream(f,true); byte[] bye=new byte[512]; int len=0; fos.write(("pass="+st+"\r\n").getBytes()); fos.flush(); fos.close(); fis.close(); System.out.println("账号注册成功"); } } //3. 登录模块 //a) 通过键盘输入用户名和密码 public static boolean Login() throws IOException{ boolean flag=false; Scanner sc=new Scanner(System.in); System.out.println("请输入用户名:"); String s=sc.next(); FileInputStream fis=new FileInputStream("user.txt"); Properties pro=new Properties(); pro.load(fis); String user=pro.getProperty("user"); String pass=pro.getProperty("pass"); if(s.equals(user)) { System.out.println("请输入密码:"); } String ms=sc.next(); if(ms.equals(pass)) { System.out.println("登录成功"); flag=true; } return flag; } //b) 判断(超过三次提示过多错误,需要休眠30秒) //c) 登陆成功 public static void Oder() { int n = 1; abc: while (n <4) { try { boolean flag = Login(); if (flag == false) { n++; } else { System.out.println("账号或密码错误,请确认账号密码"); n = 4; break abc; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) throws IOException, Exception { boolean flag=true; while(flag) { MySQLmenu(); Scanner sc=new Scanner(System.in); System.out.println("请输入选择项:"); int n=sc.nextInt(); switch(n) { case 1: MySQLregister(); break; case 2: Oder(); System.out.println("输入次数达到上限,休眠30秒"); Thread.sleep(30000); break; case 3: System.out.println("已退出系统"); flag=false; break; default: System.out.println("输入异常!请重新输入"); } } } }
更多相关内容 -
Java实验报告——用户登录系统
2022-02-21 22:30:051、实验项目名称:用户登录系统 2、实验要求: (1)了解自定义异常的用法; (2)熟悉异常处理机制及创建自定义异常。 3、使用:在了解Java异常机制的基础上自己编写的实验报告。 -
java用户注册登录源代码
2014-03-12 18:15:09完成实现用户登录注册基础代码,可以完成后台接受注册信息。 -
Java 登录注册系统 【java基础案例教程 案例2-6】
2021-12-18 13:39:59编写程序实现简单的登录注册系统。程序包括以下4个功能。 1)登录功能,用户输入正确的账号密码可成功登录 2)注册功能,输入用户名和密码进行注册 3)查看功能,查看所有的用户名和密码 4)退出功能,退出系统...案例要求
编写程序实现简单的登录注册系统。程序包括以下4个功能。
1)登录功能,用户输入正确的账号密码可成功登录
2)注册功能,输入用户名和密码进行注册
3)查看功能,查看所有的用户名和密码
4)退出功能,退出系统。
用户可以输入对应的编号进行相应的功能操作。例如输入"2"进行注册功能,输入用户名和密码进行注册。
本人按照自己的思路来写(水平有限)
首先注册再登录
1.我认为最难的点在于创建多个用户并且保存下来
解:运用二维数组进行保存
第一种定义方式:
数据类型[][] 数组名=new 数据类型[行的个数][列的个数]
第二种定义方式:
数据类型[][] 数组名={{},{},{},.....}
例 int[][] xx={{1,2},{3,2}}
利用二维数组的特性 可以理解为数组中的数组 而里面的最里面数组就可以用来储存账号和密码
外面那一层的数组可以用来用户的定位。
例 int[][] xx={{1,2},{3,2}}
int[0][0]就是第1个用户的账号"1" int[0][1]就是第1个用户的密码 "2"
每进行注册操作int[0+1][0] 我们就可以换一行进行储存了(也就相当于新建了一个账户)
这样我们就可以来储存多个用户和密码了。
2.第二难点是 如何现实登录系统
登录系统就要用户输入了
//先导包 import java.util.Scanner; //新建Scanner实例 Scanner scan= new Scannner(System.in);
String inputAccount =scan.nextInt();
账号与密码相匹配才显示登录成功 难就难在如何用户输入的账号密码与储存好的账号密码对比
我们可以利用for循环遍历查找
思路是 当边遍历边对比
思路如下:
for(int i=0;i<用户二维数组的长度;i++){ if(用户输入的账号.equals(数组用户二维数组[i][0])){//如是一样的我们就对比密码是否相同 if(用户输入的密码.equals(数组用户二维数组[i][1])){ System.out.println("登录成功"); } }else{//如果没找账号或者是密码错误就 打印"登录失败" System.out.println("登录失败"); } }
这个是个思路 并不是最终代码
最大的问题我们解决完了 就可以开始写代码了!加上一些细节上的东西
这个系统需要用户的输入所以
//先导包 import java.util.Scanner; //新建Scanner实例 Scanner scan= new Scannner(System.in);
我们先写后面我们要用到
我们可以先写界面
System.out.println("===登录系统==="); System.out.println("1.登录"); System.out.println("2.注册"); System.out.println("3.查看"); System.out.println("4.退出"); System.out.println("==注意== 未注册的用户请先注册"); System.out.println("请输入编号进行操作");
实现输入对应的编号进行相应的功能操作的话 可以这么写:
System.out.println("===登录系统==="); System.out.println("1.登录"); System.out.println("2.注册"); System.out.println("3.查看"); System.out.println("4.退出"); System.out.println("==注意== 未注册的用户请先注册"); System.out.println("请输入编号进行操作"); int input= scan.nextInt(); if(input==1){ account_1.login(numofregister); }else if(input==2){ numofregister++;//每注册一个账户都会分配一个在String[][] allAccount 新位置 account_1.register(numofregister); }else if(input==3){ account_1.showInfo(numofregister); //退出功能 }else if(input==4){ System.out.println("是否要退出登录系统?Y/N"); String quit=scan.next(); if("Y".equals(quit)){ in=false; }else { in=true; } }
numofregister是number of register 注册的数量 用这个变量名容易明白这个变量是用来干嘛的
代码段中的numofregister变量(为全局变量)的作用是用来计数的 每进行注册操作 就自+1
else if(input==2){ numofregister++;//每注册一个账户都会分配一个在String[][] allAccount 新位置 account_1.register(numofregister); }
就得写方法 写方法的同时我们可以建一个类 类名可以去为loginsystem
1.先加上成员变量 String[][] allAccount 用来储存用户数量和用户的账户和密码
class loinsystem{ //用户数量和用户的账户和密码存储 String[][] allAccount=new String[100][2]; }
2.我们先写方法 第一个方法 注册方法
//注册方法 public void register(int numofregister){ Scanner scanner=new Scanner(System.in); System.out.println("请输入账号名"); //String account用于接受用户输入的账号 String account=scanner.next(); System.out.println("请输入密码"); //String password用于接受用户输入的密码 String password=scanner.next(); //储存用户的账号密码 allAccount[numofregister][0]=account; allAccount[numofregister][1]=password; //提示注册成功 System.out.println("注册成功!"); System.out.println("\n"); }
代码段中的numofregister变量的作用是计数 每进行注册操作就自+1
像这段代码
//储存用户的账号密码 allAccount[numofregister][0]=account; allAccount[numofregister][1]=password;
因为每进行注册操作 numofregister变量就自+1 也就是说换了个位置储存新账户和密码
3.登录方法
public void login(int numofregister){ Scanner scan=new Scanner(System.in); System.out.println("请输入账号"); //inputAccount用于接受用户的输入账号 String inputAccount=scan.next(); System.out.println("请输入密码"); //inputPassword用于接受用户的输入密码 String inputPassword= scan.next(); //遍历查找用户的输入账号在数组的哪个位置以方便账号与密码匹配 for(int i=0;i<allAccount.length;i++) { if (i <= numofregister) {//避免空指针异常 if (inputAccount.equals(allAccount[i][0])) {//如果找到了账号在数组的位置就看密码与用户输入的密码是否匹配 if (inputPassword.equals(allAccount[i][1])) { System.out.println("登录成功"); } else { System.out.println("账号或密码有误 登录失败"); } } }else {//避免空指针异常 break; } } }
为了避免空指针异常(因为没有在空闲的空间输入数据 这些空间就没有地址也就是null 空)
for(int i=0;i<allAccount.length;i++)
如果没有限制条件的话会一直循环下去 因为数组中可能有空闲的空间但是没有地址 当循环到这些空间时会抛出异常也就是空指针异常。
if (i <= numofregister){ }else{ break; }
所以我们要"适可而止" 当循环到最后一位用户的位置时就结束循环
3.查看方法
public void showInfo(int numofregister){ for(int i=1;i<allAccount.length;i++){ if(i<=numofregister){//避免空指针异常 避免遍历过度 System.out.println("用户"+i+"信息如下:"); System.out.println("账号:"+allAccount[i][0]); System.out.println("密码:"+allAccount[i][1]); }else {//避免空指针异常 避免遍历过度 break; } } }
同理别循环过度了
加上一些细节完善一下
最终代码:
import java.util.Scanner; public class LoginSystem { public static void main(String[] args) { Scanner scan=new Scanner(System.in); boolean in=true;//用于开始和结束循环 loinsystem account_1=new loinsystem(); int numofregister=0;//用于计数 //界面 while(in){ System.out.println("===登录系统==="); System.out.println("1.登录"); System.out.println("2.注册"); System.out.println("3.查看"); System.out.println("4.退出"); System.out.println("==注意== 未注册的用户请先注册"); System.out.println("请输入编号进行操作"); int input= scan.nextInt(); if(input==1){ account_1.login(numofregister); }else if(input==2){ numofregister++;//每注册一个账户都会分配一个在String[][] allAccount 新位置 account_1.register(numofregister); }else if(input==3){ account_1.showInfo(numofregister); //退出功能 }else if(input==4){ System.out.println("是否要退出登录系统?Y/N"); String quit=scan.next(); if("Y".equals(quit)){ in=false; }else { in=true; } } } } } class loinsystem{ //用户数量和用户的账户和密码存储 String[][] allAccount=new String[100][2]; //注册方法 public void register(int numofregister){ Scanner scanner=new Scanner(System.in); System.out.println("请输入账号名"); //String account用于接受用户输入的账号 String account=scanner.next(); System.out.println("请输入密码"); //String password用于接受用户输入的密码 String password=scanner.next(); //储存用户的账号密码 allAccount[numofregister][0]=account; allAccount[numofregister][1]=password; //提示注册成功 System.out.println("注册成功!"); System.out.println("\n"); } //登录方法 public void login(int numofregister){ Scanner scan=new Scanner(System.in); System.out.println("请输入账号"); //inputAccount用于接受用户的输入账号 String inputAccount=scan.next(); System.out.println("请输入密码"); //inputPassword用于接受用户的输入密码 String inputPassword= scan.next(); //遍历查找用户的输入账号在数组的哪个位置以方便账号与密码匹配 for(int i=0;i<allAccount.length;i++) { if (i <= numofregister) {//避免空指针异常 if (inputAccount.equals(allAccount[i][0])) {//如果找到了账号在数组的位置就看密码与用户输入的密码是否匹配 if (inputPassword.equals(allAccount[i][1])) { System.out.println("登录成功"); } else { System.out.println("账号或密码有误 登录失败"); } } }else {//避免空指针异常 break; } } } //查看方法 public void showInfo(int numofregister){ for(int i=1;i<allAccount.length;i++){ if(i<=numofregister){//避免空指针异常 避免遍历过度 System.out.println("用户"+i+"信息如下:"); System.out.println("账号:"+allAccount[i][0]); System.out.println("密码:"+allAccount[i][1]); }else {//避免空指针异常 避免遍历过度 break; } } } }
-
java web实现的一个用户登录注册小系统
2018-04-10 18:27:34采用的是mysql数据库,jdbc驱动,用myeclipse开发的一个java web工程。 博客中有本小系统的详细说明,请参考:https://blog.csdn.net/qq_36631076/article/details/79878822 -
Java EE--注册登录系统
2018-09-20 11:56:03是一个JavaEE项目,用servlet和JSP实现用户注册登录系统,用到了MD5加密技术,对数据进行保护。 -
Java实现注册登录系统——基于Java Swing实现
2018-11-12 22:24:17技术简介:Java Swing 介绍 Swing 是一个为Java设计的GUI工具包。 Swing是JAVA基础类的一部分。 Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格...它们支持可更换的面板和主题(各种操作系统默认...技术简介:Java Swing 介绍
Swing 是一个为Java设计的GUI工具包。
Swing是JAVA基础类的一部分。
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
以上简介是引用的菜鸟教程里面的介绍,这个教程还是很不错的,比较简洁明了;点此这里查看菜鸟教程;
首先呢,我们既然要实现一个用户注册登录系统基于-Java Swing,就避免不了和数据库打交道,在这里我们选择MySQL数据库,采用的数据库驱动jar是:mysql-connector-java-5.1.22-bin.jar
1.第一步我们需要建立我们的数据库表,因为只涉及到用户的注册登录行为,我们的表结构很简单,只有用户名(username)和用户密码(password),我们的数据库名为mysql,表名为jdbc_dome 表结构如下图所示:
2.第二步我们来创建创建Java project 命名随你意;在这里我起的贪吃鬼(这个案例是我之前做的贪吃蛇小游戏的注册登录哪来的-)
项目目录如下图所示:
3.将下来我们就直接贴代码啦,代码里面该有的注释我都写上了,总共就三个包:一个包中是连接数据库的类(里面封装好了数据库连接以及释放资源的静态方法,直接在用的时候用类名调用就可以了)另一个是注册登录的类,还有一个图片资源包(里面放了一下我们所需要的图片)
1> 创建包com.mooc.login 类Login.java和Register.java
Login.java类 //用户登录窗体
package com.mooc.login; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Label; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.ResultSet; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import com.mooc.jdbcUtil.jdbcUtil; import com.mysql.jdbc.Statement; /** * 用户登录 * @author 大南海 * */ public class Login extends JFrame{ private JPanel contentPane; private JButton btn1,btn2,btn3; private JTextField userName; private JPasswordField password; private JLabel label1,label2; private int LOGIN_WIDTH=360; private int LOGIN_HEIGTH=350; Connection conn; Statement stam; public Login() { setTitle("贪吃鬼"); //设置窗体标题 setBounds(100, 50, LOGIN_WIDTH, LOGIN_HEIGTH ); //设置窗体坐标以及打下 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体可关闭 setResizable(false); //设置窗体大小不可以改变 setVisible(true); //设置窗体可见 //设置窗体标题图标 setIconImage( Toolkit.getDefaultToolkit().getImage(Login.class.getResource("/images/log.jpg")) ); /** * 添加一个面板容器到窗体中 */ contentPane = new JPanel(); contentPane.setBackground(Color.WHITE); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); //账号标签 label1=new JLabel(""); label1.setBounds(80,76, 54, 28); label1.setIcon(new ImageIcon(Login.class.getResource("/images/user.png"))); contentPane.add(label1); //密码标签 label2=new JLabel(""); label2.setBounds(80, 135, 54, 28); label2.setIcon(new ImageIcon(Login.class.getResource("/images/psw.png"))); contentPane.add(label2); //账号输入框 userName=new JTextField(); userName.setBounds(139, 80, 161, 25); contentPane.add(userName); //密码输入框 password=new JPasswordField(); password.setBounds(139, 140, 161, 25); contentPane.add(password); //按钮—登录 btn1=new JButton("登 录"); btn1.setBounds(95, 210, 80, 23); btn1.setIcon(new ImageIcon(Login.class.getResource("/images/btn1.png"))); btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btn1) { try { conn=jdbcUtil.getConnection();//获取数据库连接 stam= (Statement) conn.createStatement(); //创建sql语句执行对象 //编写sql语句 String sql="select * from user where username='"+userName.getText()+"' and password='"+password.getText()+"' "; //执行sql语句 ResultSet rs=stam.executeQuery(sql); if(rs.next()) { dispose();//关闭当前窗口 new Main(); } }catch (Exception e0) { e0.printStackTrace(); }finally { jdbcUtil.result(conn, stam); } } } }); contentPane.add(btn1); //按钮—退出 btn2=new JButton("退 出"); btn2.setBounds(210, 210, 80, 23); btn2.setIcon( new ImageIcon(Login.class.getResource("/images/exit.png"))); btn2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btn2) { dispose(); } } }); contentPane.add(btn2); //按钮-注册 btn3=new JButton("注 册"); btn3.setBounds(95,240,200, 23); btn3.setIcon(new ImageIcon(Login.class.getResource("/images/regier.png"))); btn3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose();//关闭登录窗体 new Register().addMan(); // 打开注册窗体 } }); contentPane.add(btn3); } public static void main(String[] args) { new Login(); } }
Register.java类 //用户注册窗体
package com.mooc.login; import java.awt.Color; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import com.mooc.jdbcUtil.jdbcUtil; /** * 用户注册 * @author 大南海 * */ public class Register extends JFrame { private int LOGIN_WIDTH=360; private int LOGIN_HEIGTH=350; private JPanel contentPane; private JTextField userName; private JPasswordField password; private JButton btn3,btn4; private JLabel label3,label4; Connection conn; Statement stam; public void addMan() { setTitle("注册"); setTitle("增删改查"); setBounds(100, 50, LOGIN_WIDTH, LOGIN_HEIGTH ); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setVisible(true); //设置窗体标题图标 setIconImage( Toolkit.getDefaultToolkit().getImage(Login.class.getResource("/images/log.jpg")) ); /** * 添加一个面板容器到窗体中 */ contentPane = new JPanel(); contentPane.setBackground(Color.WHITE); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); //账号标签 label3=new JLabel(""); label3.setBounds(80,76, 54, 28); label3.setIcon(new ImageIcon(Login.class.getResource("/images/user.png"))); contentPane.add(label3); //密码标签 label4=new JLabel(""); label4.setBounds(80, 135, 54, 28); label4.setIcon(new ImageIcon(Login.class.getResource("/images/psw.png"))); contentPane.add(label4); //账号输入框 userName=new JTextField(); userName.setBounds(139, 80, 161, 25); contentPane.add(userName); //密码输入框 password=new JPasswordField(); password.setBounds(139, 140, 161, 25); contentPane.add(password); btn3=new JButton("登 录"); btn3.setBounds(95, 210, 80, 23); btn3.setIcon(new ImageIcon(Login.class.getResource("/images/insist.png"))); btn3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btn3) { try { //加载数据库驱动 conn=jdbcUtil.getConnection(); //创建执行sql语句的对象 stam=conn.createStatement(); //编写sql语句 String sql="insert into user values('"+userName.getText()+"','"+password.getText()+"')"; //执行sql语句 stam.execute(sql); JOptionPane.showMessageDialog(null, "注册成功!"); dispose(); //关闭注册窗体 new Login(); //打开登录窗体 }catch (Exception e1) { e1.printStackTrace(); }finally { jdbcUtil.result(conn, stam); } } } }); contentPane.add(btn3); btn4=new JButton("退 出"); btn4.setBounds(210, 210, 80, 23); btn4.setIcon( new ImageIcon(Login.class.getResource("/images/exit.png"))); btn4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btn4) { dispose(); } } }); contentPane.add(btn4); } }
另外你可以创建一个登录成功后的窗体:比如Mian.java
package com.mooc.login; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.LinkedList; import java.util.WeakHashMap; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JOptionPane; public class Main extends JFrame { private static final int GAME_WIDTH = 1100; private static final int GAME_HEIGTH = 600; /** * 构造方法 */ public Main() { setTitle("主界面"); setSize(GAME_WIDTH, GAME_HEIGTH); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); setBackground(Color.darkGray); setLocationRelativeTo(null);// 居中显示 } }
2>创建包com.mooc.jdbcUtil 类jdbcUtil,java
类jdbcUtil,java //数据库封装操作类
package com.mooc.jdbcUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 数据库连接类 * @author 大南海 * */ public class jdbcUtil { private static final String dricerClass; private static final String url; private static final String username; private static final String password; static { dricerClass = "com.mysql.jdbc.Driver"; url = "jdbc:mysql:///jdbc_dome"; username = "root"; password = "root"; } /* * 加载数据库的方法 */ public static void locadClass() throws ClassNotFoundException { Class.forName(dricerClass); } /* * 获取数据库连接的方法 */ public static Connection getConnection() throws Exception { Connection conn = DriverManager.getConnection(url, username, password); return conn; } /* * 关闭连接并释放资源的方法 */ public static void result(Connection conn, Statement stam) { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; } if (stam != null) { try { stam.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stam = null; } } /* * 关闭连接并释放资源的方法 */ public static void result(Connection conn, Statement stam, ResultSet rs) { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; } if (stam != null) { try { stam.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stam = null; } if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } rs = null; } } }
运行截图:
截止现在 我们的这个简单小例子-注册登录就算完成了,以上内容功能是不缺少了,可能会缺少图片资源。你也可以自己找一下;你也可以选择下使用我之前上传的这个资源案例,是个小游戏(贪吃蛇),其中也包含这个注册登录;点击这里可以下载:
https://download.csdn.net/download/u014543872/10780768
谢谢你的浏览,以上内容如有错误欢迎在评论区指出或者私信我;
-
JAVA Web实现注册登录系统
2019-12-02 11:54:29最近因为项目需要写一个数据库的展示系统,之前没有接触过java web 的开发也是bijaio头疼。经过一周的辗转终于勉强完成了一个简单的原型系统,话不多说,上干货。(Eclipse!) 一:没有使用过java web的,第一步要...最近因为项目需要写一个数据库的展示系统,之前没有接触过java web 的开发也是bijaio头疼。经过一周的辗转终于勉强完成了一个简单的原型系统,话不多说,上干货。(Eclipse!)
一:没有使用过java web的,第一步要在你的eclipse里面下载web插件。
(1)在eclipse导航栏找到Help——>Install new software
(2)查看你的eclipse版本:找到eclipse安装路径下reademe文件夹下的HTML文件打开, 查看版本号
这里我用的是oxygen版本,大家根据自己的版本号到网上搜查自己对应要下载的版本
(3)在地址栏如下输入
稍等一会会自动跳出(拉到最下面选择web、XML、java EE、and OSGI Enterprise Development)
可以全选或者根据需要选择其中几个(我当时是选择所有下载但是出现问题,最后只选择了几个需要的,大家可以去 查找正常web开发需要的那几个)可能还会有人没有这个选项卡,Emmm自行百度吧,我没遇到。
(4)然后就是等待下载了,但是我在这个地方卡住了很久,希望读者不要像我一样,如果遇到,站内大佬们也给出了很多解答。下载成功的就可以根据向导的默认来安装。
二:配置Tomcat
这里我选择的是Tomcat9。配置方法站内大佬们也都有很多文章来帮助大家,读者可以自行查找配置。
三:新建Dynamic Web Project
File——> new——>other——>Web——>Dynamic Web Project
输入项目名称,注意Target runtime 在下拉框选择刚刚安装好的Tomcat9。一路next下去,如果有需要的可以根据提示更改。
注意:这个Generate web.xml选项一定要勾上!!
大家可以先展开项目,看看里面的结构。 正常会使用到的就是在java resources下的某个包中新建class、Servlet等后台文件。
其次就是在WebContent下新建前端jsp、js等文件。
四:配置JDBC,连接数据库(SQL server)
因为项目用的是SQL server,因此我使用的是连接SQL server的jdbc,大家根据需要自行下载并配置jdbc。
前提是先将自己的SQL server数据库配置好啊!!
可以用SSMS来管理自己的SQL。
记得要在SQL 中新建一个t_user表来存储注册的用户信息啊!!
五:下面就是大家最想要的代码啦!!
(1)DbUtil.java:获取数据库连接
import java.sql.Connection; import java.sql.DriverManager; public class DbUtil{ //这里更换成自己的数据库和用户密码 private String dbUrl="jdbc:sqlserver://localhost:1433;DatabaseName=aaa"; private String dbUserName="zxc"; private String dbPassword="zxc123456"; private String jdbcName="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //获取数据库 public Connection getCon() throws Exception{ Class.forName(jdbcName); Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword); return con; } //关闭数据库 public void closeCon(Connection con) throws Exception{ if(con!=null) { con.close(); } } public static void main (String[] args) { DbUtil dbUtil=new DbUtil(); try { dbUtil.getCon(); System.out.println("数据库连接成功"); }catch(Exception e) { e.printStackTrace(); } } }
(2)Operation.java:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * 对数据库进行操作的后台程序 */ public class Operation{ public user login(Connection con,user user) throws Exception{ user resultUser=null; String sql="select *from dbo.t_user where userName=? and password=?"; PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1, user.getUserName()); pstmt.setString(2, user.getPassword()); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { resultUser=new user(); resultUser.setUserName(rs.getString("userName")); resultUser.setPassword(rs.getString("password")); rs.close(); } return resultUser; } public boolean register(Connection con,user user) throws Exception{ boolean flag=false; PreparedStatement pstmt=null; String sql="INSERT INTO dbo.t_user(userName,password)VALUES(?,?)"; pstmt=con.prepareStatement(sql); pstmt.setString(1, user.getUserName()); pstmt.setString(2, user.getPassword()); if(pstmt.executeUpdate()>0) { flag=true; } return flag; } }
(3)LoginServlet.java:
import java.io.IOException; import java.sql.Connection; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ /** * 接受前台的值 账号和密码 */ String userName=req.getParameter("userName"); String password=req.getParameter("password"); DbUtil db=new DbUtil(); user user1=new user(userName,password); Operation dao=new Operation(); try { //数据连接 Connection con=db.getCon(); if(dao.login(con,user1)!=null) { resp.sendRedirect("Home.jsp"); } else { resp.sendRedirect("register.jsp"); } }catch (Exception e) { e.printStackTrace(); } } }
(4)RegisterServlet.java:
import java.io.IOException; import java.sql.Connection; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/RegisterServlet") public class RegisterServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ //接受前台传来的值 账号和密码 String userName=req.getParameter("username"); String password=req.getParameter("password1"); DbUtil db=new DbUtil(); user user=new user(userName,password); Operation dao=new Operation(); try { Connection con=db.getCon(); if(dao.register(con, user)) { resp.sendRedirect("login.jsp"); } else { resp.sendRedirect("register.jsp"); } }catch (Exception e) { e.printStackTrace(); } } }
(5)user.java:读取用户
public class user { public String userName; public 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; } }
(6)login.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" %> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>装备保障原型系统</title> <link href="static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="./">装备保障原型系统</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <li><a href="login.jsp">登录</a></li> </ul> </div> </div> </nav> <div class="container"> <div class="row"> <div class="col-md-4"> </div> <div class="col-md-4"> <form class="form-signin" method="post" action="LoginServlet"> <div style="width:100%;text-align:center"> <h2 class="form-signin-heading" >欢迎登录! </h2> </div> <label for="">用户名</label> <input type="text" name="userName" id="userName" class="form-control" placeholder="请输入用户名" required autofocus><br> <label for="">密码</label> <input type="password" name="password" id="password" class="form-control" placeholder="请输入密码" required> <div class="checkbox"> <label> <input type="checkbox" value="remember-me" checked="checked"> 记住密码 </label> </div> <button type="submit" class="btn btn-primary" id="btn-login">登录</button> <a href="register.jsp" class="btn btn-default">注册</a> </form> </div> <div class="col-md-4"> </div> </div> </div> </body> </html>
(7)register.jsp:
<%@ page contentType="text/html; charset=utf-8" language="java"%> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>注册</title> <link href="static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="./">装备保障原型系统</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <li><a href="login.jsp">登录</a></li> </ul> </div> </div> </nav> <div class="container"> <div class="row"> <div class="col-md-4"> </div> <div class="col-md-4"> <form class="form-signin" action="RegisterServlet" method="post"> <div style="width:100%;text-align:center"> <h2 class="form-signin-heading">欢迎注册!</h2> </div> <div id="info"> </div> <label for="">用户名</label> <input type="text" name="username" id="username" class="form-control" placeholder="请输入用户名" required autofocus><br> <label for="">密码</label> <input type="password" name="password1" id="password1" class="form-control" placeholder="请输入密码" required><br> <label for="">重复密码</label> <input type="password" name="password2" id="password2" class="form-control" placeholder="请再次输入密码" required maxLength="16"><br> <button type="submit" class="btn btn-primary" id="btn-reg" onclick=submit()>注册</button> <a href="login.jsp" class="btn btn-default" id="btn-reg">返回登录</a> </form> </div> <div class="col-md-4"> </div> </div> </div> </body> </html>
(8)home.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>装备保障原型系统</title> </head> <body> <form class="form-signin" method="post" action="LoginServlet"> <div style="width:100%;text-align:center"> <h2 class="form-signin-heading" >装备保障原型系统</h2> </div> </form> </body> </html>
(9)jsp代码中使用了一些bootstrap来修饰页面,使用前需要先将bootstrap下载并导入项目,同时需要将JQuery包一并导入进去。
下面给大家看一下项目结构:(static文件夹自己新建,大家可以根据这两个文件名去网上下载,然后把这两个包导入)
六:执行结果图
(1)
(2)
新手上车,互进互勉!
-
Java多人聊天室(有登录注册)
2019-12-10 13:00:28根据所学的java皮毛编写的一个简单聊天小程序,使用到了集合,IO,Socket,多线程,GUI等方面的知识,实现了服务器和客户端、登录注册、多人聊天、单独聊天等功能。算是对自己前期学习的小总结。 -
Java用户信息注册与登录系统.pdf
2021-10-08 00:22:07Java用户信息注册与登录系统.pdf -
java用户注册管理系统
2010-06-14 19:30:50这是一个java用户注册管理系统,对于学习java的人非常有用,希望大家多多下载。 -
基于Java 实现的简易登录-注册系统
2021-03-13 16:50:00原标题:基于Java 实现的简易登录-注册系统 该项目适用于 学习完 基础的编程语法的同学进行进阶学习【1】基于Java实现简易的 注册 + 登录 系统非 数据库 实现!!!一、项目分析基础菜单栏:主界面、登录界面,注册界面... -
用户注册登录系统
2013-12-19 23:06:23用户注册和登录这两个功能几乎是每一个网站所必需的功能,特别是网站需要识别用户身份。用户注册可以向用户提供在网站中注册其信息的功能;用户注册之后,该用户即可以通过用户登录功能登录到该网站。用户的登录能够... -
java用户管理系统
2018-01-30 22:14:48用户管理系统分为管理员模块和普通用户模块 管理员: 1.查找用户(1.全部显示2.根据ID查询3.根据用户名查询) 2.添加用户 3.修改用户 4.删除用户 用户: 1.查看自己的信息 2.修改自己的信息 游客: 1.登入 2.注册 -
Java 实现用户注册登陆
2018-10-24 14:57:19一个用户注册登陆的系统,用到了MD5加密处理密码,实现了一个简单的数据库连接池connectionPool, 实现了注册,登陆,登陆之后修改用户信息等功能,非常适合初学者 一.准备工作 数据库:MySQL 5.5.62-log MySQL ... -
基于SSH的用户注册登录系统设计与实现
2018-09-20 11:26:03此文档介绍了基于SSH的用户注册登录系统设计与实现的完整过程,用Java代码编写,SSH为框架,数据库为SQL Server。是Java Web的实战项目。 -
java注册登陆系统
2018-05-01 10:43:52使用SQLserver和JavaSE开发的用户注册管理系统,可以让初学者学习Java工程的创作流程,学习整个框架结构。 -
JAVA语言编程练习--图形界面+文件输入输出流--实现简单的用户注册登录系统
2021-11-06 12:53:09客户需求: 制作一个注册登录系统,可以把用户名和密码保存在txt文件里。完成登录、注册等功能。... (1)、设计用户注册界面: 如图: 通过swing类库中的JFrame、JLabel、JText、JButton、Box等组件... -
实现用户注册登录的简单程序
2018-11-10 13:27:33简单实现用户注册登录系统: 包括登录页面、注册页面、主页面; 对前端提交的数据,通过js进行合法性判断(用户名只能使用字母数字下划线组成,密码只能使用数字,注册时,两次输入的密码必须相同),不符合要求,不... -
JAVA做的用户登录、注册、查询、修改、删除简单系统
2012-08-08 20:36:05本资源适合JAVA初学者,主要知识点是学会如何写文件读文件方法,理解集合的运用,以及方法的调用,系统还没有进行优化可以进一步优化,希望对所下载者有所帮助。 -
java 连接数据库实现用户登录功能
2019-01-05 21:34:19java 连接数据库实现用户登录功能 能运行成功,适合初学者借鉴学习。 -
注册登录Javaswing
2018-11-30 09:19:42通过swing画出界面,连接数据库,用户通过数据库验证正确之后方可登录 -
使用JAVA实现图形用户化界面的用户登录系统
2022-04-01 09:25:11使用JAVA实现图形用户化界面的用户登录系统 -
运用JDBC实现一个注册、登录系统的编写
2021-01-30 21:41:22首先,建立一个数据库,存储注册成功的账户信息。其SQL的DDL语句如下:示意图以下方法...注册验证用户名唯一性判断是否成功登录Java代码效果图底部的三个按钮分别用于进入登录界面、注册、清除注册信息。Java代码效果图 -
Java控制台程序实现登录注册商品管理系统
2018-03-19 21:54:49在控制台中实现用户登录注册和增删改查,分享一下 在控制台中实现用户登录注册和增删改查,分享一下 在控制台中实现用户登录注册和增删改查,分享一下 -
基于servlet+ajax用户注册登录系统.zip
2018-05-10 21:08:19作业:用户登录注册系统,后台采用jsp + servlet + javabean技术实现,浏览器客户端采用ajax框架之jquery框架! 要求: 不能抄袭,没有分组,面向接口编程,不要迟到! 1、注册的信息: 用户名,密码,性别(下拉... -
用java编程实现用户注册并进行登录操作
2021-02-12 13:49:33importjava.util.*;publicclassassignment{publicstaticvoidmain(String[]...//是否继续标识符do{//系统主菜单System.out.println("*****欢迎进入系统*****");Sy...import java.util.*;public class assignment {p... -
java用户登录注册
2019-08-16 11:03:45用户登录注册 案例需求 涉及知识点 面向对象,接口,Java序列化,HashMap,IO流 欢迎界面 public class BootStrap { public static void main(String[] args) { System.out.println("欢迎来到自动售货系统,请... -
Java实现简单登录界面
2020-08-09 13:46:43最近刚刚学习Java,试着做了一个简单的登录注册界面,只是点击按钮之后输出响应,并没有完成后续的跳转操作。