# Web 应用开发课程设计——注册页面
## 1 需求分析
设计一个注册页面,手机验证码发送,将注册的用户信息放入数据库中。
### 1.1 用户注册
当程序运行时,显示注册所需要填写的个人信息。
个人信息有用户名、密码、Email、姓名、手机号、性别、出生日期。
### 1.2 邮箱激活
注册成功后,跳转邮箱激活页面。
### 1.3 主菜单
运行 Tomcat,进入系统主界面,如下:
![](https://www.writebug.com/myres/static/uploads/2022/1/5/f6a7845969eafa15e1cfeb30087a2176.writebug)
### 1.3 各项功能
#### 1 表单校验
1).用户名:单词字符,长度 8 到 20 位
2).密码:单词字符,长度 8 到 20 位
3).email:邮件格式
4).姓名:非空
5).手机号:手机号格式
6).出生日期:非空
7).验证码:非空
#### 2. 注册成功
##### 2.1 输入信息注册:
![](https://www.writebug.com/myres/static/uploads/2022/1/5/a30ab41df1b1151520a33f5e9f197de3.writebug)
##### 2.2 注册成功跳转页面
![](https://www.writebug.com/myres/static/uploads/2022/1/5/ef4808fbf9977de9ac05bf68ba1be976.writebug)
## 2 系统设计
### 2.1 数据库表
![](https://www.writebug.com/myres/static/uploads/2022/1/5/569541fc73074217b14aafdbc10520e9.writebug)
图 2.1.1 数据库表
![](https://www.writebug.com/myres/static/uploads/2022/1/5/8d7e5b8000cdb987af06368c53b6fa16.writebug)
图 2.1.2 数据库表
### 2.2 ER 图
![](https://www.writebug.com/myres/static/uploads/2022/1/5/b83f29ba3bb68fe0dbfd24c7fa23f935.writebug)
图 3-1 数据库 ER 图
### 2.3 UML 类图(Class Diagram)
对于用户功能模块,共设计如下 5 个类。
VO 实体类 User:与数据库结构进行映射的类。主要由属性,setter, getter 方法组成,VO 类中的属性与表中的字段相对应,每一个 VO 类的对象都表示表中的每一条记录
DAO 接口 IUserDAO:主要定义操作的接口,定义一系列数据库的原子性操作,例如增删改查(通常称为 CRUD)等。
DAO 实现类 UserDAOImpl:DAO 接口的真实实现类,主要完成具体数据库操作,但不负责数据库的打开和关闭。
DAO 工厂类 DAOFactory:通过工厂类取得一个 DAO 的实例化对象
业务逻辑实现类 UserService:对于数据层的原子操作进行整合。还要负责数据库的打开与关闭(不管是否出异常,数据库都要关闭)
各类的结构及类之间的关系如图 2-5 所示:
![](https://www.writebug.com/myres/static/uploads/2022/1/5/7379e63bc14e501a2c6ab6eeca852e4b.writebug)
图 2-3 用户功能类图
### 2.4 UML 时序图(Sequence Diagram)
#### 2.4.1 系统注册
![](https://www.writebug.com/myres/static/uploads/2022/1/5/00055a9fcf0798304930c4a6ca3fd74d.writebug)
图 2.4.1
## 3 系统实现
### 3.1 项目结构
![](https://www.writebug.com/myres/static/uploads/2022/1/5/84e7b119ff77cace029c80643e5640a3.writebug)
图 3.1 项目结构
### 3.2 配置文件
在项目下新建 Source Folder,名为 resources
#### 3.2.1 druid.properties 文件
该配置文件主要是以文件形式保存数据库的驱动类名称,连接数据库的 URL 地址,访问数据库的用户名及对应的密码,程序运行时会读取该文件相关信息,避免硬编码,当相关信息发生变化时,只需修改配置文件而不用修改源代码,增加程序的可扩展型。
```
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///web_kechengsheji
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
```
#### 3.2.2 web.xml 文件
web.xml 文件是用来初始化配置信息
```
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
```
### 3.3 VO 类 User.java
#### 3.3.1User 的实体类
```
package vo;
import java.io.Serializable;
/**
* 用户实体类
*/
public class User implements Serializable {
private int uid;//用户id
private String username;//用户名,账号
private String password;//密码
private String name;//真实姓名
private String birthday;//出生日期
private String sex;//男或女
private String telephone;//手机号
private String email;//邮箱
private String status;//激活状态,Y代表激活,N代表未激活
private String code;//激活码(要求唯一)
/**
* 无参构造方法
*/
public User() {
}
/**
* 有参构方法
* @param uid
* @param username
* @param password
* @param name
* @param birthday
* @param sex
* @param telephone
* @param email
* @param status
* @param code
*/
public User(int uid, String username, String password, String name, String birthday, String sex, String telephone, String email, String status, String code) {
this.uid = uid;
this.username = username;
this.password = password;
this.name = name;
this.birthday = birthday;
this.sex = sex;
this.telephone = telephone;
this.email = email;
this.status = status;
this.code = code;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
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 getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
```
#### 3.3.2ResultInfo 的实体类
用于封装后端返回前端数据对象
```
package vo;
import java.io.Serializable;
import java.util.Objects;
/**
* 用于封装后端返回前端数据对象
*/
public class ResultInfo implements Serializable {
private boolean flag;//后端返回结果正常为true,发生异常返回false
private Object data;//后端返回结果数据对象
private String errorMsg;//发生异常的错误消息
//无参构造方法
public ResultInfo() {
}
publ
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于JSP实现注册页面(Web 应用开发课程设计)【100012297】 (179个子文件)
Good.class 3KB
Good.class 3KB
YijiDao.class 3KB
YijiDao.class 3KB
YijiDao.class 3KB
YijiDao.class 3KB
Good.class 2KB
Good.class 2KB
ErjiDao.class 2KB
ErjiDao.class 2KB
ErjiDao.class 2KB
ErjiDao.class 2KB
Queryyiji.class 2KB
Queryyiji.class 2KB
Queryyiji.class 2KB
Queryyiji.class 2KB
DatabaseConnection.class 2KB
DatabaseConnection.class 2KB
DatabaseConnection.class 2KB
DatabaseConnection.class 2KB
GoodDao.class 2KB
GoodDao.class 2KB
GoodDao.class 2KB
GoodDao.class 2KB
Erji.class 1KB
Erji.class 1KB
yiji.class 1KB
yiji.class 1KB
Danwei.class 1019B
Danwei.class 1019B
Yiji.class 998B
Yiji.class 998B
Yiji.class 995B
Yiji.class 995B
Erji.class 887B
Erji.class 887B
Danwei.class 708B
Danwei.class 708B
DanweiDao.class 260B
DanweiDao.class 260B
DanweiDao.class 260B
DanweiDao.class 260B
index.css 2KB
index.css 2KB
index.css 2KB
index.css 2KB
李悦web应用开发课程设计报告.docx 1.78MB
~$web应用开发课程设计报告.docx 162B
.gitattributes 66B
index.html 2KB
index.html 2KB
index.html 2KB
index.html 2KB
xiangmu4.iml 1KB
kengchengsheji_web_liyue.iml 1KB
mysql-connector-java-8.0.20.jar 2.28MB
mysql-connector-java-8.0.20.jar 2.28MB
druid-1.0.9.jar 1.76MB
druid-1.0.9.jar 1.76MB
spring-core-4.2.4.RELEASE.jar 1.03MB
spring-core-4.2.4.RELEASE.jar 1.03MB
mysql-connector-java-5.1.49.jar 983KB
mysql-connector-java-5.1.49.jar 983KB
jackson-databind-2.2.3.jar 846KB
jackson-databind-2.2.3.jar 846KB
mysql-connector-java-5.1.18-bin.jar 771KB
mysql-connector-java-5.1.18-bin.jar 771KB
spring-beans-4.2.4.RELEASE.jar 714KB
spring-beans-4.2.4.RELEASE.jar 714KB
c3p0-0.9.1.2.jar 596KB
c3p0-0.9.1.2.jar 596KB
spring-jdbc-4.2.4.RELEASE.jar 413KB
spring-jdbc-4.2.4.RELEASE.jar 413KB
jstl-1.2.jar 405KB
jstl-1.2.jar 405KB
jstl-1.2.jar 405KB
jstl-1.2.jar 405KB
jstl-impl.jar 379KB
jstl-impl.jar 379KB
spring-tx-4.2.4.RELEASE.jar 259KB
spring-tx-4.2.4.RELEASE.jar 259KB
gson-2.8.6.jar 235KB
gson-2.8.6.jar 235KB
gson-2.8.6.jar 235KB
gson-2.8.6.jar 235KB
commons-beanutils-1.8.3.jar 227KB
commons-beanutils-1.8.3.jar 227KB
jackson-core-2.2.3.jar 188KB
jackson-core-2.2.3.jar 188KB
gson-2.2.4.jar 186KB
gson-2.2.4.jar 186KB
javax.persistence.jar 127KB
javax.servlet.jsp.jar 77KB
javax.servlet.jar 68KB
commons-logging-1.1.1.jar 59KB
commons-logging-1.1.1.jar 59KB
javax.ejb.jar 46KB
javax.servlet.jsp.jstl.jar 44KB
javax.servlet.jsp.jstl.jar 44KB
javax.resource.jar 43KB
共 179 条
- 1
- 2
资源评论
神仙别闹
- 粉丝: 2676
- 资源: 7664
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功