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

上传人:w****2 文档编号:6499375 上传时间:2020-02-27 格式:DOC 页数:21 大小:635KB
返回 下载 相关 举报
JavaWeb宠物店课程设计报告.doc_第1页
第1页 / 共21页
JavaWeb宠物店课程设计报告.doc_第2页
第2页 / 共21页
JavaWeb宠物店课程设计报告.doc_第3页
第3页 / 共21页
点击查看更多>>
资源描述
校内实训项目报告课 题:宠物商店管理系统设计学 院: _ _ _ _学生姓名: _ _ _ _指导教师: _ _ _ _ 一、需求分析1.1项目开发背景PetStore 是SUN公司推出的一个宠物店系统,是J2EE应用和学习的一个好例子。针对不同的侧重点,具有不同的版本。该系统不同的版本是优秀程序员智慧的结晶。从功能层面来说,这个系统具有:宠物分类展示、下订单、添加到购物车、浏览产品细节等一系列网上商城所具备的基本功能。1.2 功能介绍1.2.1 整体介绍Petstore提供网上商城系统所必需的功能:用户身份认证、商品信息列表、选购商品、下订单等,围绕这些功能,系统的设计分为以下四个部分: l 宠物分类展现和宠物查找模块(catalog部分),供用户浏览、查找并选购宠物。l 购物车管理(cart部分),供用户查看购物车的情况,并作出是否购买的选择。l 账户管理模块(account部分),为用户提供注册和账户登录功能。l 订单管理(order部分),供用户管理自己的账单。1.2.2 详细说明 宠物商店用户通过账户管理模块登录或者注册新用户,只有拥有经过注册的用户名和正确的密码才能更改系统内部代码、页面形式、系统数据库以及管理客户账户等;宠物分类展现部分是系统与客户的交流界面,用户在此功能界面上可以浏览整个宠物店的所有产品情况,包括:宠物生活习性、宠物产地、库存情况、售价等等。用户在此处还可以点击单一宠物的链接进入更进一步的说明;购物车模块是系统与用户账户交流的平台,用户是否购买某产品将直接反映在这个界面和相关的数据库上。订单管理是账户管理的配合模块,是对客户的账户的直接管理和反应。1.3 系统开发平台l Jdk 即Java开发数据包;l Web服务器tomcat;l Mysql数据库,用于网站系统文件表格的建立、更改、维护等;l 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 系统详细功能设计以及总体结构图:通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。系统总体结构图: 宠物管理平台主人信息管理宠物信息管理论坛宠物监护人信息宠物类目管理主人填写主人登陆宠物信息管理用户注册用户修改监护人资料填写宠物资料填写文档管理系统实现的功能: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(Plain old java object)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,配置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object自动的维护。Session工厂的配置信息:applicationContext-bean.xml以上代码是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.1 DAO层的实现数据访问层,又称DAO层,在该层主要完成对象-关系映射的建立,通过这个映射,再通过访问业务对象即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,这样就简化了对数据库的访问,提高了开发效率。同时通过对象-关系映射的配置,可以建立业务对象之间的复杂关系,如一对多、多对一、一对一、多对多等关系。这样就不再需要在数据库中建立表之间的复杂联系,使得业务对象之间的关系和数据库相分离,简化了数据库的建立和维护。在这一层中主要使用Hibernate框架来实现。Tpet以及Tpet.hbm.xml为hibernate自动生成文件,用于连接数据库。3.4.2 Service层的实现Service为业务逻辑层,主要业务逻辑包括这些类分别实现了相应的接口,这些类在工作的过程中还需要依赖相应的DAO对象和JavaBean对象。实际操作时,在Action中通过Service对DAO接口进行调用,使整个系统有良好的层次。比如这边Petservices调用TPet,而PetserviceImpl继承Petservices,进行查询、添加、修改和删除操作。Petservices代码:import com.oa.models.TPet;import com.oa.utils.PageInfo;public interface PetServices /查询public PageInfo queryPet(int currentpage, int pageunit,HttpServletRequest request, String url, String cond);/添加public Boolean addPet(TPet pet);/修改public Boolean updatePet(TPet pet);/ID查询public TPet getPet(Integer id);/删除public TPet delPet(Integer id);PetserviceImpl主要代码:public class PetServicesImpl extends AbstractServices implements PetServices /查询public PageInfo queryPet(int currentpage, int pageunit,HttpServletRequest request, String url, String cond) int rowCount = this.getPetsCount(cond);List list = this.getPets(currentpage,pageunit, cond);PageInfo PageInfo = new PageInfo(currentpage, pageunit, rowCount, url,list);return PageInfo;/获得public List getPets(int currentpage, int pageunit,String cond) try String hql = from TPet a where 1=1 + cond;return this.query(hql, currentpage, pageunit); catch (Exception e) e.printStackTrace();return null;/添加public Boolean addPet(TPet pet) save(pet);return true;以上为查询以及添加的代码,其余删除修改略。3.4.3 Action层的实现Action用于处理视图层与业务层之间的衔接,当页面产生一个动作请求时候,通过Struts配置文件找到对应的Action中的接口,经过Action处理后返回结果并从Struts的配置文件中找到对应的跳转页面。查询代码:public String queryPet() throws Exceptionif (getSessionAttribute(querypageunit) = null) setSessionAttribute(querypageunit,this.pageunit);StringBuffer cond = new StringBuffer();if(null!=searchname&!=searchname.trim()cond.append( and a.petname like %+searchname.trim()+% );int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest();int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), querypageunit);String url = pet_queryPet?a=a;PageInfo pageInfo = this.petServices.queryPet(curpage,pageunit, ServletActionContext.getRequest(), url, cond.toString();setRequestAttribute(pageinfo, pageInfo);setRequestAttribute(searchname, this.searchname);return queryPet;预添加以及添加代码:public String preaddPet() throws ExceptionList list = typeServices.queryType();setRequestAttribute(list,list);return preaddPet;public String addPet() throws ExceptionTUser user = (TUser) getSessionAttribute(user);TPet pet = new TPet();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文件夹中String targetDirectory = ServletActionContext.getRequest().getRealPath(/upload);String targetFileName = generateFileName(pictureFileName);File target = new File(targetDirectory, targetFileName);FileUtils.copyFile(picture, target);pet.setPicture(targetFileName);petServices.addPet(pet);return addPet;预添加将后台管理员添加的宠物类型添加到宠物信息,添加功能中有图片上传。查看代码:public String viewPet() throws ExceptionTPet pet = petServices.getPet(id);setRequestAttribute(pet,pet);return viewPet;其余修改删除代码等省略。struts中宠物管理功能的实现: /files/pet/list.jsp pet_queryPet pet_queryPet pet_queryPet /files/pet/add.jsp /files/pet/update.jsp /files/pet/view.jsp 3.4.4 静态Jps页面的实现表现层其余静态页面运用css模块统一风格,其中pet功能页面代码均在files/pet/文件夹中,添加宠物信息为add.jsp,查看宠物信息为view.jsp,查看宠物列表为list.jsp,修改宠物信息为update.jsp,由struts控制跳转,代码略。结合Struts 的表现层标签, JSP 可完成全部的表现层功能一一数据收集、数据表示和客户端数据校验四、实现效果主界面,要求具有分类展现功能,网站产品再次一览无余。要求:据右侧边条将所有产品的简录的链接展示在此处,能从此处进product界面。界面中间部分是图形界面要求生动且说明性强,充分展示产品的风格。此外还要有登录和注册、帮助功能、返回功能等。界面运行情况如下:系统主界面客户浏览网站时通过点击左边的边跳导航,可以进入品种列表界面。通过点击登录按钮,可以进入登录窗口。品种列表信息界面:这是某一类宠物的详细的展示,界面中部是产品列表,但只是简单展示。进一步展示在其下属界面中。界面运行情况如下(猫类): 品种列表信息界面单一宠物所有信息展示界面,此界面中部是单一宠物的详细信息列表,包括照片、产地、习性、价格、库存,同时还有议案家购物车的连接部分。界面运行情况如下: 犬类信息展示登录窗口界面:是客户登陆网站的界面,有供客户登录填写用户名和密码的功能;购物车窗口:能查看所有已经添加到购物车的产品的列表;为保证网站整体风格一致,还需设计一个背景和上下边条,客户在浏览网站是在各个界面时,这两个背景成分都伴随始终。而以上各个界面之间的相互关系是通过JSP技术和Dao数据库类共同实现。下边条:上边条: 宠物信息的添加及修改:查看宠物效果图:查看宠物列表效果图:五、小结通过该校内实训项目设计的整个过程,我们受益匪浅,对Myeclipse和MySQL数据库的知识有了更深的了解和学习,完善了计算机专业知识体系,拓宽了知识面。特别是通过大家动手设计和开发一个完整的系统,把书本上学到的基础知识同实践、客观合理的结合起来,加深了对计算机知识的理解,对以后的工作,学习和生活有了极大的帮助。 通过这次团队合作,我们认识到团队协作非常重要,一个人会遇到解决不了的问题,此时老师的指点或其他同学的帮助可能会给你带来新的思路和新的解决方法。除此,我们还体会到:其实大家自己所学的东西是非常有限的,还有很多重要的知识都还不知道或还没掌握。这就是说,只具备接受知识的能力是远远不够的,这需要我们具备自己主动去学习的能力,利用各种资料和途径去获取知识。由于经验尚浅,本次设计由我完成本系统的制作,对我们这些水平未到家的新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到SSH框架的技术的了解也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业论文的设计制作使本人受益匪浅。首先,由于系统设计所用的J2EE技术和其中用到SSH框架的部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了自学能力,而且对J2EE的学习有了进一步的认识。在项目设计的过程中,我们遇到了很多的困难,大家同心协力一起解决问题,在这个过程中让我们体会到了团队的重要性。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!