web课程设计.docx
《web课程设计.docx》由会员分享,可在线阅读,更多相关《web课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
![web课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/22/315cd68e-8aec-4ec3-ba8c-478cc1b2a6d1/315cd68e-8aec-4ec3-ba8c-478cc1b2a6d11.gif)
web课程设计
《WEB技术》
课程设计报告
题目:
_________用户信息管理系统____________
学院计算机与信息工程学院
班级____商务1101______
学号___1112200108___
姓名___张怀平_______
2013年6月
一、任务书
本系统是由我个人自己完成。
系统设计目标如下:
表1
设计目标
用户管理基本功能分为前台客户使用部分、后台管理员使用部分。
前台基本功能,包括客户注册、客户登录、客户基本资料修改,密码修改,客户信息查看等功能。
后台基本功能,包括用户查询、添加用户、用户资料修改、删除用户等功能。
开发环境
Mysql,Tomcat,MyEclipse,windows
运行环境
Windows,Tomcat,Mysql
二、设计报告
1、功能分析
1.1功能概况
该系统主要分为前台系统和后台系统。
前台系统功能包括用户注册,用户登陆,用户信息查看,用户密码修改等功能。
后台只有管理员才可以登陆,主要功能有系统用户的添加,系统用户信息的修改,系统用户信息的查询,系统用户删除等。
管理员默认的的账户是yishaoku,密码是123。
如果想改变可以在数据库中的t_manager中进行修改。
普通用户系统中已经存在一些。
如:
账户:
azhang,姓名:
张怀平,密码:
yishaoku等。
系统功能流程图如下:
图1
1.2系统角色设计
该用户管理系统的角色主要由两类,普通用户角色和管理员角色。
其中普通用户又可以分为未注册用户,和已经注册用户。
两类用户各自的权限如下:
用户:
图2
管理员:
图3
1.3主要业务流程设计
1.3.1用户注册
图4
1.3.2用户登陆
图5
1.3.3用户修改密码
图6
1.3.4管理员添加用户
图7
1.3.5管理员修改用户信息
图8
1.3.6管理员删除用户
图9
2、数据库表设计
本系统主要是模拟用户的信息管理,主要涉及两张表,普通用户信息表t_user,管理员信息表t_manager。
普通用户信息表如下:
表2
字段名
数据类型
长度
含义
备注
user_id
varchar
11
用户账号
主码
user_name
varchar
50
用户姓名
非空
password
varchar
50
用户密码
非空
contact_tel
varchar
20
联系电话
非空
email
varchar
50
电子邮箱
非空
create_date
datetime
无
申请日期
非空
普通用户信息表t_user的ER图如下:
图10
管理员信息表如下:
表3
字段名
数据类型
长度
含义
备注
name
varchar
50
用户账号
主码
password
varchar
50
用户姓名
非空
管理员信息表ER图如下:
图11
3、功能实现
普通用户信息表和管理员信息的表通过两个JavaBean来封装,代码如下:
普通用户:
packagecom.bjsxt.drp.business.usermgr.model;
importjava.util.Date;
publicclassUser{
privateStringuserId;
privateStringuserName;
privateStringpassword;
privateStringcontactTel;
privateStringemail;
privateDatecreateDate;
publicStringgetContactTel(){
returncontactTel;
}
publicvoidsetContactTel(StringcontactTel){
this.contactTel=contactTel;
}
publicDategetCreateDate(){
returncreateDate;
}
publicvoidsetCreateDate(DatecreateDate){
this.createDate=createDate;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetUserId(){
returnuserId;
}
publicvoidsetUserId(StringuserId){
this.userId=userId;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
}
管理员如下:
packagecom.bjsxt.drp.business.usermgr.model;
publicclassManager{
privateStringname;
privateStringpassword;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
整个系统对数据库的操作是一个重要的环节,因为对数据库的操作是一个耗资源的操作,所以连接数据库和操作数据库的代码要合理设计,本系统对数据库操作代码如下:
packagecom.bjsxt.drp.business.util;
importjava.sql.*;
publicclassDB{
publicstaticConnectiongetConn(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/db_user?
user=root&password=yishaoku");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
}
publicstaticvoidcloseConn(Connectionconn){
try{
if(conn!
=null){
conn.close();
conn=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidcloseStmt(Statementstmt){
try{
if(stmt!
=null){
stmt.close();
stmt=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidcloseRs(ResultSetrs){
try{
if(rs!
=null){
rs.close();
rs=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
上面的代码是连接数据库服务器,查询服务,修改服务和关闭数据库连接的代码。
接下来介绍该系统具体实现对用户表的CRUD(增删改查)的操作。
代码如下:
具体操作用户信息表的代码:
packagecom.bjsxt.drp.business.usermgr.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.Timestamp;
importjava.util.ArrayList;
importjava.util.List;
importcom.bjsxt.drp.business.usermgr.model.User;
importcom.bjsxt.drp.business.util.DB;
publicclassUserDao4MySqlImplimplementsUserDao{
publicvoidaddUser(Connectionconn,Useruser){
Stringsql="insertintot_user(user_id,user_name,password,contact_tel,email,create_date)"
+"values(?
?
?
?
?
?
)";
PreparedStatementpstmt=null;
try{
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,user.getUserId());
pstmt.setString(2,user.getUserName());
pstmt.setString(3,user.getPassword());
pstmt.setString(4,user.getContactTel());
pstmt.setString(5,user.getEmail());
pstmt.setTimestamp(6,newTimestamp(user.getCreateDate().getTime()));
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeStmt(pstmt);
}
}
publicvoiddeleteUsers(Connectionconn,String[]userIdList){
StringBuffersbfSql=newStringBuffer();
for(inti=0;isbfSql.append("'").append(userIdList[i]).append("'").append(",");
}
Stringsql="deletefromt_userwhereuser_idin("
+sbfSql.substring(0,sbfSql.length()-1)+")";
Statementstmt=null;
try{
stmt=conn.createStatement();
stmt.executeUpdate(sql);
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeStmt(stmt);
DB.closeConn(conn);
}
}
publicListfindAllUserList(){
Stringsql="select*fromt_userorderbyuser_id";
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
ListuserList=newArrayList();
try{
conn=DB.getConn();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
Useruser=newUser();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
userList.add(user);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeRs(rs);
DB.closeStmt(stmt);
DB.closeConn(conn);
}
returnuserList;
}
publicUserfindUserById(StringuserId){
Stringsql="select*fromt_userwhereuser_id=?
";
Useruser=null;
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
conn=DB.getConn();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,userId);
rs=pstmt.executeQuery();
if(rs.next()){
user=newUser();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeRs(rs);
DB.closeStmt(pstmt);
DB.closeConn(conn);
}
returnuser;
}
publicUseruserSearch(StringuserId,Stringpassword){
Stringsql="select*fromt_userwhereuser_id=?
andpassword=?
";
Useruser=null;
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
conn=DB.getConn();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,userId);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
if(rs.next()){
user=newUser();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeRs(rs);
DB.closeStmt(pstmt);
DB.closeConn(conn);
}
returnuser;
}
publicvoidmodifyUser(Connectionconn,Useruser){
Stringsql="updatet_usersetuser_name=?
password=?
contact_tel=?
email=?
whereuser_id=?
";
PreparedStatementpstmt=null;
try{
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,user.getUserName());
pstmt.setString(2,user.getPassword());
pstmt.setString(3,user.getContactTel());
pstmt.setString(4,user.getEmail());
pstmt.setString(5,user.getUserId());
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeStmt(pstmt);
}
}
}
操作管理员的代码:
packagecom.bjsxt.drp.business.usermgr.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importcom.bjsxt.drp.business.usermgr.model.Manager;
importcom.bjsxt.drp.business.util.DB;
publicclassManagerDao4MySqlImplimplementsManagerDao{
publicManagerfindManager(Stringname,Stringpassword){
Stringsql="select*fromt_managerwherename=?
andpassword=?
";
Managermanager=null;
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
conn=DB.getConn();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
if(rs.next()){
manager=newManager();
manager.setName(rs.getString("name"));
manager.setPassword(rs.getString("password"));
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeRs(rs);
DB.closeStmt(pstmt);