《基于Jsp的网络商店系统的设计与实现毕业论文培训资料.doc》由会员分享,可在线阅读,更多相关《基于Jsp的网络商店系统的设计与实现毕业论文培训资料.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。基于Jsp的网络商店系统的设计与实现毕业论文-本科生毕业论文(设计)基于Jsp的网络商店系统的设计与实现姓名学号专业指导教师2011年5月20日-摘要随着国内Internet使用人数的增加,利用Internet进行网络购物并以银行卡付款的消费方式已渐流行,市场份额也在快速增长,电子商务逐渐成为业界热议的一个焦点话题,相关的电子商务网站也层出不穷,因此电子商务蕴含巨大商机,具有广阔的发展前景。本论文首先分析了网络商店的地位和现状,然后介绍了开发此系统所用到的“模型-视图-控制器”模式。此系统采用SSH(S
2、pring+Struts2+Hibernate)框架进行搭建,使用Java语言,Oracle数据库和Tomcat服务器。主要实现后台的会员管理,公告管理,留言管理,管理员服务,商品管理,站点信息管理,积分管理和订单管理等功能。本系统主要解决以下问题:1. 以管理员的身份实现对商品信息的管理,以及对购物网站的日常维护。2. 使用Log4j技术对所有用户的操作进行自动记录,并把记录文件保存入硬盘文件。实现根据商品的多条属性查询,使结果更精确。关键词:MVC;SSH;Log4j;网络商店AbstractWiththeincreasenumberoftheinternetusingindomestic
3、,theuseofinternetforonlineshoppingandbankcardpaymentsgraduallypopularconsumption,andmarketshareisalsogrowingrapidly,e-commercehasbecomeafocusoftheindustryshottopics,besides,therelatede-commercewebsitesareendless.Soe-commerceofhugebusinessopportunitiesandbroadprospectsfordevelopment.Thesisanalyzesfir
4、stlythestatusandexistentproblemsofonlinestoreandthenintroducesthe“Model-View-Controller”modeusedtobuildthissite.TheanalysisanddesignoftheentirenetworkapplicationplatformincludingthesystemadoptstheSSHtechnology.SSHisshortforSpring+Struts2+Hibernate.AndthissystemusesJavaprogramminglanguageandOracledat
5、abaseandTomcatservertorunthecoremodulesofMembersmanagement,announcedmanagement,messagemanagement,administratorservices,commoditymanagement,siteinformationmanagement,integrationmanagementandordermanagementinbackend.Theproblemssettledinthissystemareasfollows:1. Asanadministratortorealizetheproductinfo
6、rmationmanagement,andmaintenanceofshoppingsites.2. Log4jtechnologyrecordsandsavesallusersoperationsautomaticallyintotheharddiskfile.Toachievesearchproductinformationwithmanyproductattributes,sothatmoreprecise.KeyWords:MVC,SSH,Log4j,OnlineStore目录1引言11.1课题背景11.2使用的开发测试平台及相关技术分析11.2.1MVC模式11.2.2SSH框架21
7、.2.3LOG4J日志处理32系统概要设计42.1需求分析42.1.1系统用户需求42.1.2系统功能需求42.1.3本系统的顶层用例图52.2原型法52.3系统总体设计62.3.1系统业务流程62.3.2会员管理功能模块72.3.3公告管理功能模块72.3.4留言管理功能模块82.3.5管理员服务功能模块82.3.6商品管理功能模块92.3.7站点信息管理功能模块92.3.8积分管理功能模块102.3.9订单管理功能模块102.4数据库分析与设计112.4.1数据库的定义122.4.2表定义123系统详细设计153.1主要功能模块详细设计153.1.1会员查询页面153.1.2发布新公告及公
8、告管理页面153.1.3商品留言页面173.1.4添加管理员、禁用管理员和修改密码页面183.1.5商品添加、修改和下架页面203.1.6LOGO更改和服务条款管理页面223.1.7积分规则查看、设置和兑换规则设置页面233.1.8订单管理页面254系统实现274.1系统搭建及初始化配置274.1.1搭建STRUTS2开发环境274.1.2搭建HIBERNATE开发环境284.2创建包目录结构284.2.1共通包构成284.2.2业务包构成284.2.3持久化层包构成294.3STRUTS模块的实现294.4HIBERNATE模块的实现304.4.1编写POJO类304.4.2编写并配置映射文
9、件314.4.3编写SESSION工厂314.5LOG4J日志处理324.6图片处理335系统测试355.1测试工具355.2测试用例356结论37参考文献38致谢391引言科技在发展,人们的生活观念也在跟着逐渐变化,现在网上购物因其诸多优点慢慢的成为人们的主流购物方式,而大学生消费群在其中占很大比例,因此在接下来的几年都是电子商务的蓬勃发展期。而开发网上购物平台是对这一产业的技术支持。本文正是基于此利用成熟的MVC模式开发,使用SSH框架以及Log4j处理日志等技术丰富完善网络商店购物管理系统的安全性及扩展性能。从而使其在实际应用中具有良好的商业价值。1.1课题背景现今的中国,电子商务的发展
10、势头很凶猛。据2010年CNNIC最新的中国互联网发展状况调查显示,中国网民规模达到4.2亿;网民每周上网时长继续增加,人均周上网时长达到19.8个小时,并且大部分网络应用我国网民的互联网应用表现出商务化程度迅速提高,娱乐化倾向继续保持沟通和信息工具价值加深的特点.2010年上半年,大部分网络应用在网民中更加普及各类网络应用的用户规模持续扩大。其中,商务类应用表现尤其突出,网上支付,网络购物和网上银行半年用户增长率均在30%左右,远远超过其他类网络应用社交网站。因此开发这套系统应该具有广阔的市场前景。1.2使用的开发测试平台及相关技术分析本系统均采用目前流行成熟的技术开发,具体开发环境如下:表
11、1-1开发环境操作系统Windows7开发语言Java,JSP,CSS,HTML,XML开发工具Eclipse,Dreamweaver测试工具JUnit数据库Oracle11g使用框架Struct2,Spring,Hibernate服务器Tomcat6.01.2.1MVC模式MVC结构是Model-View-Controller的缩写,中文翻译为模型-视图-控制器。MVC应用程序总是由这三个部分组成。模型(Model)是封装数据对象,用来封装和显示数据对象;视图(View)是作为模型的显示,它表示数据对象的当前状态;控制器(Controller)定义对用户的输入执行相应操作的接口,它用来操作模
12、型和数据对象。使用MVC模式可以提高系统的可靠性,适应性以及可维护性,可以快速部署,同时能降低软件开发的生命周期。其工作机制如图1-1所示。图1-1MVC工作机制图1.2.2SSH框架SSH是Struts,Spring,Hibernate的缩写。是当前流行的三层架构:表述层,业务逻辑层和数据库层。Struts:用以响应用户的Action,对应到相应的类进行处理,需要对应的包。现在企业开发使用的版本为Struts2。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与ServletAPI分离。Struts2框架的大概处理流程如下:1. 加载FilterDispatche
13、r类2. 读取Struts2配置文件中的Action类3. 客户端发送请求4. FilterDispatcher从struts配置文件中读取与之相对应的Action5. 启用拦截器6. 回调Action的execute()方法7. 通过execute方法将信息返回到FilterDispatcher8. FilterDispatcher根据配置查找响应信息,决定将跳转到哪个JSP页面9. 响应用户请求Hibernate:用来把实体类对应到数据库,用于实现与数据库之间的交互。提供增删改查的基本操作的实现。需要Hibernate对应的包以及Mysql的JDBC驱动包。创建Hibernate应用程序的
14、准备:1. 创建数据库2. 创建Hibernate配置文件Hibernate.cfg.xml3. 创建Package4. 编写Hibernate映射文件5. 编写POJO文件6. 编写Hibernate工具类7. 编写测试类Spring:管理Struts,XML配置文件中为Struts的Action进行值注入。1.2.3Log4j日志处理Log4j是Apache的一个开放源代码项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更
15、加细致地控制日志的生成过程。最方便的是,上面提到的功能可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。2系统概要设计本章将从该网络商店的后台信息管理对该项目进行了总体分析说明。暂不考虑前台业务流程的逻辑实现,仅考虑其功能。后台信息管理主要包括会员管理,公告管理,留言管理,管理员服务,商品管理,站点信息管理,积分管理和订单管理等功能。2.1需求分析系统需求分析是软件开发人员根据用户描述说明,对用户业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。下面就对网络商店购物系统的需求说明进行分析。2.1.1系统用户需求下面是需求分析中的用户需求:1. 友好的用户管理界面。2.
16、 对注册用户以及普通管理员进行管理。3. 实现商品的增删改查等功能。4. 对用户的留言有最高管理权限。5. 实现站点中的公告及网站的基本功能。6. 能处理用户的订单。2.1.2系统功能需求下面介绍用户对程序功能的需求和程序的功能流程:1. 管理员分为超级管理员和普通管理员,超级管理员具有管理普通管理员的权限。2. 管理员可以管理(增、删、查)公告。3. 管理员可以管理(增、删、查)所以注册用户信息,但不可管理用户密码等私人信息,只可对其权限进行管理。4. 管理员可以管理(增、删、改、查)商品信息。5. 管理员可以管理(增、删、改、查)留言信息。6. 管理员可以管理(增、删、改、查)订单信息。7
17、. 管理员可以对站点进行日常维护。8. 后台管理系统的搜索引擎采用模糊匹配的模式,并且可以选择多条搜索条件进行检索。2.1.3本系统的顶层用例图图2-1网络商店购物系统顶层用例图2.2原型法本系统采用原型法开发。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。快速原型的关键在于尽可能快速地建造出软件原
18、型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。原型化软件开发要突出一个“快”字。采用瀑布模型时,软件的需求分析也可以在用户和系统分析员之间往复讨论,使之逐步趋于完善。但这种讨论终究是“纸上谈兵”。而原型系统则是“真枪实弹”,能够使用户立刻与想象中的目标系统作出比较。软件开发人员向用户提供一个“样品”,用户向开发为人员迅速做出“反馈”,这就是原型软件开发的优越性。图2-2原型法2.3系统总体设计根据需求分析,网络商店购物管理系统共可分为如下八个功能模块:会员管理、公告管理、留言管理、管理员服务、
19、商品管理、站点信息管理、积分管理和订单管理。下面对每个功能模块进行具体分析。2.3.1系统业务流程图2-3系统功能逻辑结构图2.3.2会员管理功能模块管理员可以根据条件查询出会员信息结果,然后可以对所选会员进行注销操作。图2-4会员管理用例图2.3.3公告管理功能模块管理员可以发布新的公告,并可以对公告进行管理,根据发布的公告主题或发布时间查询公告,然后可以对具体公告进行修改,删除操作。图2-5公告管理用例图2.3.4留言管理功能模块管理员可以管理任何商品留言,而会员和游客只能管理自己的商品留言。图2-6留言管理用例图2.3.5管理员服务功能模块超级管理员可以添加管理员,根据会员ID查询管理员
20、,然后可以禁用所选会员,并且可以修改管理员密码;而普通管理员只具有查看信息,修改密码权限。图2-7管理员服务用例图2.3.6商品管理功能模块管理员可以对商品信息进行管理,包括新品发布,商品信息修改,商品下架,统计库存,商品搜索;商品搜索可以根据关键字查询或特征查询。图2-8商品管理用例图2.3.7站点信息管理功能模块管理员可以修改站点的Logo和服务条款的管理。图2-9站点信息管理用例图2.3.8积分管理功能模块管理员可以管理积分规则设置和兑换规则设置;对每一项规则具有制定,修改和删除操作权限。图2-10积分管理用例图2.3.9订单管理功能模块管理员可以根据条件查询出订单信息,然后可以对订单进
21、行管理,并且可以导出订单;其中导出订单可以是单个导出和批量导出。图2-11订单管理用例图2.4数据库分析与设计数据库的设计是该网络商店购物管理系统的核心内容,依据需要,系统定义了常用视图、索引和序列。用户对于数据库的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库的结构能充分满足各种信息的输入和输出上。本系统所采用的数据库是Oracle11g,能满足系统的需求。2.4.1数据库的定义图2-12数据库表间关系图2.4.2表定义在数据库设计的时候,是将商品的属性与图片区分开,总共将商品分为五大类:食品(FOOD)、书籍(BOOK)、文具(STATIONERY)、数码电子(ELECT
22、RONICS)、生活用品(DAILYPRO)。下面只列出食品表。具体涉及的各个表属性如下:表2-1食品表(FOOD)逻辑名字段名数据类型长度空值备注商品编号PROIDCHAR13NOTNULL主键商品名称PRONAMEVARCHAR220NOTNULL类别分类编号SUB_TYPENUMBER8NOTNULL价格PRICENUMBER7,2NOTNULL保质期VALIDDAYSVARCHAR28NOTNULL库存量AMOUNTNUMBER5NOTNULL生产日期PRODATEDATENOTNULL生产厂家PRODUCERVARCHAR22000NOTNULL销量SALE_AMOUNTNUMBER
23、20NOTNULL上架日期REG_TIMEDATENOTNULL表2-2商品图片表(PRODUCTS_PICTURES)逻辑名字段名数据类型长度空值备注商品编号PROIDCHAR13NOTNULL主键大图片BIG_PICVARCHAR2100中图片MID_PICVARCHAR2100小图片SMALL_PICBLOB表2-3会员信息表(MEMBER)逻辑名字段名数据类型长度空值备注会员IDMEMBER_IDCHAR10NOTNULL主键会员名MEMBER_NAMEVARCHAR220NOTNULL密码MEMBER_PASSWORDCHAR9NOTNULL电子邮箱MEMBER_EMAILVARCH
24、AR230NOTNULL真实姓名TRUE_NAMEVARCHAR220NOTNULL密码保护问题PWD_QUEVARCHAR230NOTNULL密码保护问题答案PWD_ANSVARCHAR220NOTNULL会员状态STATUSDATENOTNULL表2-4公告信息表(NOTICE)逻辑名字段名数据类型长度空值备注公告编号NOTICE_IDNUMBER9,0NOTNULL主键公告名称NOTICE_TITLEVARCHAR230NOTNULL公告内容NOTICE_CONTENTVARCHAR2300NOTNULL发布日期NOTICE_TIMEDATENOTNULL表2-5订单表(T_ORDER)
25、逻辑名字段名数据类型长度空值备注订单编号ORDER_IDCHAR10NOTNULL主键订单日期ORDER_TIMEDATENOTNULL订购者BUYER_IDVARCHAR220NOTNULL邮寄地址SEND_ADDRVARCHAR2100NOTNULL订单状态ORDER_STATUSCHAR6NOTNULL总价ALL_PRICENUMBER7,2电话TELLVARCHAR218NOTNULL手机号CELLPHONEVARCHAR218NOTNULL其他信息OTHER_INFOVARCHAR2300表2-6管理员表(ADMIN)逻辑名字段名数据类型长度空值备注管理员名ADMIN_IDCHAR9
26、NOTNULL主键密码ADMIN_PASSWORDCHAR10NOTNULL权限ADMIN_PRIVILEGECHAR6NOTNULL状态ADMIN_STATUSCHAR6NOTNULL其他信息OTHER_INFOVARCHAR23003系统详细设计3.1主要功能模块详细设计详细介绍网络商店购物管理系统各个功能模块的描述信息,以及各个功能之间的关系,系统争对不同用户的需要作出相应的回应,懂得各个页面的跳转方向。3.1.1会员查询页面管理员可以根据会员的俩个属性:会员ID和会员名,进行对会员的检索,同时对检索出来的会员的权限进行操作。图3-1会员查询页面迁移图下面为会员查询页面图3-2会员查询页
27、面3.1.2发布新公告及公告管理页面管理员可以发布新主题的公告,并且可以根据公告主题或发布时间检索已经发布的公告,然后可以对这些公告进行管理。图3-3发布新公告页面迁移图图3-4发布新公告页面图3-5公告管理页面迁移图图3-6公告管理页面3.1.3商品留言页面管理员可以根据商品的种类或商品的名称对商品进行检索,然后可以查看商品的留言,并可以对那些留言进行管理。图3-7商品留言页面迁移图图3-8商品留言页面3.1.4添加管理员、禁用管理员和修改密码页面此项功能只有超级管理员有权限。其可以对普通管理员进行添加、禁用、修改密码等操作。图3-9添加管理员页面迁移图图3-10添加管理员页面图3-11禁用
28、管理员页面迁移图图3-12禁用管理员页面图3-13修改密码页面迁移图图3-14修改密码页面3.1.5商品添加、修改和下架页面管理员可以对各类商品信息进行管理。图3-15商品添加页面迁移图图3-16商品添加页面进行商品信息修改时,必须先根据条件查询出所需要的商品信息。然后才可对其进行管理。图3-17商品查询页面迁移图图3-18商品查询页面图3-19商品信息修改页面图3-20商品下架页面3.1.6Logo更改和服务条款管理页面管理员可以更新网络商店的Logo以及网络商店的一些服务条款。图3-21Logo更改页面迁移图图3-22Logo更改页面图3-23服务条款管理页面迁移图图3-24服务条款管理页
29、面3.1.7积分规则查看、设置和兑换规则设置页面管理员可以查看会员的积分,同时可以设置积分规则和兑换规则。图3-25积分规则查看页面迁移图图3-26积分规则设置页面迁移图图3-27积分规则查看页面图3-28积分规则设置页面图3-29兑换规则页面迁移图图3-30兑换规则设置页面3.1.8订单管理页面管理员可以根据订单的任何一个属性查询订单,查看其状态并对订单进行管理。图3-31订单管理页面迁移图图3-32订单查询页面4系统实现4.1系统搭建及初始化配置系统选用的服务器是Tomcat6.0,后台数据库选用的是Oracle。系统的开发工具选用的是Eclipse。4.1.1搭建Struts2开发环境总
30、体上概述来说,首先需要从Apache官网上下载的Struts2的所有组件后解压,然后将其Jar包及其依赖包导入WEB-INF/lib目录下,最后还要在web.xml中配置,最后创建Struts2的核心配置文件strut.xml。Lib目录下的jar包如下图所示:图4-1Struts2所需的jar包web.xml的核心配置代码如下:struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2/*strut.xml的核心配置代码如下:4.1.2搭建Hibernate开发环境与搭建Struts2环境类似,搭建Hibernate3开发环境需要
31、先从Hibernate首页上下载Hibernate开发组件,解压后将必须的Jar包(hibernate3.jar、commons-collections.jar等总计八个)导入项目,最后在工程的src目录中创建Hibernate的配置文件。Hibernate的配置文件可以为属性文件(hibernate.properties)或者是xml文件(Hibernate.cfg.xml),相比之下,xml配置方式更为常见。本平台的原始配置文件的核心配置代码如下:jdbc:oracle:thin:localhost:1521:orclscotttigerorg.hibernate.dialect.Orac
32、leDialectoracle.jdbc.driver.OracleDriver4.2创建包目录结构网络商店购物管理系统都是以工厂的模式进行创建的,由实体工厂、抽象工厂、实现类三部分组成。4.2.1共通包构成表4-1共通包结构表分类包名说明共通包mon.dao放置DAO共通接口的包mon.dao.impl放置DAO共通类的包mon.util放置工具类的包mon.exception放置自定义例外类的包4.2.2业务包构成表4-2业务包结构表分类包名说明业务包backend.xmlaction配置文件,国际化messagebackend.form放置表单类的包backend.action放置act
33、ion的包backend.business放置业务接口类的包backend.impl放置业务实现类的包backend.business.pojos放置各表的POJO类的包backend.dao放置DAO接口的包backend.dao.impl放置DAO实现类的包4.2.3持久化层包构成表4-3持久化层包结构表分类包名说明持久化层包backend.hibernate.cfg.file放置hibernate配置文件的包backend.hibernate.hbm.file放置映射文件的包backend.hibernate.util放置hibernate工具类的包4.3Struts模块的实现Strut
34、s主要处理用户输入的表单信息,实现用户与站点间的交互,动态生成用户所需要的信息。下面为本系统的struts.xml的配置方法:/backend/pages/common/management.jsp/index.jsp4.4Hibernate模块的实现当Hibernate配置成功之后,用户可实现与数据库的交互,下面介绍本系统与数据库连接的方法(以管理员admin为范例)。4.4.1编写POJO类在backend.hibernate.pojos及其下级目录下创建表Admin对应的POJO类Admin.java,其他与此类似,该类必须包含Admin对象的所有属性,这些属性必须与其在数据库Admin
35、表中的属性一一对应。下面为Admin的POJO类(注:属性的getter和setter方法仅列举adminID属性):publicclassAdmin/*管理员ID*/privateStringadminID=null;/*管理员密码*/privateStringpassword=null;/*管理员权限*/privateStringpriviledge=null;/*管理员状态*/privateStringstatus=null;/*备注信息*/privateStringotherInfo=null;/*无参构造*/publicAdmin()publicAdmin(StringadminID
36、,Stringpassword,Stringpriviledge,Stringstatus,Stringnote)this.setAdminID(adminID);this.setPassword(password);this.setPriviledge(priviledge);this.setStatus(status);this.setOtherInfo(note);/gettersandsetterspublicStringgetAdminID()returnadminID;publicvoidsetAdminID(StringadminID)this.adminID=adminID;4
37、.4.2编写并配置映射文件在backend.hibernate.hbm.file目录下创建数据表Admin对应POJO类的Hibernate映射文件admin.hbm.xml并配置。具体配置信息如下:!DOCTYPEhibernate-mappingPUBLIC-/Hibernate/HibernateMappingDTD3.0/EN4.4.3编写SESSION工厂在backend.hibernate.util目录下创建Session工厂类HibernateUtil.java,该类提供了获得当前Session和关闭Session的方法,其核心代码如下所示。(注:省略了异常的抛出、捕获与处理代码)