sqlregister

jsp页面输入的注册信息添加到数据库

今天第一次实现的注册信息添加到数据库中,我就不讲那么多的废话了,就让我直接讲述一下这个问题的关键的代码吧:

1、主要的注册页面的代码:register.jsp

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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" href="css/style.css"/>
<title>
用户注册
</title>
</head>
<body bgcolor="#e3e3e3">
<div class="head">
<center><span>网上书店</span></center>
</div>
<form name="Reg" action="servlet/RegisterSerlet" method="post">
<div class="form_row">
<table class="contact">
<tr>
<td>登录名:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="logname"> <span style="color:red;">*</span></td>
</tr>
<tr>
<td>真实姓名:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="realname"> <span style="color:red;">*</span></td>
</tr>
<tr>
<td>密码:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="password" name="password" class="contact"> <span style="color:red;">*</span> </td></tr>
<tr>
<td>email:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="email"> <span style="color:red;">*</span></td>
</tr>
<tr>
<td>地址:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="address" class="contact"> <span style="color:red;">*</span></td></tr>
<tr>
<td>电话:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="phone"> <span style="color:red;">*</span></td>
</tr>
<tr>
<td>密码提示问题:<input type="text" name="problem" class="contact"> <span style="color:red;">*</span></td></tr>
<tr>
<td>密码回答问题:<input type="text" name="answer"> <span style="color:red;">*</span></td>
</tr>
<tr>
<td>省份:
<select name="province">
<option>河北省</option>
<option>贵州省</option>
<option>湖北省</option>
<option>宁夏</option>
</select>
<span style="color:red;">*</span>
</td>
</tr>
<tr>
<td>企业用户简介:<br>
<textarea name="selfintro" id="text" rows="5" cols="70" placeholder="请输入企业用户内容";
style="color: dimgrey; font-size: 16px; autofocus:true;"
onfocus="textIN('text')"></textarea>
<span style="color:red;">*</span></td>
</tr>
<tr><td>
<select name="type">
<option >1</option>
<option>2</option>
</select></td></tr>
<tr>
<td><a href="login.jsp">返回登录</a></td></tr>
<tr>
<td ><input type="submit" value="注册" name="submit"></td>
</tr>
</table>
</div>
</form>
<script>
function textIN(id){
/*当textarea获得焦点时*/
var text = document.getElementById(id);
text.style.color = "gray";
text.style.fontFamily = "宋体";
text.style.fontSize = 18;
}
</script>
<script>
//用户名:
var usernameRegex = /^\w{3,15}$/;
//密码:
var passwordRegex = /^\w{6,12}$/;
//邮箱:
var emailRegex = /^\w+@\w+(\.\w+)+$/;
//alert("222");
function validateForm(){ //定义validateForm方法用于客户端校验
var flag = true;
//校验用户名
var usernameNode = byId("username"); //获得ID值为username的节点对象
var username = usernameNode.value; //获得usernameNode节点的值,即用户在username文本框内填写的值
if(!usernameRegex.test(username)){ //验证获得到的值是否符合正则表达式
byId("username_span").style.color = "red"; //如果不符合,则将ID值为username_span的节点对象内容变为红色
flag = false; //返回false,不提交
}
//校验密码
var passwordNode = byId("password1"); //获得ID值为password的节点对象
var password = passwordNode.value;
if(!passwordRegex.test(password)){
byId("password1_span").style.color = "red";
flag = false;
}
//确认密码
// var rePasswordNode = byId("password2"); //获得ID值为rePassword的节点对象
// var rePassword = rePasswordNode.value;
// if(!password==rePassword){
// byId("password2_span").style.color = "red";
// flag = false;
// }else if(!passwordRegex.test(rePassword)){
// byId("password2_span").style.color = "red";
// flag = false;
// }else{
/// byId("password2_span").style.color = "green";
// }
//校验邮箱
var emailNode = byId("email"); //获得ID值为Email的节点对象
var email = emailNode.value;
if(!emailRegex.test(email)){
byId("email_span").style.color = "red";
flag = false;
}
return flag;
}
function byId(id){ //自定义方法,用于获取传递过来的ID值对应的节点对象
return document.getElementById(id);
}
function checkUsername(node){ //当鼠标离开节点时调用此方法,验证节点内容是否符合注册规范
//校验用户名
var username = node.value; //得到传递过来的节点对象的值
if(!usernameRegex.test(username)){ //验证是否符合节点对应的正则表达式
byId("username_span").style.color = "red"; //不符合,相应内容变成红色
}else{
byId("username_span").style.color = "green"; //符合,相应内容变成绿色
}
}
function checkPassword(node){ //当鼠标离开节点时调用此方法,验证节点内容是否符合注册规范
//校验密码
var password1 = node.value;
//alert("111");
if (!passwordRegex.test(password)) {
byId("password1_span").style.color = "red";
}
else {
byId("password1_span").style.color = "green";
}
}
function checkRePassword(node){ //当鼠标离开节点时调用此方法,验证节点内容是否符合注册规范
//确认密码
var rePassword = node.value;
var password = byId("password2").value;
//alert(repassword+"***"+password);
if(!password==rePassword){
byId("rePassword2_span").style.color = "red";
}else if(!passwordRegex.test(rePassword)){
byId("rePassword2_span").style.color = "red";
}else{
byId("rePassword2_span").style.color = "green";
}
}
function checkEmail(node){ //当鼠标离开节点时调用此方法,验证节点内容是否符合注册规范
//校验邮箱
var email = node.value;
if(!emailRegex.test(email)){
byId("email_span").style.color = "red";
}else{
byId("email_span").style.color = "green";
}
}
</script>
</body>
</html>

