JavaWeb宠物店课程设计报告Word文档下载推荐.docx
- 文档编号:18921506
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:18
- 大小:423.91KB
JavaWeb宠物店课程设计报告Word文档下载推荐.docx
《JavaWeb宠物店课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JavaWeb宠物店课程设计报告Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
●Mysql数据库,用于网站系统文件表格的建立、更改、维护等;
●MyEclipse,用于编写、调试系统代码、生成发布。
二、系统设计
2.1宠物管理系统功能设计目标:
(1)实用性强:
我们努力使系统符合实际操作流程的习惯,并尽量减少用户的输入,易学易用的友好的用户界面,满足各层次的用户使用的需求;
(2)先进的程序结构:
使用当代前卫的软件编程,能延长其生命周期,易于维护与管理;
(3)安全可靠性高:
后台维护功能齐全,根据平台在各个阶段不同的使用情况,管理人员可以设置相应的操作权限,增加系统注册,分配各个栏目的管理权限,实现系统的维护,保证系统的安全、可靠;
(4)使用模块化设计的方法:
使系统具有良好的可扩充性,以适应其不同阶段的发展需要,便于后来者分析、维护;
(5)操作简单,维护方便:
每个子系统都具有相对独立的系统维护功能
对可变化的项目可自行维护;
(6)查询功能强大:
可以对宠物的基本情况、用户基本情况,宠物主人信息,用户留言等按各种方式查询,可形成各种表单,同时还可对其进行汇总,使管理人员能及时准确地掌握用户和其宠物的基本情况。
2.2宠物管理系统的总体设计:
本宠物商店管理系统是基于B/S架构下的多层结构应用系统。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
2.3系统详细功能设计以及总体结构图:
通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
新系统必须充分考虑今后可能的扩充和改变。
系统总体结构图:
系统实现的功能:
●宠物类别管理
Ø
宠物类别查询
宠物类别修改
宠物类别删除
新增宠物类别
●宠物信息管理
宠物大小类别,是否有伤人危险
宠物是否注册疫苗,何时,何地
宠物有监管人或流浪或被社区收容
宠物的其他信息以及备注
宠物查询
宠物修改
宠物删除
新增宠物
●宠物监管人管理
宠物监管人性别年龄
宠物监管人与宠物关系
宠物监管人工作及工作住址
宠物监管人联系方式等
宠物监管人查询
宠物监管人添加
宠物监管人信息修改
宠物监管人删除
●用户评论管理
评论内容管理
用户评论查询
●用户登录管理
用户注册
用户登录
用户密码修改
●相关文档管理
文档信息查看
文档信息添加
文档信息删除
●个人信息管理
管理员密码更改
退出系统
2.4数据库结构设计:
本系统分为4大模块,用户管理模块,宠物管理模块,文档管理模块以及留言板管理模块,其中宠物管理模块又分为宠物信息管理,宠物类别,宠物监管人信息管理。
注册用户以及管理员分别对数据管理拥有自己的权限。
系统ER图
2.5系统的用例图
2.5.1总体用例分析
总体用例图
如图,用户管理、宠物,宠物类别及宠物监管人管理、留言板管理、文档管理四个模块构成了本宠物管理系统。
User是指系统用户,包括普通注册用户和管理员两种,普通注册用户只可以查看各种信息,以及添加与自己有关的信息,管理员才可以添加,查看,删除,修改各种信息。
2.5.2用户管理用例分析
用户管理用例图
如图,用户管理模块主要包括:
用户登陆、用户注册、用户信息修改、用户删除、用户信息查询五个功能组成。
2.5.3宠物,宠物类别及宠物监管人管理
信息管理用例图
如图,宠物,宠物类别,宠物监管人信息管理模块主要包括:
宠物信息管理,宠物类别管理,宠物监管人信息管理三个功能模块组成。
2.5.4留言板管理
留言板管理用例图
如图,留言板管理模块主要包括:
留言板列表,留言板内容两个个内容组成。
2.5.5文档管理
文档管理用例图
文档管理模块主要包括:
文章列表、文章内容两个内容组成。
2.6系统出错处理设计:
(1)用户输入账号跟密码错误,需要在登录框提示“信息错误,请重新填写!
”。
(2)用户注册账户时用了跟别人一样的账户名,需要在注册页面提示“用户名已存在!
(3)用户在提交注册信息时,有姓名账号密码等未填写时,需要弹出提示框:
“未填写的内容不能为空!
(4)用户在添加宠物有的时候,如果有未填写或为选择的状况,需要在该页面弹出提示框“未填写的内容不能为空!
三、宠物管理系统的实现
3.1宠物管理系统数据库的实现
Hibernate可以通过一个XML的mapping文件把一个POJO(Plainoldjavaobject)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,配置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object自动的维护。
Session工厂的配置信息:
applicationContext-bean.xml
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
!
--
-Middletierapplicationcontextdefinitionfortheimagedatabase.
-->
beansxmlns="
http:
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
aop="
//www.springframework.org/schema/aop"
context="
//www.springframework.org/schema/context"
tx="
//www.springframework.org/schema/tx"
xsi:
schemaLocation="
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
//www.springframework.org/schema/aophttp:
//www.springframework.org/schema/aop/spring-aop-2.5.xsd
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context-2.5.xsd
//www.springframework.org/schema/txhttp:
//www.springframework.org/schema/tx/spring-tx-2.5.xsd"
<
--抽象bean,是所有bean的父bean-->
<
beanid="
beanAbstract"
abstract="
true"
<
propertyname="
sessionFactory"
ref="
/property>
/bean>
--bean-->
loginServices"
class="
com.oa.services.impl.LoginServicesImpl"
parent="
/>
typeServices"
com.oa.services.impl.TypeServicesImpl"
messageServices"
com.oa.services.impl.MessageServicesImpl"
petServices"
com.oa.services.impl.PetServicesImpl"
ownerServices"
com.oa.services.impl.OwnerServicesImpl"
textServices"
com.oa.services.impl.TextServicesImpl"
adminServices"
com.oa.services.impl.AdminServicesImpl"
/beans>
以上代码是applicationContext-bean.xml文件中Session工厂的配置信息
宠物信息数据库表:
如表所示,这是宠物信息的表,id是系统自动生成,其余的分别为宠物姓名,宠物类型,简介,添加该宠物的用户id,图片,年龄是否疫苗,疫苗时间,疫苗地点,是否领养,是否伤人等宠物信息。
接下来会对它如何连接到工程以及如何实现该功能做详细介绍。
其中图片在petaction中默认由本地,上传到服务器上的upload文件夹中,以便游客浏览以及管理员管理,id为系统自动+1生成,userid与user列表中的userid一致,typename与t_type列表中的typename一致,需要t_type预添加。
3.3宠物管理系统功能说明
根据对宠物管理系统业务流程的分析,用户登录后要能自己添加自己的宠物信息,包括宠物的姓名,年龄,宠物的id,上传图片,是否疫苗,疫苗事件,疫苗地点,是否领养以及是否伤人等信息。
用户登录后可以浏览别的用户的宠物信息,而管理员可以对用户前台添加的信息进行修改与删除。
3.4主要的宠物信息管理的实现
3.4.1DAO层的实现
数据访问层,又称DAO层,在该层主要完成对象-关系映射的建立,通过这个映射,再通过访问业务对象即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,这样就简化了对数据库的访问,提高了开发效率。
同时通过对象-关系映射的配置,可以建立业务对象之间的复杂关系,如一对多、多对一、一对一、多对多等关系。
这样就不再需要在数据库中建立表之间的复杂联系,使得业务对象之间的关系和数据库相分离,简化了数据库的建立和维护。
在这一层中主要使用Hibernate框架来实现。
Tpet以及Tpet.hbm.xml为hibernate自动生成文件,用于连接数据库。
3.4.2Service层的实现
Service为业务逻辑层,主要业务逻辑包括这些类分别实现了相应的接口,这些类在工作的过程中还需要依赖相应的DAO对象和JavaBean对象。
实际操作时,在Action中通过Service对DAO接口进行调用,使整个系统有良好的层次。
比如这边Petservices调用TPet,而PetserviceImpl继承Petservices,进行查询、添加、修改和删除操作。
Petservices代码:
importcom.oa.models.TPet;
importcom.oa.utils.PageInfo;
publicinterfacePetServices{
//查询
publicPageInfoqueryPet(intcurrentpage,intpageunit,
HttpServletRequestrequest,Stringurl,Stringcond);
//添加
publicBooleanaddPet(TPetpet);
//修改
publicBooleanupdatePet(TPetpet);
//ID查询
publicTPetgetPet(Integerid);
//删除
publicTPetdelPet(Integerid);
}
PetserviceImpl主要代码:
publicclassPetServicesImplextendsAbstractServicesimplementsPetServices{
//查询
HttpServletRequestrequest,Stringurl,Stringcond){
introwCount=this.getPetsCount(cond);
List<
TPet>
list=this.getPets(currentpage,
pageunit,cond);
PageInfoPageInfo=newPageInfo(currentpage,pageunit,rowCount,url,
list);
returnPageInfo;
}
//获得
publicList<
getPets(intcurrentpage,intpageunit,
Stringcond){
try{
Stringhql="
fromTPetawhere1=1"
+cond;
returnthis.query(hql,currentpage,pageunit);
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
//添加
publicBooleanaddPet(TPetpet){
save(pet);
returntrue;
以上为查询以及添加的代码,其余删除修改略。
3.4.3Action层的实现
Action用于处理视图层与业务层之间的衔接,当页面产生一个动作请求时候,通过Struts配置文件找到对应的Action中的接口,经过Action处理后返回结果并从Struts的配置文件中找到对应的跳转页面。
查询代码:
publicStringqueryPet()throwsException{
if(getSessionAttribute("
querypageunit"
)==null){
setSessionAttribute("
this.pageunit);
StringBuffercond=newStringBuffer();
if(null!
=searchname&
&
"
=searchname.trim()){
cond.append("
anda.petnamelike'
%"
+searchname.trim()+"
%'
"
);
intcurpage=Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
intpageunit=Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(),"
));
Stringurl="
pet_queryPet?
a=a"
;
PageInfopageInfo=this.petServices.queryPet(curpage,
pageunit,ServletActionContext.getRequest(),url,cond.toString());
setRequestAttribute("
pageinfo"
pageInfo);
searchname"
this.searchname);
return"
queryPet"
预添加以及添加代码:
publicStringpreaddPet()throwsException{
TType>
list=typeServices.queryType();
list"
list);
preaddPet"
publicStringaddPet()throwsException{
TUseruser=(TUser)getSessionAttribute("
user"
TPetpet=newTPet();
pet.setAge(age);
pet.setIsbiter(isbiter);
pet.setIsuser(isuser);
pet.setPetname(petname);
pet.setRemark(remark);
pet.setTypename(typename);
pet.setUserid(user.getUsername());
pet.setVacadrr(vacadrr);
pet.setVaccin(vaccin);
pet.setVacdate(vacdate);
//将图片上传到工程下的upload文件夹中
StringtargetDirectory=ServletActionContext.getRequest()
.getRealPath("
/upload"
StringtargetFileName=generateFileName(pictureFileName);
Filetarget=newFile(targetDirectory,targetFileName);
FileUtils.copyFile(picture,target);
pet.setPicture(targetFileName);
petServices.addPet(pet);
addPet"
预添加将后台管理员添加的宠物类型添加到宠物信息,添加功能中有图片上传。
查看代码:
publicStringviewPet()throwsException{
TPetpet=petServices.getPet(id);
pet"
pet);
viewPet"
其余修改删除代码等省略。
struts中宠物管理功能的实现:
actionname="
pet_*"
petAction"
method="
{1}"
resultname="
/files/pet/list.jsp<
/result>
type="
redirectAction"
pet_queryPet<
delPet"
updatePet"
/files/pet/add.jsp<
preupdatePet"
/files/pet/update.jsp<
/files/pet/view.jsp<
/action>
3.4.4静态Jps页面的实现表现层
其余静态页面运用css模块统一风格,其中pet功能页面代码均在files/pet/文件夹中,添加宠物信息为add.jsp,查看宠物信息为view.jsp,查看宠物列表为list.jsp,修改宠物信息为update.jsp,由struts控制跳转,代码略。
结合Struts的表现层标签,JSP可完成全部的表现层功能一一数据收集、数据表示和客户端数据校验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 宠物店 课程设计 报告