网上书城项目
第一阶段:使用JavaScript对register.html页面实现表单验证
需求
- 验证用户名:必须由字母,数字下划线组成,并且长度为 5 到 12 位
- 验证密码:必须由字母,数字下划线组成,并且长度为 5 到 12 位
- 验证确认密码:和密码相同
- 邮箱验证:xxxxx@xxx.com
- 验证码:现在只需要验证用户已输入。因为还没讲到服务器。验证码生成
代码实现
<script type="text/javascript">
// 页面加载完成之后
$(function () {
// 给注册绑定单击事件
$("#sub_btn").click(function () {
// 验证用户名:必须由字母,数字下划线组成,并且长度为5到12位
//1 获取用户名输入框里的内容
var usernameText = $("#username").val();
//2 创建正则表达式对象
var usernamePatt = /^\w{5,12}$/;
//3 使用test方法验证
if (!usernamePatt.test(usernameText)) {
//4 提示用户结果
$("span.errorMsg").text("用户名不合法!");
return false;
}
// 验证密码:必须由字母,数字下划线组成,并且长度为5到12位
//1 获取用户名输入框里的内容
var passwordText = $("#password").val();
//2 创建正则表达式对象
var passwordPatt = /^\w{5,12}$/;
//3 使用test方法验证
if (!passwordPatt.test(passwordText)) {
//4 提示用户结果
$("span.errorMsg").text("密码不合法!");
return false;
}
// 验证确认密码:和密码相同
//1 获取确认密码内容
var repwdText = $("#repwd").val();
//2 和密码相比较
if (repwdText != passwordText) {
//3 提示用户
$("span.errorMsg").text("确认密码和密码不一致!");
return false;
}
// 邮箱验证:xxxxx@xxx.com
//1 获取邮箱里的内容
var emailText = $("#email").val();
//2 创建正则表达式对象
var emailPatt = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;
//3 使用test方法验证是否合法
if (!emailPatt.test(emailText)) {
//4 提示用户
$("span.errorMsg").text("邮箱格式不合法!");
return false;
}
// 验证码:现在只需要验证用户已输入。因为还没讲到服务器。验证码生成。
var codeText = $("#code").val();
//去掉验证码前后空格
// alert("去空格前:["+codeText+"]")
codeText = $.trim(codeText);
// alert("去空格后:["+codeText+"]")
if (codeText == null || codeText == "") {
//4 提示用户
$("span.errorMsg").text("验证码不能为空!");
return false;
}
// 去掉错误信息
$("span.errorMsg").text("");
});
});
</script>
第二阶段 :实现用户的注册和登录
需求1:用户注册
需求如下:
- 访问注册页面
- 填写注册信息,提交给服务器
- 服务器应该保存用户
- 当用户已经存在----提示用户注册 失败,用户名已存在
- 当用户不存在-----注册成功
需求2:用户登陆
需求如下:
- 访问登陆页面
- 填写用户名密码后提交
- 服务器判断用户是否存在
- 如果登陆失败 —>>>> 返回用户名或者密码错误信息
- 如果登录成功 —>>>> 返回登录成功信息
需要提前掌握的知识
JavaEE 项目的三层架构:
搭建书城项目开发环境
代码实现
2.1 先创建书城需要的数据库和表
create table t_book(
id int primary key auto_increment,
name varchar(100) not null,
price decimal(11,2) not null,
author varchar(100) not null,
sales int not null,
stock int not null,
img_path varchar(200) not null
);
insert into t_book(id , name , author , price , sales , stock , img_path)
values(null , '数据结构与算法' , '严敏君' , 78.5 , 6 , 13 , 'static/img/default.jpg');
...
select id,name,author,price,sales,stock,img_path from t_book;
2.2 编写数据库对应的JavaBean对象
public class User {
private Integer id;
private String username;
private String password;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
'}';
}
public User() {
}
public User(Integer id, String username, String password, String email) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
}
2.3 编写工具类JDbc.Utils
2.3.1 导入需要的 jar 包(数据库和连接池需要)
druid-1.1.9.jar
mysql-connector-java-5.1.7-bin.jar
以下是测试需要:
hamcrest-core-1.3.jar
junit-4.12.jar
2.3.2 在 src 源码目录下编写 jdbc.properties 属性配置文件
username=root
password=888
url=jdbc:mysql://localhost:3306/book
driverClassName=