基于JavaEE技术平台婚介系统的开发与设计.docx
《基于JavaEE技术平台婚介系统的开发与设计.docx》由会员分享,可在线阅读,更多相关《基于JavaEE技术平台婚介系统的开发与设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于JavaEE技术平台婚介系统的开发与设计
4.2.3数据库表结构设计
本系统后台数据库中总共设计了7张数据表,分别为用户信息表(t_user)、动态信息表(t_bowen)、相册信息表(t_xiangce)、评论信息表(t_pinglun)、公告信息表(t_gonggao)、照片信息表(t_zhaopian))和管理员信息表(t_admin)。
具体结构设计如下:
(1)用户信息表(t_users)
用户信息表主要用于存放用户的信息,主要字段包括:
用户ID,用户账号,密码,状态,地址,电话,头像等。
表4-1用户信息表(t_users)
字段名
数据类型
字段描述
长度
主键
ID
int
用户ID
4
√
Name
varchar
用户账号
50
Pwd
用户密码
Realname
昵称
Sex
性别
Address
住址
Tel
联系方式
picpath
头像
(2)动态信息表(t_bowen)
动态信息表主要用于存储用户添加的动态信息,主要字段有动态编号、标题、内容
表4-2动态信息表(t_bowen)
Int
动态编号
Title
Varchar
标题
Content
动态内容
5000
Times
Date
添加时间
User_id
用户Id
Clicks
浏览量
(3)相册信息表(t_xiangce)
动态信息表主要用于存储用户添加的相册信息,主要字段有相册编号、标题、内容
表4-3相册类型信息表(t_xiangce)
相册编号
相册标题
(4)评论信息表(t_pinglun)
评论信息表主要用于对动态的评论信息,主要字段包括:
评论时间,评论内容,评论者姓名。
表4-4评论信息表(t_pinglun)
评论编号
content
评论内容
shjian
评论时间
bowen_id
动态ID
(5)公告信息表(t_gonggao)
公告信息表主要用于网站的公告的信息,主要字段包括:
公告标题、公告内容,添加日期。
表4-5公告信息表(t_gonggao)
Id
编号
Conent
内容
times
Datetime
发布时间
(6)照片信息表(t_zhaopian)
照片信息表主要用于用户的照片信息,主要字段包括:
用户ID、照片标题、照片介绍。
表4-6好友信息表(t_zhaopian)
title
照片标题
fujian
照片路径
jieshao
照片介绍
xiangce_id
相册ID
(7)管理员信息表(admin)
管理员信息表主要用于系统管理员的信息,主要字段包括:
编号、登陆账号、登陆密码。
表4-7管理员信息表(admin)
10
登陆账号
登陆密码
第5章系统详细设计
5.1系统首页设计
页面的上方显示的是该网站的logo和当前的时间,下方主要部分是信息显示区域,右侧中间部分是通知公告,管理员发布的信息公告都可以在此点击后链接到相应的信息页面查看具体通知公告,右上方是登陆模块,用户必须输入正确的用户名、密码和验证码后才能进入系统,右下方方是一个精美的日立表。
首页界面如图5-1:
图5-1首页界面
5.2用户注册模块
(1)用户注册模块界面
游客要想使用本系统的功能,并不是仅仅局限于浏览和评论,前台条件是必须先注册一个用户账号,然后凭此账号登陆,才能拥有相册上传、好友管理、动态发布等这些功能。
注册界面如图5-2所示:
图5-2用户注册图
(2)用户注册模块关键代码
publicStringuserReg()
{
TUseruser=newTUser();
user.setUserName(userName);
user.setUserPw(userPw);
user.setUserAddress(userAddress);
user.setUserTel(userTel);
user.setUserRealname(userRealname);
user.setUserEmail(userEmail);
user.setUserSex(userSex);
user.setUserQq(userQq);
user.setFujian(fujian.equals("")==true?
"/img/none.gif":
fujian);
user.setFangwenliang(0);
user.setUserDel("no");
userDAO.save(user);
return"successAdd";
}
publicStringuserEdit()
TUseruser=userDAO.findById(userId);
user.setFujian(fujian);
userDAO.getHibernateTemplate().update(user);
Maprequest=(Map)ServletActionContext.getContext().get("request");
request.put("msg","修改成功");
return"msg";
5.3照片发布模板
(1)照片模块界面
在这个界面中,用户需要输入照片标题、照片说明信息。
照片发布模块界面如图5-3所示:
图5-3照片发布模块界面
(2)照片发布模块关键代码
publicStringzhaopianAdd()
HttpServletRequestrequest=ServletActionContext.getRequest();
TZhaopianzhaopian=newTZhaopian();
zhaopian.setTitle(request.getParameter("title"));
zhaopian.setFujian(request.getParameter("fujian"));
zhaopian.setXiangceId(Integer.parseInt(request.getParameter("xiangceId")));
zhaopian.setDel("no");
zhaopianDAO.save(zhaopian);
request.setAttribute("msg","上传图片成功");
publicStringzhaopianDel()
Stringsql="updateTZhaopiansetdel='yes'whereid="+id;
xiangceDAO.getHibernateTemplate().bulkUpdate(sql);
request.put("msg","照片删除成功");
publicStringxiangceAll()
Stringsql="fromTXiangcewheredel='no'anduserId="+userId;
ListxiangceList=xiangceDAO.getHibernateTemplate().find(sql);
for(inti=0;i{TXiangcexiangce=(TXiangce)xiangceList.get(i);Strings="fromTZhaopianwheredel='no'andxiangceId="+xiangce.getId();ListzhaopianList=zhaopianDAO.getHibernateTemplate().find(s);xiangce.setZhaopianList(zhaopianList);}request.put("xiangceList",xiangceList);TUseruser=userDAO.findById(userId);request.put("user",user);returnActionSupport.SUCCESS;}5.4添加动态模块(1)添加动态模块界面在该界面中首先输入动态内容。单击“提交”按钮,即可完成归动态发布操作。动态添加模块如图5-4所示:图5-4动态添加模块图(2)动态添加关键代码publicStringbowenAdd(){TBowenbowen=newTBowen();bowen.setTitle(title);bowen.setContent(content);bowen.setShijian(newDate());bowen.setUserId(userId);bowen.setDel("no");bowenDAO.save(bowen);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("msg","动态发布成功");return"msg";}publicStringbowenDel(){TBowenbowen=bowenDAO.findById(id);bowen.setDel("yes");bowenDAO.getHibernateTemplate().update(bowen);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("msg","动态删除成功");return"msg";}publicStringpinglunMana(){HttpServletRequestrequest=ServletActionContext.getRequest();Strings="fromTPinglunwherebowenId="+Integer.parseInt(request.getParameter("bowenId"));ListpinglunList=pinglunDAO.getHibernateTemplate().find(s);request.setAttribute("pinglunList",pinglunList);returnActionSupport.SUCCESS;}5.5用户修改个人资料模块(1)修改个人资料界面点击个人资料链接。跳转到个人资料编辑页面。系统自动赋值数据到个人信息的文本框中。可以直接修改文本框的内容,修改完毕,单击“提交”按钮,即可完成动态发布操作。修改个人资料模块如图5-5所示:图5-5修改个人资料模块(2)编辑个人资料模块关键代码 publicStringuserEdit(){TUseruser=userDAO.findById(userId);user.setUserName(userName);user.setUserPw(userPw);user.setUserAddress(userAddress);user.setUserTel(userTel);user.setUserRealname(userRealname);user.setUserEmail(userEmail);user.setUserSex(userSex);user.setUserQq(userQq);user.setFujian(fujian);userDAO.getHibernateTemplate().update(user);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("msg","修改成功");return"msg";}publicStringuserEditPre(){TUseruser=userDAO.findById(userId);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("user",user);returnActionSupport.SUCCESS;} 5.6管理员登陆模块(1)登陆界面系统管理员要维护整个系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。管理员登陆模块如图5-6所示:图5-6管理员登陆图(2)管理员登陆模块关键代码Stringsql="fromTUserwhereuserName=?anduserPw=?";Object[]con={userName,userPw};ListuserList=userDAO.getHibernateTemplate().find(sql,con);if(userList.size()==0){result="no";}else{WebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();TUseruser=(TUser)userList.get(0);session.setAttribute("userType",1);session.setAttribute("user",user);result=user.getUserId().toString();} 5.7注册用户管理(1)注册用户管理模块界面管理员登陆到系统后。点击上面的菜单“用户管理”,可以浏览注册用的信息,同时也可以删除不合法的用户。以保证系统的纯洁性。用户管理图如图5-7所示:图5-7用户管理模块(2)用户管理关键代码publicStringuserDetail(){TUseruser=userDAO.findById(userId);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("user",user);returnActionSupport.SUCCESS;}publicStringuserMana(){Stringsql="fromTUserwhereuserDel='no'";ListuserList=userDAO.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("userList",userList);returnActionSupport.SUCCESS;}publicStringuserSearch(){Stringsql="fromTUserwhereuserDel='no'anduserRealnamelike'%"+userRealname.trim()+"%'";ListuserList=userDAO.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("userList",userList);returnActionSupport.SUCCESS;}5.8公告管理模块(1)公告管理模块界面管理员登陆到系统后。点击上面的菜单“公告管理”,可以浏览以前发布的公告信息,同时也可以删除、编辑旧的公告,录入新的公告。公告管理模块界面如图5-8所示:图5-8公告管理模块界面(2)公告管理模块关键代码publicStringgonggaoAdd(){TGonggaogonggao=newTGonggao();gonggao.setGonggaoTitle(gonggaoTitle);gonggao.setGonggaoContent(gonggaoContent);gonggao.setGonggaoData(newDate().toLocaleString());gonggaoDAO.save(gonggao);this.setMessage("公告添加完毕");this.setPath("gonggaoMana.action");return"succeed";}publicStringgonggaoMana(){ListgonggaoList=gonggaoDAO.findAll();Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("gonggaoList",gonggaoList);returnActionSupport.SUCCESS;}PublicStringgonggaoDel(){TGonggaogonggao=gonggaoDAO.findById(gonggaoId);gonggaoDAO.delete(gonggao);this.setMessage("公告删除完毕");this.setPath("gonggaoMana.action");return"succeed";} 第6章系统测试6.1系统测试的概述系统测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。系统测试是软件质量保证的关键环节,直接影响着软件的质量评估。系统测试不仅要讲究策略,更要讲究时效性。验收测试作为系统测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。6.2系统测试的方法测试任何产品都有两种方法:如果已知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。前一个方法称为黑盒测试,后一个方法称为白盒测试。对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。根据
TXiangcexiangce=(TXiangce)xiangceList.get(i);
Strings="fromTZhaopianwheredel='no'andxiangceId="+xiangce.getId();
ListzhaopianList=zhaopianDAO.getHibernateTemplate().find(s);
xiangce.setZhaopianList(zhaopianList);
request.put("xiangceList",xiangceList);
request.put("user",user);
returnActionSupport.SUCCESS;
5.4添加动态模块
(1)添加动态模块界面
在该界面中首先输入动态内容。
单击“提交”按钮,即可完成归动态发布操作。
动态添加模块如图5-4所示:
图5-4动态添加模块图
(2)动态添加关键代码
publicStringbowenAdd()
TBowenbowen=newTBowen();
bowen.setTitle(title);
bowen.setContent(content);
bowen.setShijian(newDate());
bowen.setUserId(userId);
bowen.setDel("no");
bowenDAO.save(bowen);
request.put("msg","动态发布成功");
publicStringbowenDel()
TBowenbowen=bowenDAO.findById(id);
bowen.setDel("yes");
bowenDAO.getHibernateTemplate().update(bowen);
request.put("msg","动态删除成功");
publicStringpinglunMana()
Strings="fromTPinglunwherebowenId="+Integer.parseInt(request.getParameter("bowenId"));
ListpinglunList=pinglunDAO.getHibernateTemplate().find(s);
request.setAttribute("pinglunList",pinglunList);
5.5用户修改个人资料模块
(1)修改个人资料界面
点击个人资料链接。
跳转到个人资料编辑页面。
系统自动赋值数据到个人信息的文本框中。
可以直接修改文本框的内容,修改完毕,单击“提交”按钮,即可完成动态发布操作。
修改个人资料模块如图5-5所示:
图5-5修改个人资料模块
(2)编辑个人资料模块关键代码
publicStringuserEditPre()
5.6管理员登陆模块
(1)登陆界面
系统管理员要维护整个系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。
管理员登陆模块如图5-6所示:
图5-6管理员登陆图
(2)管理员登陆模块关键代码
Stringsql="fromTUserwhereuserName=?
anduserPw=?
";
Object[]con={userName,userPw};
ListuserList=userDAO.getHibernateTemplate().find(sql,con);
if(userList.size()==0)
result="no";
else
WebContextctx=WebContextFactory.get();
HttpSessionsession=ctx.getSession();
TUseruser=(TUser)userList.get(0);
session.setAttribute("userType",1);
session.setAttribute("user",user);
result=user.getUserId().toString();
5.7注册用户管理
(1)注册用户管理模块界面
管理员登陆到系统后。
点击上面的菜单“用户管理”,可以浏览注册用的信息,同时也可以删除不合法的用户。
以保证系统的纯洁性。
用户管理图如图5-7所示:
图5-7用户管理模块
(2)用户管理关键代码
publicStringuserDetail()
publicStringuserMana()
Stringsql="fromTUserwhereuserDel='no'";
ListuserList=userDAO.getHibernateTemplate().find(sql);
request.put("userList",userList);
publicStringuserSearch()
Stringsql="fromTUserwhereuserDel='no'anduserRealnamelike'%"+userRealname.trim()+"%'";
5.8公告管理模块
(1)公告管理模块界面
点击上面的菜单“公告管理”,可以浏览以前发布的公告信息,同时也可以删除、编辑旧的公告,录入新的公告。
公告管理模块界面如图5-8所示:
图5-8公告管理模块界面
(2)公告管理模块关键代码
publicStringgonggaoAdd()
TGonggaogonggao=newTGonggao();
gonggao.setGonggaoTitle(gonggaoTitle);
gonggao.setGonggaoContent(gonggaoContent);
gonggao.setGonggaoData(newDate().toLocaleString());
gonggaoDAO.save(gonggao);
this.setMessage("公告添加完毕");
this.setPath("gonggaoMana.action");
return"succeed";
publicStringgonggaoMana()
ListgonggaoList=gonggaoDAO.findAll();
request.put("gonggaoList",gonggaoList);
PublicStringgonggaoDel()
TGonggaogonggao=gonggaoDAO.findById(gonggaoId);
gonggaoDAO.delete(gonggao);
this.setMessage("公告删除完毕");
第6章系统测试
6.1系统测试的概述
系统测试是为了发现错误而执行程序的过程。
它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。
系统测试是软件质量保证的关键环节,直接影响着软件的质量评估。
系统测试不仅要讲究策略,更要讲究时效性。
验收测试作为系统测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。
6.2系统测试的方法
测试任何产品都有两种方法:
如果已知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
前一个方法称为黑盒测试,后一个方法称为白盒测试。
对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
黑盒测试又称为功能测试。
与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
白盒测试又称为结构测试。
根据
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1