JavaWeb宠物店课程设计报告.doc

上传人:聆听****声音 文档编号:355167 上传时间:2023-04-29 格式:DOC 页数:26 大小:745KB
下载 相关 举报
JavaWeb宠物店课程设计报告.doc_第1页
第1页 / 共26页
JavaWeb宠物店课程设计报告.doc_第2页
第2页 / 共26页
JavaWeb宠物店课程设计报告.doc_第3页
第3页 / 共26页
JavaWeb宠物店课程设计报告.doc_第4页
第4页 / 共26页
JavaWeb宠物店课程设计报告.doc_第5页
第5页 / 共26页
JavaWeb宠物店课程设计报告.doc_第6页
第6页 / 共26页
JavaWeb宠物店课程设计报告.doc_第7页
第7页 / 共26页
JavaWeb宠物店课程设计报告.doc_第8页
第8页 / 共26页
JavaWeb宠物店课程设计报告.doc_第9页
第9页 / 共26页
JavaWeb宠物店课程设计报告.doc_第10页
第10页 / 共26页
JavaWeb宠物店课程设计报告.doc_第11页
第11页 / 共26页
JavaWeb宠物店课程设计报告.doc_第12页
第12页 / 共26页
JavaWeb宠物店课程设计报告.doc_第13页
第13页 / 共26页
JavaWeb宠物店课程设计报告.doc_第14页
第14页 / 共26页
JavaWeb宠物店课程设计报告.doc_第15页
第15页 / 共26页
JavaWeb宠物店课程设计报告.doc_第16页
第16页 / 共26页
JavaWeb宠物店课程设计报告.doc_第17页
第17页 / 共26页
JavaWeb宠物店课程设计报告.doc_第18页
第18页 / 共26页
JavaWeb宠物店课程设计报告.doc_第19页
第19页 / 共26页
JavaWeb宠物店课程设计报告.doc_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JavaWeb宠物店课程设计报告.doc

《JavaWeb宠物店课程设计报告.doc》由会员分享,可在线阅读,更多相关《JavaWeb宠物店课程设计报告.doc(26页珍藏版)》请在冰点文库上搜索。

JavaWeb宠物店课程设计报告.doc

......

校内实训

项目报告

课题:

宠物商店管理系统设计

学院:

____________

学生姓名:

____________

指导教师:

____________

一、需求分析

1.1项目开发背景

PetStore是SUN公司推出的一个宠物店系统,是J2EE应用和学习的一个好例子。

针对不同的侧重点,具有不同的版本。

该系统不同的版本是优秀程序员智慧的结晶。

从功能层面来说,这个系统具有:

宠物分类展示、下订单、添加到购物车、浏览产品细节等一系列网上商城所具备的基本功能。

1.2功能介绍

1.2.1整体介绍

Petstore提供网上商城系统所必需的功能:

用户身份认证、商品信息列表、选购商品、下订单等,围绕这些功能,系统的设计分为以下四个部分:

l宠物分类展现和宠物查找模块(catalog部分),供用户浏览、查找并选购宠物。

l购物车管理(cart部分),供用户查看购物车的情况,并作出是否购买的选择。

l账户管理模块(account部分),为用户提供注册和账户登录功能。

l订单管理(order部分),供用户管理自己的账单。

1.2.2详细说明

宠物商店用户通过账户管理模块登录或者注册新用户,只有拥有经过注册的用户名和正确的密码才能更改系统内部代码、页面形式、系统数据库以及管理客户账户等;宠物分类展现部分是系统与客户的交流界面,用户在此功能界面上可以浏览整个宠物店的所有产品情况,包括:

宠物生活习性、宠物产地、库存情况、售价等等。

用户在此处还可以点击单一宠物的链接进入更进一步的说明;购物车模块是系统与用户账户交流的平台,用户是否购买某产品将直接反映在这个界面和相关的数据库上。

订单管理是账户管理的配合模块,是对客户的账户的直接管理和反应。

1.3系统开发平台

lJdk即Java开发数据包;

lWeb服务器tomcat;

lMysql数据库,用于网站系统文件表格的建立、更改、维护等;

lMyEclipse,用于编写、调试系统代码、生成发布。

