南 京 工 程 学 院
毕业设计说明书(论文)
专题
业: 通信工程
目: 网上购物系统的研究与实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期: 指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名: 日 期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
导师签名: 日期: 年 月 日
指导教师评阅书
指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日
评阅教师评阅书
评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日
摘要
伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。
本系统便是尝试用J2EE架构在网络上架构一个动态的电子商务网站,它是在Windows XP下,以MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用J2EE框架开发的网上购物系统。他分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站。
关键字:J2EE; MYSQL;Tomcat;网上购物系统
Abstract
Along with the vigorous development of the Internet, e-commerce networks as a shopping center is a form of its highly efficient, low-cost advantages, gradually emerging as a business model and philosophy, there is no longer meet use and dissemination of information browsing, but a desire to bring the full enjoyment network more convenient. Internet shopping is being adapted to the fast pace of today's society to live, so that customers can enjoy the convenience of fast and easy way to purchase their own like commodities.
The system is trying to use J2EE architecture in a dynamic network of e-commerce websites structure, which is in Windows XP, MYSQL for database development in platform, Tomcat application server as a network information services, use J2EE architecture development online shopping system. Prospects and the background of some of his hours, the prospects of users, including users registered, a shopping cart management, order management, personal information management; Background in part by managers, including commodity management, processing orders, customer information management, and information management.
After the establishment of the website is a dynamic, interactive, with commodities, systems management, voice mail, and other functions of the e-commerce website users.
Keywords:J2EE;JSP; MYSQL;Tomcat;Online shopping system
目 录
第一章 绪论 ...................................................... 2
1.1 引言 ...................................................... 2 1.2 选题背景与意义 ............................................ 2 1.3 研究现状 .................................................. 3 1.4 论文主要研究内容 .......................................... 3 1.5 主要章节安排 .............................................. 4 第二章J2EE简介 .................................................. 5
2.1 J2EE基本概念 .............................................. 5
2.1.1 J2EE概念 ............................................ 5 2.1.2 J2EE的优势 .......................................... 6 2.2 J2EE关键技术 .............................................. 9
2.2.1 JSP的技术原理 ....................................... 9 2.2.2 Struts框架 ......................................... 10
第三章 系统需求分析及总体设计 ................................... 15
3.1需求分析 .................................................. 15
3.1.1系统用户 ............................................ 15 3.1.2 网站功能 ............................................ 15 3.2系统功能模块设计 .......................................... 15
3.2.1系统功能分析 ........................................ 15 3.2.2用户访问系统的流程 .................................. 17
第四章 数据库设计与实现 ......................................... 18
4.1 数据库需求分析 .......................................... 18 4.2 数据库结构设计 ........................................... 18
4.2.1 用户信息表(cart_user) ............................... 18 4.2.2 商品信息表(cart_product) ............................ 19 4.2.3 订单表(cart_order) .................................. 19 4.2.4 订单条目表(cart_order_item) ......................... 19 4.3 Hibernate访问数据库 ...................................... 20
4.3.1 Hibernate简介 ...................................... 20
4.3.2 Hibernate的工作方式 ................................ 20 4.3.3 用Hibernate访问数据库 .............................. 21 4.3.4 用Hibernate访问数据库 .............................. 23
第五章 系统详细设计 ............................................. 25
5.1前台部分 .................................................. 25
5.1.1前台总体框架 ........................................ 25 5.1.2 用户管理模块 ........................................ 27 5.1.3用户登录 ............................................ 28 5.1.4 购物车模块 .......................................... 28 5.1.5 修改用户资料 ........................................ 31 5.1.6 商品查询 ............................................ 32 5.2后台部分 .................................................. 33
5.2.1后台总体框架 ........................................ 33 5.2.2管理员登录 .......................................... 34 5.2.3商品管理 ............................................ 34 5.2.4订单管理 ............................................ 35 5.2.5 用户管理 ............................................ 35
第六章 总结与展望 ............................................... 37 致谢 ............................................................ 38 参考文献 ........................................................ 39 附录A ........................................................... 40 附录B ........................................................... 42
南京工程学院毕业设计说明书(论文)
第一章 绪论
1.1 引言
21世纪是网络飞速发展的时代,上网、创建网站已经成为热门话题。Internet技术得到持续、猛烈的发展,已经成为计算机产业的一个技术热点,越来越多的企业开始关注网络,许多人正在或正准备学习网络知识,进行网络开发或创建自己的网站。
网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和 公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。
1.2 选题背景与意义
网上商店是电子商务的典型应用。大多数网上商店系统是基于两层体系结构来进行设计和开发的。随着Internet的飞速发展,传统的两层体系结构面临着严峻的挑战,其中最为突出的问题是开发负担重、维护困难等。
J2EE 是构建电子商务系统的新兴技术,采用J2EE技术,可以方便地将系统分离为三层:表示层、业务层及数据库层。表示层向客户的浏览器提供基于Web的显示页 面;业务层处理客户购物过程;数据层则提供数据存储。采用这种层次结构可以提高系统的扩展性和服务器的效率,方便开发。
本文针对目前网上商店所面临的问题,采用J2EE技术,设计开发了一个网上商店系统。系统具有高可靠性、可扩展性和可重用性的特点。
系统中采用多种设计模式来提高系统性能:采用前台控制器来方便地实现导航;采用复合视图来向用户提供Web显示,减少了视图中代码的重复;采用DAO模式访问数据库,从而实现了业务层和数据访问层的分离,降低了层与层之间的耦合性。
2 页 第
南京工程学院毕业设计说明书(论文)
系统使用了J2EE中的多种技术,如Struts、JSP、Servlet、Hibernate、等。系统以MySql作为后台数据库,在Tomcat5.0应用服务器上部署成功。
1.3 研究现状
在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。
在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,到2006年中国网上购物用户将达到6962万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。
1.4 论文主要研究内容
本论文涉及了软件开发基础知识、J2EE、MVC模式等方面的内容,主要包括了以下几个方面:
软件开发流程包括以下步骤,即业务需求分析,可行性研究,方案设计,确定开发计划,需求分析,建模,详细设计,编写代码,软件测试,软件维护。
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如\"编写一次、随处运行\"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
3 页 第
南京工程学院毕业设计说明书(论文)
利用J2EE框架和MVC模式来开发一个web应用项目。 最后,就全文的成果加以总结。
1.5 主要章节安排
首先就课题研究的背景和意义做出说明。第一章总体的介绍了下设计的内容。第二章简要介绍了J2EE的基础知识。第三章介绍了系统需求分析及总体设计,包括需求分析,系统功能模块设计,对具体功能及用例说明。第四章是数据库设计,包括数据库结构设计,Hibernate访问数据库。第五章给出了系统详细设计,包括前台和后台两个大的部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理等功能;后台部分由管理员使用,主要包括会员信息管理,主要包括商品管理,用户信息管理,处理订单等功能。最后给出结论并对课题未来的发展做出了展望。
4 页 第
南京工程学院毕业设计说明书(论文)
第二章J2EE简介
2.1 J2EE基本概念 2.1.1 J2EE概念
J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。事实上,J2EE已经成为企业级开发的工业标准和首选平台。
J2EE并非一个产品,而是一系列的标准。市场上可以看到很多实现了J2EE的产品,如BEA WebLogic,IBM WebSphere以及开源的JBoss等等。
J2EE,是sun公司提出的一个标准,符合这个标准的产品叫\"实现\";其中你下载的sun公司的j2ee开发包中就有一个这样的\"实现\",而 jboss,weblogic,websphere都是j2ee标准的一个\"实现\"。由于jboss,weblogic,websphere自身带有 j2ee的api,所以可以不使用sun的j2ee实现。
目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如\"编写一次、随处运行\"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE
5 页 第
南京工程学院毕业设计说明书(论文)
降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
2.1.2 J2EE的优势 2.1.2.1 J2EE的优势
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
高效的开发: J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:
稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损 失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健 壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。
2.1.2.2 J2EE三层模型(MVC)
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。 随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以 及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以 及将用户界面的输入数据和请求传递给控制和模型。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程
6 页 第
南京工程学院毕业设计说明书(论文)
的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的 框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉 我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有 提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以 完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应 反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视 图、控制器三者之间的关系和各自的主要功能,如图2-1所示。
7 页 第
南京工程学院毕业设计说明书(论文)
图2-1 MVC框架图
2.1.2.3 J2EE企业级应用示例
下面我们通过假设一个企业应用的J2EE实现,来了解各种组件和服务的应用。假设应用对象是计算机产品的生产商/零售商的销售系统,这个销售系统能够通过自己的网站发布产品信息,同时也能将产品目录传送给计算机产品交易市场。销售系统能够在线接受订单,并随后转入内部企业管理系统进行相关的后续处理。
参见图2-2,这个企业应用可以这种方式架构。该企业应用的核心是产品目录管理和产品定购管理这两个业务逻辑,使用EJB加以实现,并部署在EJB容器中。由于产品目录和定购信息都需要持久化,因此使用JDBC连接数据库。
图2-2 J2EE应用示例
8 页 第
南京工程学院毕业设计说明书(论文)
2.2 J2EE关键技术 2.2.1 JSP的技术原理 2.2.1.1 JSP语言及其特点
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP页面看上去象标准的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给用户。
程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。
所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的Java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。
2.2.1.2 JSP技术对动态Web页面的开发的影响
(1)将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来动态的设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,会根据不同的请求作相应的处理得到不同的内同,例如请求用户信息或者特定的商品的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
(2)强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans)来执行应
9 页 第
南京工程学院毕业设计说明书(论文)
用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
(3)采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
(4)JSP能提供所有Servlets功能
与Servlets相比,JSP能提供所有Servlets功能,它比用Println书写和修改HTML更方便。可以更明确地进行分工,Web页面设计人员编写HTML,只需留出空间让Servlets程序员插入动态部分即可。JSP技术能够支持高度复杂的基于Web的应用。
(5)健壮的存储管理和安全性
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
(6)一次编写,各处运行
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
2.2.2 Struts框架
2.2.2.1 Servlet控制器组件技术
Servlet在一个典型的Web应用中担任的重要角色就是Servlet非常适合做
第 10 页
南京工程学院毕业设计说明书(论文)
Web页面之间的消息转发器.因为Servlet是一个被Web容器动态加载的组件模块,它并不十分适合做用户的界面表示,而当Web用户发出请求的时候Servlet组件可以通过Servlet容器来捕获这个请求消息,这样它可以调用模型组件来出来这个消息。
当客户程序(如: 浏览器)首先向Servlet容器发出Web请求,服务器接受到请求以后会调用相应的Servlet组件来执行相应的程序来完成这个请求,然后Servlet组件吧处理结果交给Servlet容器,再由Servlet容器把请求回复给客户程序.这也是一个典型的web应用的执行过程.Java的Servlet技术提供了一组用户的编程接口为开发人员定义了相关的类。
Servlet API中以下几个比较重点的类决定了Servlet的处理流程: HttpServlet :该类提供了用户扩展的能力,用户通过继承该类编写Servlet组件.主要填写Http方法(如: doPost doGet)完成服务。
HttpServletRequest: 该类提供了接受用户请求数据的能力,该类通常是由Web容器在一次客户请求服务中创建的.Servlet可以通过该对象访问到请求时用户的请求数据。
HttpServletResponse: 该类用于生成执行后的相应结果.该类也是由Web容器在服务中创建的。
HttpSession: 该了同类处理客户的会话跟踪。
ServletContext: Servlet容器为每个Web 应用模块都提供了一个环境来保持该应用模块的状态.这组状态是该模块中所有Web组件可以访问到的共享信息。
2.2.2.2 Struts框架结合MVC框架
随着软件开发日渐成熟,软件工程师们也变得逐渐成熟起来,我们开始首先设计软件框架结构,这样在开发阶段我们才会井然有序的进行.而对于现代软件开发对软件的开发周期要求越来越迅速,所以如果要自己开发一套框架已经不太现实了.所以我们必须要选择已经成熟的软件框架了.
而Struts对于Java的Web开发而言就是一个不错的选择.Struts框架实质就是JSP Model2模型的实现.
1.视图
第 11 页
南京工程学院毕业设计说明书(论文)
视图是通过一组JSP程序实现的.这些JSP程序中不能包含业务逻辑,也不能包括模型的信息.模型的信息是通过控制器传递的.在Struts中ActionForm 也被看成是视图的一部分.它其他更新视图,以及视图查询模型状态的桥梁.
2.模型
模型是程序的状态表示,其状态包括,消息中传递的状态,以及共享状态或一次回话中的状态,以及持久状态.而操作这些状态的流程也同样包括在模型中.这些模型也就是业务的总体运作流程和数据.
3.控制器
控制器部分由ActionServlet和Action来实现.ActionServlet也就是Struts框架用来和Web容器交互的接口.该类是Struts框架的核心组件.ActionServlet继承了HttpServlet类.它在MVC模型中扮演中央控制器的角色.当Web容器一接收到客户请求就会交割ActionServlet该类更加struts-config.xml文件的配置信息选择合适Action来处理请求.并传递请求过程中的数据,这些数据是通过ActionForm传递的.Action本身也并不包含业务逻辑的处理代码.它只是负责调用业务的处理代码的.
调用这些代码的方法在execute()方法中.该方法在调用业务处理以后会放回一个ActionForward对象来选择对应的视图.一般而言我们的Action必须直接或间接的继承该类.然后重写excecute()方法以完成我们自己的处理消息.
4.Struts的配置文件 struts-config.xml
该文件实质是一个控制器和视图的黏合剂,控制器之所以能够选择对应的视图,以及视图能够通过对应的控制器查询到模型中的数据都是依赖该文件.该文件是一个XML文件.在该配置文件中每Action都对应一个 2.2.2.3 Struts流程 1. web容器启动,根据web.xml内容中的 标签 action实例配置根据 第 12 页 南京工程学院毕业设计说明书(论文) 2. 当客户端浏览器有*.do的请求时,web容器就会根据 3.struts的接收到*.do的请求后,根据配置文件struts-config.xml的映射关系, 4.action控制器类根据需要调用相应的bo类来处理业务逻辑. 5. bo类根据需要调用相应的dao类来实现与底层数据库连接 6. dao返回结果给bo,bo返回给action 调用ActionMapping 对象转到相应的页面. 图2-2 Struts基本流程状态图 ActionServlet是Struts的核心控制器,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行 第 13 页 南京工程学院毕业设计说明书(论文) 配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。 ActionForm是可以自动将表单中的数据封装成对象,当然,一个自定义ActionForm也是要遵守Struts规范的,也就是要继承于ActionForm,其中包含有validate方法,并对struts-config.xml配置文件进行配置。根据提交过来的url,如*.do,从ActionMapping 中得到相应的ActionForm和Action。然后将request的参数对应到ActionForm中,进行form验证。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionFoward。 ActionFoward是对mapping中一个foward的包装,对应于一个url 。 ActionErrors是对错误信息的包装,一旦在执行action或者form.validate中出现异常,即可产生一个ActionError并最终加入到ActionErrors。在Form验证的过程中,如果有Error发生,则会将页面重新导向至输入页,并提示错误。 ServletController(ActionServlet和自定义的Action),配置Ctrler需要配置struts-config.xml,通过客户端form的action来查找调用相应的action,自定义action中的mapping对应的是配置文件中的forward标签,通过forward的path属性来跳转到相应的路径。 Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。 第 14 页 南京工程学院毕业设计说明书(论文) 第三章 系统需求分析及总体设计 3.1需求分析 现在Internet上随处可见网上商城、网上书店等电子商务网站,让消费者(在本章中有时也称为客户)足不出户就可购买到想到的商品,不仅方便了消费者,也让拥有电子商务网站的企业能及时向广大客户推销产品、构建企业形象、赢得利润。电子商务系统与传统的面对面的营销方式相比,具有不可比拟的优势,如销售成本与物流大大降低、信息传输及时等。 3.1.1系统用户 使用网上书店系统的用户主要有两种:一种是消费者,可以浏览网上书店中的商品信息、进行网上购书;另一种是网站的管理者,可以对网上书店中的商品信息进行管理、处理客户的订单。 3.1.2 网站功能 此基于JSP的购物网站分前台功能和后台功能: 前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理。 后台部分由管理员使用,主要包括管理员身份验证,商品管理,处理订单,用户信息管理,连接信息管理。 3.2系统功能模块设计 3.2.1系统功能分析 鉴于网上商店系统的两种用户角色的说明,可将系统分为前台和后台,这种分法也是当前网站系统惯用的做法,前台供给客户使用,用于展现信息和完成与客户的交互性处理;后台供给网站的管理者使用,用于管理网站的内容。有的系统为保障安全,将后台处理部分独立出来,采用C/S方式,用专门的编 第 15 页 南京工程学院毕业设计说明书(论文) 程语言(如Visual Basic、Visual C++)来实现,因为这种方式需要网站的管理者安装客户端程序;本章中实现的网上书店其后台用B/S方式。 网上书店前台实现的功能有: (1)用户管理。实现用户资料的自助修改,维护个人信息。 (2)购物车管理。提供购物车商品条目的数量修改,增加、删除等操作。 (3)用户登录。供已注册的用户登录,登录后才能在网上购物。 (4)网上购物。已登录的用户可以将需要购买的物品放入购物车,可将已放入购物车中的物品生成一张订单并作确认,可将“未作确认”和缺货的订单取消。 网上书店后台管理实现的功能有: (1)用户信息管理。提供对用户资料的查询、删除操作。 (2)商品管理管理。供网站管理员增加、修改、删除网上书店中书藉的基本资料信息,主要是文本信息。 (3)订单管理。供网站管理员管理客户提交的订单,客户“已确认”的订单可修改状态为“已发货”。 下图为系统的功能结构图 图3-1 系统的功能结构图 第 16 页 网上购物系统 前台功能 后台功能 用户管理 购物车管理 商品查询 个人资料管理 管理员身份验证 商品管理 处理订单 用户信息管理 南京工程学院毕业设计说明书(论文) 3.2.2用户访问系统的流程 当用户在浏览器直接输入相应的工程名时,通过解析web.xml配置文件(里面设置了初始的页面),会跳传到相应的JSP页面,根据JSP中的.do的定向,再次解析web.xml配置文件(里面设置了ActionServlet控制器,然后解析struts-config.xml配置文件,进入相应的自定义的Action类,调用相应的JavaBean类的方法通过Hibernate实现对数据库的入库和出库操作. Struts-config.xml ActionServlet(控制器) 浏览器 Web服务器 DispatchAction JavaBean (模型) JSP(视图) Web.xml 数据库(本系统中是通过Hibernate访问数据库 图3-2用户访问系统的流程图 第 17 页 南京工程学院毕业设计说明书(论文) 第四章 数据库设计与实现 4.1 数据库需求分析 数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQL Server, Oracle等。我采用了MYSQL数据库管理系统,建立的数据库名为njit。 整个系统功能需要以下数据项: 用户:用户id、用户名称、登录密码、联系地址、邮编、邮箱地址、住宅电话、联系电话、单位电话。 商品:商品id、名称、价格、商品描述。 订单:订单id、订单状态、订单用户id。 订单条目:条目id、商品数量、条目价格、订单id、商品id。 4.2 数据库结构设计 4.2.1 用户信息表(cart_user) 主要用于保存用户(包括管理员)信息,该表的结构如表4-1所示。 表4-1 用户信息表(cart_user) 列名 oid name password address postcode email home_phone 类型 bigint(20) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) NULL NO NO NO NO NO YES YES Key PRI UNI Default NULL NULL NULL NULL NULL NULL NULL Extra auto_increment 第 18 页 南京工程学院毕业设计说明书(论文) cell_phone office_phone varchar(255) varchar(255) YES YES NULL NULL 4.2.2 商品信息表(cart_product) 主要用于保存商品信息,该表的结构如表4-2所示。 表4-2 商品信息表(cart_product) 列名 oid name description price 类型 bigint(20) varchar(255) varchar(255) double NULL NO YES YES YES Key PRI MUL Default NULL NULL NULL NULL Extra auto_increment 4.2.3 订单表(cart_order) 主要用于保存订单信息,该表的结构如表4-3所示。 表4-3 订单表(cart_order) 列名 oid status cost date fid 类型 bigint(20) int(11) double datetime bigint(20) NULL NO YES YES YES YES Key PRI MUL Default NULL NULL NULL NULL NULL Extra auto_increment 4.2.4 订单条目表(cart_order_item) 主要用于保存订单条目信息,该表的结构如表4-4示。 第 19 页 南京工程学院毕业设计说明书(论文) 表4-4 订单条目表(cart_order_item) 列名 oid amount cost order_id pid 类型 bigint(20) int(11) double bigint(20) bigint(20) NULL NO YES YES YES YES Key PRI MUL MUL Default NULL NULL NULL NULL NULL Extra auto_increment 4.3 Hibernate访问数据库 4.3.1 Hibernate简介 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦浪费时间的。Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据库映射(ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。 Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。 Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。不管怎样,Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。 Hibernate 是一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。其底层也是由JDBC实现的。hibernate是通过xml文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。 4.3.2 Hibernate的工作方式 第 20 页 南京工程学院毕业设计说明书(论文) Hibernate比传统的数据库访问方式(最典型的JDBC)更能体现面向对象的思想,它对JDBC实现了某种意义上的封装,以对象的方式来访问数据库,进行增、删、查、改的操作,而底层则完全由JDBC来实现。Hibernate将数据库中的表与现实中抽象出来的实体类进行实体关系映射,这些实体类也就是通常所说的POJO类,它们就是普通的JavaBean,它们不需要实现任何接口以便能够持续存在,数据库表中的每一条记录对应在Hibernate中就是实体类的一个实例。惟一需要做的就是创建一份 XML“映射文档”,告诉Hibernate将要保存到数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以以对象的形式获取数据、更改数据,或者把对象保存为数据。 运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。 4.3.3 用Hibernate访问数据库 使用Hibernate访问数据库首先要配置一个名为hibernate.cfg.xml的配置文件,该配置文件设置了连接数据库的基本信息以及映射的实体的信息,其内容如下: \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\" \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\"> 南京工程学院毕业设计说明书(论文) name=\"connection.driver_class\">com.mysql.jdbc.Driver 然后是所对应的实体的映射配置文件User.hbm.xml、Product.hbm.xml、Order.hbm.xml、Item.hbm.xml,并配置实体间的映射关系,实体的映射关系图如图4-1: 第 22 页 南京工程学院毕业设计说明书(论文) 图4-1 实体间映射关系图 4.3.4 用Hibernate访问数据库 1.配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。 2.写hibernate所需的配置文件,hibernate.cfg.xml ,XXX.hbm.xml 3.写POJO类 4.调用hibernate API。 1)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象 2)使用SessionFactory对象openSession()方法创建Session对象。 3)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。 下面是调用hibernate API 的基本步骤: 1.创建Configuration 对象。(解析配置文件) Configuration config=new Configuration(); 2.通过Configuration 创建Session Factory (线程安全的重量级组件)。 config=config.configure();//configure()方法会在CLASSPATH下寻找hibernate.cfg.xml SessionFactory sessionFactory=config.buildSessionFactory(); //创建SessionFactory对象 3.通过SessionFactory 创建Session 会话对象。 Session session=sessionFactory.openSession();//创建Session对象 4.通过Session 取得事务对象。 Transaction trans= session.beginTransaction();//开始事务 5.通过session 与数据库进行会话。 session.save(object o); //增 session.delete(object o); //删 session.update(object o); //改 session.get(Class clazz, Serializable id); //根据Id 查找对象 session.createQuery(String sql); //自己拼HQL 语言查找对象返回一个 第 23 页 南京工程学院毕业设计说明书(论文) Query 对象。 6.提交操作,结束事务。 Trans.commit(); 7.关闭Session session.close(); 第 24 页 南京工程学院毕业设计说明书(论文) 第五章 系统详细设计 5.1前台部分 5.1.1前台总体框架 前台部分由用户使用,包括用户注册,购物车管理,个人资料管理、商品查询等几个部分。 (1)模块功能介绍 用户管理:为了便于网站的管理,必须有一套完整的用户管理体系。该网站用户管理模块由用户注册,用户登陆2部分组成。 购物车:所选商品须通过购物车进行保存,然后生成订单。 修改个人资料:为了保护用户信息不受非法侵害,用户登陆后即可对个人的注册信息进行修改。 商品查询:通过输入商品的完整名称搜索网站内所有匹配的商品。 (2)前台首页流程 1、商品列表流程: 图5-1 商品列表流程 2、添加商品条目到购物车流程: 图5-2 添加商品条目到购物车流程 第 25 页 南京工程学院毕业设计说明书(论文) 3、转到购物车信息页面流程: 图5-3 转到购物车信息页面流程 4、转到登录页面流程: 图5-4 转到登录页面流程 4、前台首页运行结果如下: 图5-5 前台首页 第 26 页 南京工程学院毕业设计说明书(论文) 5.1.2 用户管理模块 用户管理模块主要包括用户注册,登录及找回密码3个部分. (1)用户注册 当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如图5-6所示. 图5-6用户注册页面 该注册页面使用了javascript在客户端进行验证 关键代码: function validate(form){ if(form.name.value.length == 0){ alert(\"请输入用户名!\"); form.name.focus(); return false; } if(form.firstpwd.value.length == 0 || form.lastpwd.value.length == 0){ alert(\"密码不能为空!\"); form.firstpwd.focus(); return false; } if(form.firstpwd.value != form.lastpwd.value){ alert(\"密码不一致!\"); form.firstpwd.focus(); return false; 第 27 页 南京工程学院毕业设计说明书(论文) } return true; } 5.1.3用户登录 用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码。用户登录流程如图5-7所示 图5-7 用户登录流程 用户登录窗口的运行结果如图5-8所示 图5-8 用户登录窗口 在用户登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作 5.1.4 购物车模块 在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟 第 28 页 南京工程学院毕业设计说明书(论文) 现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。 (1)添加购物车 添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“添加到购物车”按钮时,系统会将该商品的添加到购物车中,流程如图5-9: 图5-9 添加商品到购物车流程 如流程图所示,用户进行添加商品到购物车操作后,页面还将回到主页面,即商品列表页面,用户可以继续购物。 (2)查看购物车 为了方便用户随时查看购物情况,在网站的首页加入了查看购物车链接,通过它可以将所选物品信息放入购物车中显示出来。查看购物车页面运行结果如图5-10: 图5-10 购物车页面 在购物车页面,用户可对购物车里商品的信息进行修改,如修改商品数量、 第 29 页 南京工程学院毕业设计说明书(论文) 删除商品条目、清空购物车、结帐,当然,用户也可以选择继续购物。以上分支操作的流程图如下: 1、修改购物车商品数量流程: 图5-11 修改购物车商品数量流程 2、删除选定定单条目流程: 图5-12 删除选定定单条目流程 3、清空购物车流程: 图5-13 清空购物车流程 (3)生成订单 生成订单是网上购物商城的最终目的,前面的所有的功能的实现都是为最后生成一个用户满意的订单做基础,在此要生成一个可以供用户随时查询订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变后,就可以结帐并生成订单。结帐的流程是:从购物车中读取商品名称,商品数量,商品价格信息,生成唯一的一个订单号,同时也把用户注册的基本信息读取出 第 30 页 南京工程学院毕业设计说明书(论文) 来,形成一个完整的订单写入数据库中。 结帐填写订单的页面如图5-14。 图5-14 结帐填写订单的页面 5.1.5 修改用户资料 对于已经注册,且已经登录的用户,网站提供修改用户资料的服务,用户通过修改该页面上的表单条目,从而修改个人信息,从提交修改成功开始,后台将把数据更新到数据库,所以用户必须使用新的用户名和密码。 修改个人信息的页面运行结果如图5-15: 第 31 页 南京工程学院毕业设计说明书(论文) 图5-15 修改用户信息页面 5.1.6 商品查询 为了方面用户在多页商品列表中快速找到自己想要的商品,本网站提供了精确查找商品的功能,用户只需在主页上的搜索文本框中键入自己想搜索的商品的完整名称,就可以获得与之匹配的商品条目,用户就可以查看商品信息,也可以购买该商品。 搜索商品的操作如图5-16所示: 图5-16 搜索商品操作页面 第 32 页 南京工程学院毕业设计说明书(论文) 搜索商品的结果页面如图5-17所示: 图5-17 搜索商品的结果页面 5.2后台部分 5.2.1后台总体框架 后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。主要包括管理员身份验证,订单信息管理模块,添加商品模块,查询用户信息管理模块组成。 后台功能介绍 (1)功能模块介绍 管理员身份验证:为合法用户提供一个后台入口。 订单管理模块:网站管理者对用户订单的已发货状态和未发货状态。 商品管理模块:向商品表插入、删除、修改前台首页展示的商品信息。 用户管理模块:查询注册所有用户,对一些非法或失信用户进行删除操作。 (2)后台首页运行结果 网站后台首页运行结果,如图5-18所示。 图5-18 网站后台首页 第 33 页 南京工程学院毕业设计说明书(论文) 5.2.2管理员登录 在前台首页单击管理员入口,将转到管理员登录页面。该页面的功能是对管理员身份验证,本系统要求管理员的用户名必须为admin,用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。管理员登录页面的运行结果如图5-19所示。 图5-19 管理员登录图 5.2.3商品管理 单击导航区的“添加商品”超链接,系统将打开添加商品页面,该页面主要用于商品信息添加到数据库表中,以提供前台首页商品展示类别展示所需要的数据依据。目录添加页面的运行结果如图5-20所示。 图5-20 添加商品页面 第 34 页 南京工程学院毕业设计说明书(论文) 同样,管理员也可以对过期的商品进行删除操作,以及对商品信息的修改操作,因为原理一样,所以在此不再赘述。 5.2.4订单管理 用户在前台购物所产生的订单不能立即执行需要系统管理员在后台处理订单,运行结果如图所示。系统管理员单击 “订单管理”超链接进入用户订单处理页面,该页面是会显示近期所没有被处理的订单,其运行结果如图5-21所示: 图5-21 订单处理界面 管理员可以查看每条订单中的所有商品信息,同时也可以处理每条订单(发货),处理过的订单的订单状态将改为已处理,同时在已处理订单的页面显示,结果如图5-22: 图5-22 已处理订单页面 5.2.5 用户管理 该模块用来完成对注册用户的浏览及删除功能。如果用户蓄意性注册或在很长的时间内没有订单生成,管理员就可以将该用户删除。同时该管理界面也提供了用户的搜索功能,以方便快速找到用户,单击“用户管理”超链接进入用户信息页面,选择查看用户,其运行结果如图5-23: 第 35 页 南京工程学院毕业设计说明书(论文) 图5-23查询用户信息界面 点击删除用户的超链接,运行结果如图5-24: 图5-24查询用户信息界面 第 36 页 南京工程学院毕业设计说明书(论文) 第六章 总结与展望 本文简要介绍了网上购物系统的主要功能及体系结构,重点讨论了系统数据准备、数据库的逻辑结构分析等关键技术。这些技术的实现,满足了系统的需要,优化了系统的性能。目前基于该模型的系统处于试运行阶段,还存在许多问题与不足,如安全性能还不完善,JSP页面不够美观,缺少网上支付认证加密系统等。本次的毕业设计对我本人来说是意义深远的,其中最重要的是独立完成一个相对较大的系统,这个收获无论是对我的理论知识还是对以后的工作生涯都是深受裨益的。因此在今后的工作里,这些功能与技术还需要加以提高和实现。网上购物系统无论是在开发过程中,还是建成后的日常维护过程中,都需要进行严格的检测,以保证购物系统的服务质量。 随着网上购物系统技术的日趋成熟、网上购物的优势日趋明显,会有更多的人参与到网上购物的浪潮中来,人类最终将迎接电子商务时代的来临。 第 37 页 南京工程学院毕业设计说明书(论文) 致 谢 本论文的工作是在我的导师精心指导和悉心关怀下完成的,在我的学业和论文的工作中无不倾注着导师辛勤的汗水和心血。导师的严谨治学态度、渊博的知识、无私的奉献精神使我深受的启迪。从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在此我要向我的导师致以最衷心的感谢和深深的敬意。 在我的论文撰写过程中,董亮、陆益等提出了宝贵意见和建议,在此向他们表示深深的感谢。 在多年的学习生活中,还得到了许多学院领导、系领导和老师的热情关心和帮助。 在日常学习和生活中,室友等都给予了我很大帮助。 我也要感谢我的父母和亲人,他们在我的学业中给了我莫大的鼓励、关爱和支持。 最后,向所有关心和帮助过我的领导、老师、同学和朋友表示由衷的谢意! 衷心地感谢在百忙之中评阅我的论文和参加答辩的各位老师! 第 38 页 南京工程学院毕业设计说明书(论文) 参考文献 1、 邓子云.精通J2EE网络编程.北京:清华大学出版社,2007 2、 明日科技. JSP开发技术大全.北京:人民邮电出版社,2007 3、 赵辉等. JSP开发技术原理与实践教程.北京:电子工业出版社,2007 4、 贾素玲等. JSP应用开发技术.北京:清华大学出版社,2007 5、 邹竹彪. JSP网络编程从入门到精通. 北京:清华大学出版社,2007 6、 张洪伟. Tomcat Web开发及整合应用. 北京:清华大学出版社,2006 7、 孙卫琴等. Tomcat与Java Web开发技术详解. 北京:电子工业出版社,2004 8、孙卫琴. 精通Struts:基于MVC的Java Web设计与开发. 北京:电子工业出版社,2004 9、邬继成. Struts与Hibernate实用教程——构建基于MVC模式的高效Java Web应用. 北京:电子工业出版社,2006 10、余浩东. J2EE应用框架设计与项目开发. 北京:清华大学出版社,2008 11、夏昕,曹晓钢,唐勇.深入浅出Hibernate. 北京:电子工业出版社,2005 12、孙卫琴. JAVA面向对象编程. 北京:电子工业出版社,2006 13、Marty Hall、Larry Brown. Core Servlet and JavaServer Pages: Volume 1:Core Technologies 2nd Edition. 北京:清华大学出版社,2004 第 39 页 南京工程学院毕业设计说明书(论文) 附录A 服务器配置: 1.JDK安装 第一步:从官方网站http://java.sun.com下载该软件。 第二步:双击.exe文件,安装在C:\\Program Files\\Java\\jdk1.5.0_06。 第三步:JDK的环境配置:在Windows中用鼠标指向我的电脑,按右键,选择“属性”,在“系统特性”表单内选择“高级”标签,在“高级”标签内选择“环境变量”,在系统变量中加入变量JAVA_HOME,CLASSPATH。 安装和配置完毕后,在“命令提示符”中输入javac,会出现如图1所示,则说明JDK安装和配置都是正确的。 2.Tomcat安装及配置 直接运行下载的apache-tomcat-5.5.17.exe文件,按照一般的Windows程序安装步骤即可安装好Tomcat,安装时它会自动寻找JDK的位置。安装过程中需要选择一个文件夹作为Tomcat的安装目录。 安装完成以后,添加一个Tomcat的环境变量,添加方法和JDK的环境变量的添加方法相同,设置变量名为TOMCAT_HOME,变量值为C:\\Tomcat 5.5。 设置完毕后就可以运行Tomcat服务器了。Tomcat成功启动后,在浏览器中输入http;//localhost:8080/,如果出现欢迎界面,则说明Tomcat安装成功。 第 40 页 南京工程学院毕业设计说明书(论文) 欢迎界面如图2所示。 第 41 页 南京工程学院毕业设计说明书(论文) 附录B 源代码摘要: 1、 struts-config.xml 功能:配置请求的映射关系,处理请求的跳转 \"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN\" \"http://struts.apache.org/dtds/struts-config_1_2.dtd\"> 第 42 页 南京工程学院毕业设计说明书(论文) 南京工程学院毕业设计说明书(论文) type=\"com.tarena.shop.action.GenerateOrderAction\" validate=\"false\"> 第 44 页 南京工程学院毕业设计说明书(论文) 第 45 页 南京工程学院毕业设计说明书(论文) 2、AddItemToCartAction.java 功能:向购物车中添加条目,并跳转页面 package com.tarena.shop.action; import java.util.Iterator; 第 46 页 南京工程学院毕业设计说明书(论文) import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.tarena.shop.biz.service.IProductService; import com.tarena.shop.biz.service.ProductServiceHbnImpl; import com.tarena.shop.entity.Cart; import com.tarena.shop.entity.Item; import com.tarena.shop.entity.Product; public class AddItemToCartAction extends Action { /** * 向购物车中添加条目 */ @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(false); Cart cart = (Cart)session.getAttribute(\"cart\"); Map Iterator it = items.keySet().iterator(); while(it.hasNext()) { Long l = (Long)it.next(); Item item = items.get(l); //判断条目是否存在,若存在修改条目数量 if(item.getProduct().getOid().equals(Long.parseLong(request.getParameter(\"o 第 47 页 南京工程学院毕业设计说明书(论文) id\")))){ } //若不存在添加一条新条目 if(b){ IProductService service = new ProductServiceHbnImpl(); Product p = } cart.modifyItemNumber(item); b = false; service.findById(Long.parseLong(request.getParameter(\"oid\"))); } } } return mapping.findForward(\"listProduct\"); Item item2 = new Item(); item2.setAmount(1); item2.setCost(p.getPrice()); p.addItem(item2); cart.addItem(item2); 第 48 页 南京工程学院毕业设计说明书(论文) 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 第 49 页 南京工程学院毕业设计说明书(论文) 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。 作者签名: 二〇一〇年九月二十日 毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 作者签名: 二〇一〇年九月二十日 第 50 页 南京工程学院毕业设计说明书(论文) 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 第 51 页 因篇幅问题不能全部显示,请点此查看更多更全内容