毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc

上传人:小小飞 文档编号:3281999 上传时间:2019-08-07 格式:DOC 页数:21 大小:909.52KB
返回 下载 相关 举报
毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc_第1页
第1页 / 共21页
毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc_第2页
第2页 / 共21页
毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc_第3页
第3页 / 共21页
毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc_第4页
第4页 / 共21页
毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-信用卡商城系统—后台商品管理模块.doc(21页珍藏版)》请在三一文库上搜索。

1、目录论 文 摘 要2一、JAVA编程31、1 JAVA语言简介31、2struts2.0简介5二、网站功能的设计82、1网站功能分析82、2平台功能模块的设计92、3系统流程分析102、3、1前台购物流程图102、3、2后台购物流程图102、3、3注册功能流程图112、3、4商品搜索流程图122、3、5用户登录流程图122、3、6商品管理流程图132、3、7购物车流程图132、3.、8 代码实现:132、3.、9 后台模块商品管理模块中查询商品列表action代码实现:142、3.、10 前台视图实现:152、3.、11 后台登录视图实现:162、3.、11 后台视图实现:17三、数据库设计1

2、73、1顾客基本信息表 User173、2商品信息表 Product173、3商品分类表 Category183、4订单表 Orders183、5订单详细信息表 OrderItems183、6管理员信息表 Admin183、7数据库的连接18四、系统测试194、2 单元测试分析194、3 测试分析总结及说明204、4系统的性能分析20五、总结21六、参考文献21论 文 摘 要随着互联网技术的迅速发展,网络已逐渐深入人心,更是成为继报刊、电视广播等传统媒体之后而兴起的一新传媒介质,网络宣传已成为众多宣传手段的重中之重,各种各样的网站也就应运而生:为宣传企业而制作的公司网站、可进行网上购物的电子商

3、务网站、能及时了解到天下事的新闻网站、方便学习的教育网站,还有学校、团体、个人等等各大各小的网站,充斥着我们的视野,满足着我们的需要。网站的规划与建设,已悄然被许多人摆到了首要的迫在眉睫的位置上。当今的企业,如果仍然依靠传统的方式宣传自己企业的形象和文化、采购自己企业所需的原材料和配套部件、推销自己企业的产品,则显得十分落后而且难以适应激烈的市场竞争。因此,当代企业纷纷建立自己的网站,借助于互联网快速的信息传递加速自身的发展。一个企业网站的规划与建设,自然而然也就成了众多类型的网站规划与建设的典范;企业网站的规划与建设这一研究课题,也自然而然地成为当今乃至今后一段长时间内,企业内部和互联网上的

4、一个相当重要的讨论对象。我这次毕业设计主要研究的就是企业网上购物系统在网络上的实现。 购物网站的规划与建设这一课题,是应用前景非常广阔的!它的解决方案不仅仅可以针对购物的网站,同样可以应用于多种多样的网站建设。 21世纪是信息化的社会,互联网实现了世界范围的网络间的互联和信息共享,并已全面介入人类生产生活的方方面面,带动着人类社会的飞速发展。企业产品的推销、企业形象的树立、企业文化的宣传,都靠着企业网站给着人们的头脑里的第一印象。网站做的好,企业自然受人们关注、受人们青睐;如果网站做的不好,企业的效益自然就会受到影响。 企业网站的规划与建设将是一个长久且受人关注的课题,人们将沿着这条研究网站建

5、设的路越走越精彩关键字:Struts2oracle 信用卡网上商城信用卡商城系统后台商品管理模块XXX(开封大学 软件学院 07软件)一、JAVA编程1、1 JAVA语言简介Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C+语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下:1、Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特

6、别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、S

7、ocket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类Se

8、curityManager)让Java应用设置安全哨兵。6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码

9、格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其

10、二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语

11、言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。相关技术1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口。2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部

12、署和管理跨平台的基于组件的企业应用。3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无逢的互操作性。这使得Java能集成异构的商务信息资源。5、JNDI(Java Naming

13、 and Directory Interface)提供从Java平台到的统一的无逢的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。在Java技术中,值得关注的还

14、有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。现在,EJB (Enterprise JavaBeans) 将JavaBean概念