2、Users.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
package cn.itcast.User;
public class Users {
private String logname;
private String realname;
private String password;
private String email;
private String address;
private String phone;
private String problem;
private String answer;
private String province;
private String selfintro;
private int type;
//定义构造方法
public Users(){}
public Users(String logname,String realname,String password,String email,String address,String phone,String problem,String answer,String province,String selfintro,int type){
this.address=address;this.answer=answer;this.email=email;this.logname=logname;this.password=password;this.phone=phone;
this.problem=problem;this.province=province;this.realname=realname;this.selfintro=selfintro;this.type=type;
}
//定义属性get和set方法
public String getLogname() {
return logname;
}
public void setLogname(String logname) {
this.logname = logname;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getProblem() {
return problem;
}
public void setProblem(String problem) {
this.problem = problem;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getSelfintro() {
return selfintro;
}
public void setSelfintro(String selfintro) {
this.selfintro = selfintro;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}

3、UsersDAO.java的相关代码:定义的是一个接口类

1
2
3
4
5
6
7
8
9
10
11
package dao;
import java.util.List;
import cn.itcast.User.Users;
public interface UsersDAO {
public void add(Users c);//添加用户
public void update(Users c);//修改用户
public List<Users> query();//查询返回所有用户
}

4、UsersDAOer.java这里来实现上面的接口类(UsersDAO.java),里面有add,update,List query

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
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cn.itcast.DB.DBHelper;
import cn.itcast.User.Users;
public class UsersDAOer implements UsersDAO {
@Override
public void add(Users c) {
// TODO Auto-generated method stub
String sql="insert into user(logname,realname,password,email,address,phone,problem,answer,province,selfintro,type) values(?,?,?,?,?,?,?,?,?,?,?)";
Connection conn=DBHelper.open();
try {
PreparedStatement pst=(PreparedStatement) conn.prepareStatement(sql);
pst.setString(1,c.getLogname());
pst.setString(2,c.getRealname());
pst.setString(3,c.getPassword());
pst.setString(4,c.getEmail());
pst.setString(5,c.getAddress());
pst.setString(6,c.getPhone());
pst.setString(7,c.getProblem());
pst.setString(8,c.getAnswer());
pst.setString(9,c.getProvince());
pst.setString(10,c.getSelfintro());
pst.setInt(11,c.getType());
pst.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBHelper.close(conn);
}
}
@Override
public void update(Users c) {
// TODO Auto-generated method stub
String sql="update user set password=? where logname=?";
Connection conn=DBHelper.open();
try {
PreparedStatement pst=(PreparedStatement) conn.prepareStatement(sql);
pst.setString(1,c.getLogname());
pst.setString(2,c.getRealname());
pst.setString(3,c.getPassword());
pst.setString(4,c.getEmail());
pst.setString(5,c.getAddress());
pst.setString(6,c.getPhone());
pst.setString(7,c.getProblem());
pst.setString(8,c.getAnswer());
pst.setString(9,c.getProvince());
pst.setString(10,c.getSelfintro());
pst.setInt(11,c.getType());
pst.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBHelper.close(conn);
}
}
@Override
public List<Users> query() {
// TODO Auto-generated method stub
String sql="select * from user";
Connection conn=DBHelper.open();
try {
Statement stmt=(Statement) conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
List<Users> list=new ArrayList<Users>();
while(rs.next())
{
String logname=rs.getString(1);
String realname=rs.getString(2);
String password=rs.getString(3);
String email=rs.getString(4);
String address=rs.getString(5);
String phone=rs.getString(6);
String problem=rs.getString(7);
String answer=rs.getString(8);
String province=rs.getString(9);
String selfintro=rs.getString(10);
int type=rs.getInt(11);
Users c=new Users();
c.setLogname(logname);
c.setPassword(password);
c.setAddress(address);
c.setAnswer(answer);
c.setPhone(phone);
c.setProblem(problem);
c.setProvince(province);
c.setRealname(realname);
c.setEmail(email);
c.setSelfintro(selfintro);
c.setType(type);
list.add(c);
}
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBHelper.close(conn);
}
return null;
}
}

5、servlet包下面的RegisterServlet.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
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.itcast.User.Users;
import dao.UsersDAO;
import dao.UsersDAOer;
public class RegisterSerlet extends HttpServlet {
/**
* Constructor of the object.
*/
public RegisterSerlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
Users user=new Users();
String logname,realname, password,email, address, phone, problem, answer, province,text;
int typ;
//try{
logname=request.getParameter("logname");
realname=request.getParameter("realname");
password=request.getParameter("password");
email=request.getParameter("email");
address=request.getParameter("address");
phone=request.getParameter("phone");
problem=request.getParameter("problem");
answer=request.getParameter("answer");
province=request.getParameter("province");
String selfintro = request.getParameter("selfintro");
int type = Integer.parseInt(request.getParameter("type"));
user.setLogname(logname);
user.setAddress(address);
user.setAnswer(answer);
user.setEmail(email);
user.setPassword(password);
user.setPhone(phone);
user.setProblem(problem);
user.setProvince(province);
user.setRealname(realname);
user.setSelfintro(selfintro);
user.setType(type);
PrintWriter out=response.getWriter();
if(logname!=""&&realname!=""&&password!=""&&email!=""&&address!=""&&answer!=""&&phone!=""&&problem!=""&&province!=""&&selfintro!=""&&type!=0)
{
UsersDAO dao=new UsersDAOer();//调用接口读取方法来实例化
Users c=new Users();
c.setLogname(logname);
c.setRealname(realname);
c.setPassword(password);
c.setEmail(email);
c.setAddress(address);
c.setAnswer(answer);
c.setPhone(phone);
c.setProblem(problem);
c.setProvince(province);
c.setSelfintro(selfintro);
c.setType(type);
dao.add(c);
out.println("恭喜您!注册成功");
}
else
{
out.println("您输入的信息有误,请重新输入!");
}
//把注册信息成功的用户对象保存在session
//request.getSession().setAttribute("regUser", user);
// //跳转到注册成功页面
// request.getRequestDispatcher("../userinfo.jsp").forward(request, response);
//}catch(Exception ex){
// ex.printStackTrace();
// }
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}