- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Java简易登录注册小程序由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象。本例中如果有注释不详细的地方,详见其它博客.
功能介绍:简单的登录注册系统,使用了数据库sqlserver、单例模式、正则表达式以及图形化开发等知识.
1、在登录界面,可以登录或者注册用户。 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入。 2、点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示。反之则进行注册。 3、登录界面,点击登录按钮时,首先与数据库建立连接。按照用户名和密码来向数据库中查找,若有,则登录成功。反之给出提示。 4、利用单例模式,实现了只创建类SQLserver的一个对象,大大节省了内存开销 。 程序完整代码见:https://github.com/chaohuangtianjie994/A-login-register-System 5、基于此,可以进行大量的拓展功能。 。
代码如下:
UserRegister.java 登录界面.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
package
package1;
/*
* 功能:登录界面带着注册功能,弹出注册界面。
* 将注册的信息保存在数据库中,并且可以进行登录操作。
* author:ywq
*/
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.*;
import
java.sql.*;
public
class
UserRegister
extends
JFrame
implements
ActionListener{
//定义登录界面的组件
JButton jb1,jb2,jb3=
null
;
JRadioButton jrb1,jrb2=
null
;
JPanel jp1,jp2,jp3=
null
;
JTextField jtf=
null
;
JLabel jlb1,jlb2=
null
;
JPasswordField jpf=
null
;
public
static
void
main(String[] args)
{
UserRegister ur=
new
UserRegister();
}
public
UserRegister()
{
//创建组件
//创建组件
jb1=
new
JButton(
"登录"
);
jb2=
new
JButton(
"注册"
);
jb3=
new
JButton(
"退出"
);
//设置监听
jb1.addActionListener(
this
);
jb2.addActionListener(
this
);
jb3.addActionListener(
this
);
jlb1=
new
JLabel(
"用户名:"
);
jlb2=
new
JLabel(
"密 码:"
);
jtf=
new
JTextField(
10
);
jpf=
new
JPasswordField(
10
);
jp1=
new
JPanel();
jp2=
new
JPanel();
jp3=
new
JPanel();
jp1.add(jlb1);
jp1.add(jtf);
jp2.add(jlb2);
jp2.add(jpf);
jp3.add(jb1);
jp3.add(jb2);
jp3.add(jb3);
this
.add(jp1);
this
.add(jp2);
this
.add(jp3);
this
.setVisible(
true
);
this
.setResizable(
false
);
this
.setTitle(
"注册登录界面"
);
this
.setLayout(
new
GridLayout(
3
,
1
));
this
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this
.setBounds(
300
,
200
,
300
,
180
);
}
@Override
public
void
actionPerformed(ActionEvent e) {
//监听各个按钮
if
(e.getActionCommand()==
"退出"
)
{
System.exit(
0
);
}
else
if
(e.getActionCommand()==
"登录"
)
{
//调用登录方法
this
.login();
}
else
if
(e.getActionCommand()==
"注册"
)
{
//调用注册方法
this
.Regis();
}
}
//注册方法
public
void
Regis() {
this
.dispose();
//关闭当前界面
new
UI();
//打开新界面
}
//登录方法
public
void
login() {
SQLserver s=
new
SQLserver();
s.ConnectSQL();
s.SQLverify(jtf.getText(), jpf.getText());
this
.jtf.setText(
""
);
this
.jpf.setText(
""
);
}
}
|
UI.java 用于注册的页面显示。使用了正则表达式来规定输入的内容。注册时候,需要首先判断用户名是否存在,若存在,则给出提示,反之进行注册.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
package
package1;
import
java.awt.event.*;
import
java.awt.*;
import
javax.swing.*;
/*
* 注册界面。
*/
class
UI
extends
JFrame
implements
ActionListener{
//定义组件
JFrame jf;
JPanel jp;
JLabel jl1,jl2,jl3,jl4;
JTextField jtf1,jtf2,jtf3,jtf4;
JButton jb1,jb2;
public
UI()
{
//初始化组件
jf=
new
JFrame();
jp=
new
JPanel();
jl1=
new
JLabel(
"请输入用户名:"
);
jtf1=
new
JTextField(
10
);
jtf1.setToolTipText(
"用户名必须为3-6位字母_或者数字"
);
jl2=
new
JLabel(
"请输入密码:"
);
jtf2=
new
JTextField(
10
);
jtf2.setToolTipText(
"密码必须为6位字母_或者数字"
);
jl3=
new
JLabel(
"请输入姓名:"
);
jtf3=
new
JTextField(
10
);
jtf3.setToolTipText(
"姓名必须汉字2-4位"
);
jl4=
new
JLabel(
"请输入学号:"
);
jtf4=
new
JTextField(
10
);
jtf4.setToolTipText(
"学号必须为3-6位数字"
);
jb1=
new
JButton(
"返回"
);
jb1.setToolTipText(
"点我返回登录界面哦"
);
jb2=
new
JButton(
"注册"
);
jb1.addActionListener(
this
);
jb2.addActionListener(
this
);
jp.setLayout(
new
GridLayout(
5
,
2
));
jp.add(jl1);
jp.add(jtf1);
jp.add(jl2);
jp.add(jtf2);
jp.add(jl3);
jp.add(jtf3);
jp.add(jl4);
jp.add(jtf4);
jp.add(jb1);
jp.add(jb2);
this
.add(jp);
this
.setTitle(
"注册界面"
);
this
.setBounds(
200
,
100
,
250
,
150
);
this
.setVisible(
true
);
this
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// this.setResizable(false);
}
public
void
actionPerformed(ActionEvent e) {
if
(e.getActionCommand()==
"返回"
)
{
this
.dispose();
new
UserRegister();
// System.out.println("-------");
}
else
if
(e.getActionCommand()==
"注册"
)
{
//调用注册方法
this
.zhuce();
}
}
public
void
zhuce()
{
String regex1=
"\\w{3,6}"
;
//用户名必须是3-6位
boolean
flag1=jtf1.getText().matches(regex1);
String regex2=
"\\w{6}"
;
//密码必须是6位
boolean
flag2=jtf2.getText().matches(regex2);
String regex3=
"[\\u4e00-\\u9fa5]{2,4}"
;
//姓名必须是汉字2-4个字
boolean
flag3=jtf3.getText().matches(regex3);
String regex4=
"\\d{3,6}"
;
//学号必须是3-6位
boolean
flag4=jtf4.getText().matches(regex4);
// if(jtf1.getText()==null||jtf2.getText()==null||jtf3.getText()==null||jtf4.getText()==null)
if
(flag1==
false
)
{
JOptionPane.showMessageDialog(
null
,
"用户名填写错误,必须为3-6位字母_或者数字"
,
"提示信息"
, JOptionPane.WARNING_MESSAGE);
jtf1.setText(
""
);
}
else
if
(flag2==
false
)
{
JOptionPane.showMessageDialog(
null
,
"密码填写错误,必须为6位字母_或者数字"
,
"提示信息"
, JOptionPane.WARNING_MESSAGE);
jtf2.setText(
""
);
}
else
if
(flag3==
false
)
{
JOptionPane.showMessageDialog(
null
,
"姓名填写错误,必须汉字2-4位"
,
"提示信息"
, JOptionPane.WARNING_MESSAGE);
jtf3.setText(
""
);
}
else
if
(flag4==
false
)
{
JOptionPane.showMessageDialog(
null
,
"学号填写错误,必须为3-6位数字"
,
"提示信息"
, JOptionPane.WARNING_MESSAGE);
jtf4.setText(
""
);
}
else
{
//调用注册方法/先检查要注册的用户名是否存在
SQLserver ss=
new
SQLserver();
ss.ConnectSQL();
ss.ZhuceVerify(jtf1.getText());
// ss.UserRegis(jtf1.getText(),jtf2.getText(),jtf3.getText(), jtf4.getText());
this
.jtf1.setText(
""
);
this
.jtf2.setText(
""
);
this
.jtf3.setText(
""
);
this
.jtf4.setText(
""
);
}
}
}
|
SQLserver.java实现了与数据库的连接以及查询验证等各个功能.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
package
package1;
import
java.sql.*;
import
javax.swing.JOptionPane;
/*
* 与数据库相关的操作,单独封装成类
*/
class
SQLserver {
Connection ct;
PreparedStatement ps;
ResultSet rs;
String user,pwd;
//将连接数据库的方法封装为一个方法
public
void
ConnectSQL()
{
try
{
Class.forName(
"sun.jdbc.odbc.JdbcOdbcDriver"
);
//加载驱动
ct=DriverManager.getConnection(
"jdbc:odbc:ywq"
);
//得到连接
System.out.println(
"已成功连接数据库..."
);
}
catch
(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//注册用户的方法
public
void
UserRegis(String a,String b,String c,String d)
{
//创建火箭车
try
{
ps=ct.prepareStatement(
"insert into users values(?,?,?,?)"
);
ps.setString(
1
,a);
ps.setString(
2
,b);
ps.setString(
3
,c);
ps.setString(
4
,d);
//执行
int
i=ps.executeUpdate();
if
(i==
1
)
{
JOptionPane.showMessageDialog(
null
,
"注册成功"
,
"提示消息"
,JOptionPane.WARNING_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(
null
,
"注册失败"
,
"提示消息"
,JOptionPane.ERROR_MESSAGE);
}
}
catch
(SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 登录验证方法
public
void
SQLverify(String a,String b)
{
try
{
ps=ct.prepareStatement(
"select * from users where 用户名=? and 密码=? "
);
ps.setString(
1
, a);
ps.setString(
2
, b);
// ResultSet结果集,大家可以把ResultSet理解成返回一张表行的结果集
rs = ps.executeQuery();
if
(rs.next())
{
user = rs.getString(
1
);
pwd = rs.getString(
2
);
JOptionPane.showMessageDialog(
null
,
"登录成功!!!"
,
"提示消息"
, JOptionPane.WARNING_MESSAGE);
System.out.println(
"成功获取到密码和用户名from数据库"
);
System.out.println(user +
"\t"
+ pwd +
"\t"
);
}
else
{
JOptionPane.showMessageDialog(
null
,
"用户名或者密码错误,请重新输入!"
,
"提示消息"
, JOptionPane.ERROR_MESSAGE);
}
}
catch
(SQLException e) {
e.printStackTrace();
}
}
//注册验证方法,判断用户名是否已经存在
public
void
ZhuceVerify(String a)
{
try
{
ps=ct.prepareStatement(
"select * from users where 用户名=?"
);
// System.out.println(ps);
ps.setString(
1
, a);
rs=ps.executeQuery();
if
(rs.next())
{
JOptionPane.showMessageDialog(
null
,
"该用户名已经存在"
,
"提示信息"
, JOptionPane.WARNING_MESSAGE);
}
else
{
// 进行注册
UI ui=
new
UI();
this
.UserRegis(ui.jtf1.getText(),ui.jtf2.getText(),ui.jtf3.getText(),ui.jtf4.getText());
}
}
catch
(SQLException e) {
e.printStackTrace();
}
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/qq_25827845/article/details/51549278 。
最后此篇关于Java简易登录注册小程序的文章就讲到这里了,如果你想了解更多关于Java简易登录注册小程序的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个问题,想知道如何在已经使用常规登录/注册系统的网站上集成第 3 方登录(也进行静默注册)。 基本上当前登录还是比较规律的: 当用户进入网站 session 时类(class)决定他是否需要重新
我在学习 Hyperledger Fabric 并运行示例代码。 我仍在尝试正确了解事情的运作方式,尤其是在使用证书和加密 Material 的用户/管理员注册和注册中。 我想知道以下如何工作。 1)
我正在尝试使用从我的 Android 设备的 PassWallet 应用程序中保存的票证中获取的 token 向我的设备发送消息。 设备发送使用苹果钱包规范更新通行证所需的所有信息。但是,我正在使用
使用 Passport 本地示例,我可以登录工作。没有关于如何注册用户的文档。 我想为用户提供一个“电子邮件”和“密码”字段,他们可以使用它们来注册该网站。我怎样才能做到这一点?有什么原因没有记录下来
在之前的一些 WSO2IS 版本中,有一个默认的 self 注册功能。但是,我在 5.0 版本中找不到它。 阅读 WSO2IS 5.0 文档,我发现有 2 个用于此功能的 API: getUserId
我已将 Airship SDK 集成到 Android 应用程序中。在应用程序启动和飞艇起飞后,我在日志中得到以下调试信息: 07-27 12:46:31.916 XXX - UALib( 1545)
Delphi 中设计时包的可怕错误之一是以下错误,这意味着注册安装新组件到您的 Palette 上的包: Component TSomething can't be registered by pac
我发现的大部分内容都使用 php 或类似的东西。 我有一个 Angular 前端和 Node/express 服务器代码。还没有后端。我不确定如何继续用户注册。 最佳答案 在没有后端的情况下进行注册等
我正在使用 Drupal 6 开发一个网站。我正在使用我自己的主题,并且一切正常。现在我需要使用我的自定义主题在我的网站上创建一个自定义登录/注册表单。我尝试了很多方法,但一切都重定向到我的管理主题,
我在运行此代码时收到 Sip 异常。这是因为 manager.register(me,20,listener)。 下面是我的代码,所以请帮我更正这段代码。我正在使用 SipDemo 代码注册我的帐户。
在过去的几天里,我一直在尝试为基于 VUE 的 excel 制作任务 Pane 插件。 我已按照 link 的指南进行操作我试图为 onSelectionChange 注册一个事件处理程序。它已经有些
我需要在使用 django-registration 应用程序的登录表单中实现一个“记住我”按钮。任何ane可以帮助我向我展示这样做的方法吗? 谢谢 最佳答案 一种方法是更改 session 到期
我发现,如果您使用 Django 1.5 版本,则 django 注册模块会中断,因为在最新的 django 开发版本中,simple.py 类已被删除。 最佳答案 此问题现已修复: hg clone
我正在尝试将 facebook connect 实现到我的网站,但有几个问题。 1:是否可以使用用户当前的 Facebook 电子邮件/密码在我的网站上注册用户。 假设用户点击链接通过 faceboo
我使用 Facebook 注册来允许人们在我的网站上注册。有没有可能,在注册后,他在我的网站注册的成员(member)墙上会张贴? 最佳答案 这可能不是您正在寻找的答案,但我强烈建议您不要这样做。用户
I would like to use a slash (/) for a search during a vimscript, but I don't want to overwrite the "
我正在使用 jqgrid 并且有显示日期的列,但是来自服务器的日期以 json 格式出现,如下所示, "CommentedDate": "\/Date(1304324941000+0530)\/" 如
我希望用户可以直接登录主页,而不是在“../account/login/”页面上登录。我应该做什么才能使它成为可能?如何将主页上的输入字段与 allauth 连接?我不知道这样是否太复杂而无法以这种方
This question already has answers here: Understanding NSString comparison (7个答案) 5年前关闭。 我正在尝试制作注册表。有
我正在使用 Django 注册。它提供了处理 registration_form.html 的 View ,该 html 当前包含用户名、密码 1、密码 2 和电子邮件作为我的应用程序中的用户可输入字
我是一名优秀的程序员,十分优秀!