15、扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围。1、2struts2.0简介 Struts 2框架的大致处理流程如下:1,浏览器发送请求,例如请求/mypage.action,/reports/myreport.pdf等。2,核心控制器FilterDispatcher根据请求决定调用合适的Action。3,WebWork的拦截器链自动对请求应用通用功能,例如workflow,validation或文件上传等功能。4,回调Action的execute方法,该ex

16、ecute方法先获取用户请求参数,然后执行某种数据库操作,既可以是将数据保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。5,Action的execute方法处理结果信息将被输出到浏览器种,可以是html页面,图像,也可以是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity,FreeMarker等模板技术。Struts 2的配置文件配置文件主要分两份:配置Action的struts.xml文件配置Struts 2全局属性的struts.properties文件。struts.xml文件内定义

17、了Struts 2的系列Action,定义Action时,指定该Action的实现类,并定义该Action处理结果与视图资源之间的映射关系。 /error.jsp /welcome.jsp 上面struts.xml文件种,定义了两个Action。定义Action时,不仅定义了Action的实现类,而且的定义Action的处理结果时,指定了多个result,result元素指定execute方法返回值和视图资源之间的映射关系。定义result元素时,可以指定两个属性:type和name。其中name指定了execute方法返回的字符串,而type指定转向的资源类型,此处转向资源可以是JSP,也可

18、以是FreeMarker等,甚至是另一个Action。另一个配置文件properties文件,示例如下:#指定Struts 2处于开发状态struts.devMode=false/指定当Struts 2配置文件改变后,Web框架是否重新加载Struts 2配置文件struts.configuration.xml.reload=trueStruts 2的标签库也是Struts 2的重要组成部分,Struts 2的标签库提供了丰富的功能,这些标签库不仅提供了表现层数据处理,而且提供了基本的流程控制功能,还提供了国际化,AJAX支持等功能。Stuts 2 的控制器组件Struts 2的控制器组件是S