二、系统设计

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系统详细功能设计以及总体结构图:

通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

新系统必须充分考虑今后可能的扩充和改变。

系统总体结构图:

宠物管理平台

主人信息管理

宠物信息管理

论坛

宠物监护人信息

宠物类目管理

主人填写

主人登陆

宠物信息管理

用户注册

用户修改

监护人资料填写

宠物资料填写

文档管理

系统实现的功能:

l宠物类别管理

Ø宠物类别查询

Ø宠物类别修改

Ø宠物类别删除

Ø新增宠物类别

l宠物信息管理

Ø宠物大小类别,是否有伤人危险

Ø宠物是否注册疫苗,何时,何地

Ø宠物有监管人或流浪或被社区收容

Ø宠物的其他信息以及备注

Ø宠物查询

Ø宠物修改

Ø宠物删除

Ø新增宠物

l宠物监管人管理

Ø宠物监管人性别年龄

Ø宠物监管人与宠物关系

Ø宠物监管人工作及工作住址

Ø宠物监管人联系方式等

Ø宠物监管人查询

Ø宠物监管人添加

Ø宠物监管人信息修改

Ø宠物监管人删除

l用户评论管理

Ø评论内容管理

Ø用户评论查询

l用户登录管理

Ø用户注册

Ø用户登录

Ø用户密码修改

l相关文档管理

Ø文档信息查看

Ø文档信息添加

Ø文档信息删除

l个人信息管理

Ø管理员密码更改

Ø退出系统

2.4数据库结构设计:

本系统分为4大模块,用户管理模块,宠物管理模块,文档管理模块以及留言板管理模块,其中宠物管理模块又分为宠物信息管理,宠物类别,宠物监管人信息管理。

注册用户以及管理员分别对数据管理拥有自己的权限。

图4-2:

整体框架E-R图

用户名

密码

管理员

管理

宠物管理系统

管理

登录注册用户

修改密码

宠物信息

监管人信息

宠物类型

文档信息

留言信息

用户信息

增加留言

添加管理员

增加宠物以及监管人信息

注册用户

查看文档

系统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.

-->

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

aop="http:

//www.springframework.org/schema/aop"

xmlns:

context="http:

//www.springframework.org/schema/context"

xmlns:

tx="http:

//www.springframework.org/schema/tx"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beanshttp:

//www.springframework.org/schema/beans/spring-beans-2.5.xsd

http:

//www.springframework.org/schema/aophttp:

//www.springframework.org/schema/aop/spring-aop-2.5.xsd

http:

//www.springframework.org/schema/contexthttp:

//www.springframework.org/schema/context/spring-context-2.5.xsd

http:

//www.springframework.org/schema/txhttp:

//www.springframework.org/schema/tx/spring-tx-2.5.xsd">

--抽象bean,是所有bean的父bean-->

--bean-->

以上代码是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{

//查询

publicPageInfoqueryPet(intcurrentpage,intpageunit,

HttpServletRequestrequest,Stringurl,Stringcond){

introwCount=this.getPetsCount(cond);

Listlist=this.getPets(currentpage,

pageunit,cond);

PageInfoPageInfo=newPageInfo(currentpage,pageunit,rowCount,url,

list);

returnPageInfo;

}

//获得

publicListgetPets(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("querypageunit",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(),"querypageunit"));

Stringurl="pet_queryPet?

a=a";

PageInfopageInfo=this.petServices.queryPet(curpage,

pageunit,ServletActionContext.getRequest(),url,cond.toString());

setRequestAttribute("pageinfo",pageInfo);

setRequestAttribute("searchname",this.searchname);

return"queryPet";

}

预添加以及添加代码:

publicStringpreaddPet()throwsException{

Listlist=typeServices.queryType();

setRequestAttribute("list",list);

return"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.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);

return"addPet";

}

预添加将后台管理员添加的宠物类型添加到宠物信息,添加功能中有图片上传。

查看代码:

publicStringviewPet()throwsException{

TPetpet=petServices.getPet(id);

setRequestAttribute("pet",pet);

return"viewPet";

}

其余修改删除代码等省略。

struts中宠物管理功能的实现:

/files/pet/list.jsp

pet_queryPet

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2