19、truts 2框架的核心,事实上,所有MVC框架都是以控制器组件为核心的。Struts 2的控制器由两部分组成:FilterDispatcher和业务控制器Action。Struts 2应用中起作用的业务控制器不是用户定义的Action,而是系统生成的Action代理,但该Action代理以用户定义的Action为目标。下面看段public class IndexAction implements Actionprivate String id;private String name;public String getId() return id;public void setId(Strin

20、g id) this.id = id;public String getName() return name;public void setName(String name) this.name = name;public String execute() throws Exception if (getId().equals(sa) & getName().equals(sa) return success; else return error;通过上面的Action代码,发现该Action比WebWork中的Action更彻底,该Action无需实现任何父接口,无需继承任何Struts 2

21、基类,该Action类完全是一个POJO(普通,传统的JAVA对象),因此具有很好的复用性。这个execute方法依然是一个很普通的方法,既没有与ServletAPI耦合,也没有与Struts 2 API耦合。户二、网站功能的设计2、1网站功能分析经过前期的深入调查和研究,总结出该平台需要完成的一些具体功能,分析如下:用户管理 能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。管理员管理 能够完成管理员对网站的商品资料(添加大类、添加小类、商品添加、商品审查)、商品交易(外理订单、发货查询)、会员管理(会员审查)、操作管理(管理员添加、管理员审查、管理员退出)的功能。搜索功能

22、能过电子商品的名称,电子商品的分类进行搜索。查询功能 能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。2、2平台功能模块的设计在平台功能的分析基础上,得到本平台的功能模块图如下:信用卡商城系统平台主要包括四大功能模块,用户管理、网站布局、管理员管理、搜索等功能模块。其中用户管理模块,主要包括用户注册、用户修改、用户删除等功能;管理员管理主要包括商品资料(添加大类、添加小类、商品添加、商品审查)、商品交易、会员管理、操作管理(管理员添加、管理员审查、管理员退出)等功能;搜索主要包括:商品名称、商品类别。信用卡商城购物系统平台总体模块:信用卡商城系统平台前台后台用户登录

23、商城公告商品销售排行特价商品新品上架商品分类商品管理会员管理订单管理公告管理退出后台购物车2、3系统流程分析本系统分为前台购物流程和后台订单处理流程2、3、1前台购物流程图浏览商品选择商品订购商品去购物车去收银台提交订单未注册用户已登录注册用户未登录注册用户注册游客2、3、2后台购物流程图用户订单订单处理订单发货订单结账订单删除注册入口必选项为空?用户名有效?密码是否一致?密码符合要求?Email有效?其他信息有效?注册成功否否否否否否是否是是是是是2、3、3注册功能流程图 开始搜索输入条件搜索结果查看商品购物车下订单继续搜索是2、3、4商品搜索流程图查询用户是否存在登录入口取得用户名和密码将

24、UserID存入session中核对密码是否正确登录成功是是否否2、3、5用户登录流程图商品管理查询商品修改,删除满意否返回添加商品是否2、3、6商品管理流程图2、3、7购物车流程图购物车查看商品满意否下订单调整商品是否2、3.、8 代码实现:2、3.、9 后台模块商品管理模块中查询商品列表action代码实现:代码如下:/* * 查询商品信息 */public String search() log.info(查询商品信息);System.out.println(+ + page);goodsmanagerservice = new GoodsManagerService();pageuti

25、l = new PageUtil();Map session = ActionContext.getContext().getSession();if (session.get(pageutil) = null) if (page = null | page.trim().length() = 0) pageutil.setRecordsperpage(5); else pageutil.setRecordsperpage(Integer.parseInt(page);pageutil.setCurrentpage(1); else pageutil = (PageUtil) session.

26、get(pageutil);pageutil.setRecordsperpage(pageutil.getRecordsperpage();pageutil.setTotalrecode(goodsmanagerservice.getTotalRecord(); pageutil.setTotalpages(pageutil.totalpages(pageutil.getTotalrecode();session.put(pageutil, pageutil);list = goodsmanagerservice.getAllGoods(pageutil);System.out.println

27、(list.size();if (list.size() 0) session.put(list, list);return SUCCESS; else return INPUT;先查看session中分页设置是否已经存在,如果存在就调用然后应用,如果不存在就初始化它,查询出所有的商品列表,并对其进行分页,如果查询的不为空的话,返回成功页面,为空时返回错误页面,其中SUCCESS和INPUT与struts2的配置文件中有对应的相应的页面。2、3.、10 前台视图实现:2、3.、11 后台登录视图实现:2、3.、11 后台视图实现:三、数据库设计在本系统中数据库具体表结构的设计:3、1顾客基本信

28、息表 User顾客信息表用来记录用户的一些基本信息,其结构如下表所示:编号字段名称数据类型说明1UserIDInt用户ID(主键)2UserNameNvarchar(50)用户登录名3PasswordNvarchar(50)用户密码4UserRealNameNvarchar(50)用户真实姓名5AddressNvarchar(50)地址6EmailNvarchar(50)电子邮件3、2商品信息表 Product商品信息表表示商品的基本信息,如下表所示:编号字段名称数据类型说明1ProductIDInt商品编号(主键)2ProductNameNvarchar(50)商品名称3ProductPri

29、ceDecimal价格4IntroNvarchar(50)商品介绍5CategoryIDInt所属分类编号 3、3商品分类表 Category商品分类表用来表示商品类别信息。其结构如下表所示:编号字段名称数据类型说明1CategoryIDInt商品分类ID(主键)2CategoryNamevarchar(50)分类名称3CnoInt分类编码4GradeInt分类等级5PidInt与上级分类ID对应3、4订单表 Orders订单表保存每笔订单的基本信息。结构如下表所示:编号字段名称数据类型说明1OrderIDInt订单号(主键)2UserIDInt所属用户ID3OrderDateDateTime

30、成交时间4AddrVarchar(50)送货地址3、5订单详细信息表 OrderItems订单详细信息表体现订单的细则,结构如下表所示:编号字段名称数据类型说明1OrderIdInt所属订单号(主键)2ProductIDInt商品ID(主键)3QuantityInt该商品的购买数量4UnitCostDecimal该商品的单价3、6管理员信息表 Admin与用户信息表类似,管理员信息表用来保存管理员的基本信息,如下表所示:编号字段名称数据类型说明1AdminIDInt管理员ID2LoginNameNvarchar(50)管理员登录名3LoginPwdNvarchar(50)管理员密码3、7数据库

31、的连接出于方便修改的考虑,我们将与数据库的连接,通过JNDI的形式单独写出来并进行编译,将其放到CreditCardShopWebRootMETA-INF目录下的一个context.xml文件中,在web.xml中加载它,web.xml中配置如下jdbc/CreditCardDataSourcejavax.sql.DataSourceContainer其中数据源配置文件配置如下:注:此系统使用的是Oracle数据库四、系统测试4、1 系统关键部分测试分析 系统完成之后,对各个模块的功能进行了详细的测试,输入数据和预测输出数据相比,发现了一些问题。主要是在查询过程中预计查询结果和实际结果不一致,

32、有时候达不到目的,对数据库的操作表之间的关联考虑得不够周到,因此往往会出现一些小的错误。还有查询条件的前后数据类型不一致也是一个很常见的错误,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,一些关键查询统计的SQL语句必须反复斟酌才能放在程序中使用。 4、2 单元测试分析(1)经过上面部分的分析,我们可以得知,购物车模块是我们需要特别注意的地方,因为它涉及到了我们数据库中的大部分数据,并且是进行网上交易的最关键部分,绝对不能出现任何的差错,下面我们就针对这一模块进

33、行用例测试:我们以用户jikou的身份登入系统,用户名是:jikou 密码是:1234然后点击定购商品:高档羽绒服 单价为268元 弹出购物车清单:选择商品数量 2 确认 出现清单:显示商品名称 高档羽绒服 数量2 合计 536元与我们估算的数据相符。此时选择清空购物车,继续购物,点击定购商品:高级咖啡杯 单价为89元选择数量3 确认,出现清单:显示商品名称 高级咖啡杯 合计267元 继续选择收银台结帐,出现帐单显示:显示商品名称 高级咖啡杯 合计267元 与我们估算的数据也相符,证明清空购物车的功能正常有效,并没有将我们第一次选购的物品计算在内,价格的计算也正确无误。(2)对用户注册部分进行

34、测试用户名:jikou 密码:123456 确认:123456 E _mail:地址:河南郑州 邮编:450002 真实性名:付立夫提交以后,弹出提示信息:该用户已存在,用户名重复验证正常将用户名改为:几个空格 然后其他的不变提交之后我们会发现系统返回成功页面,但问题是用户名什么也没有,空格也被作为合法的用户名,这在实际应用中是不允许的,我们需要对其命名规则进行定义,具体修改请参看后面存在问题及解决方法。同样的邮编及电话也存在规则未定义的问题,需要对其加以定义。4、3 测试分析总结及说明 在测试过程中,我经过模块测试和组装测试,排除了系统的大部分错误。当然排除所有错误是不太可能的,我想应该还有

35、些不易检测到的错误还没有被发现,需要在使用的过程中进一步的完善,数据库的加密是一个重要的概念,在实际的应用过程中是一个尚待解决的问题,应该做好数据库的完善工作,特别是备份和安全工作;另一方面本系统没有制作相关的打印,由于时间仓促难免有错误和不完善的地方,希望老师能够帮我指点和纠正。4、4系统的性能分析 网上购物系统的性质决定了它的服务端工作负荷比较大,这就要求服务端的硬件配置要尽可能的高,主要是内存,而且操作系统也要尽可能的稳定。基于java的系统一般来说网络安全性比较好,但并不能说就一定安全,尤其在windows操作系统下,由于windows的漏洞比较多,系统装配在windows下并不是最佳

36、的选择,如果有条件,建议可将系统装配在unix操作系统下,提高系统的抗侵入能力。 系统的核心数据库,随着数据的不断增多,必然会产生冗余,导致系统运行效率降低,建议管理员定期备份和清理冗余数据,以保证系统的正常高效运行。五、总结这次毕业设计是对我们大学学习的一次重要的检验,也是对我们的学习是否达到一定的水平,是否合格的一次考核。在这段难忘的毕业设计的时期里我感受到了共同研究一个课题的乐趣,这也是我第一次比较系统的制作的一个网站,当然,在开发的过程中遇到了许多的困难,但是我坚信,只要坚持和努力,就一定能完成任务。每当解决一个困难的时候,心里就会感到很高兴,并且也在开发过程中得到了一次难能宝贵的经验。在这段日子里,我学到了很多东西,重新巩固了原来的知识,甚至学到了那些没有在大学课堂里学到的知识,为今后的工作和再学习指明了方向。在论文即将完成之际,回顾紧张但又充实的学习和开发过程,本人在此向毕业设计期间帮助过我的老师和同学们致以诚挚的谢意,感谢你们在毕业设计期间所给予的经验和智慧,使我获益非浅!六、参考文献孙鑫. Struts2深入详解. 电子工业出版社,2008.721

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1