版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于web电子商务管理系统PAGEPAGE8基于按键触发方式的PDA寿命检测系统摘要:开发了一种基于按触发方式的PDA产品寿命检测系统。详细介绍了该系统的功能、工作原理、设计方案及硬件结构;并针对实时性较强的多任务程序设计,介绍了集中调用、参数返回的程序调用方法。实际应用表明,该系统安全性高,稳定可靠、操作简单灵活。关键词:按键触发接触力检测界面转换
由于PDA产品外观小巧、操作方便、便于携带,使其深受消费者的青睐。有些袼顺使用过程中经常出现屏幕损坏、按键失效等现象,导致产品的寿命达不到规定要求。所以作为PDA产品关键部件的屏幕,其寿命往往决定PDA产品的使用寿命,而作为易损件的按键也是限制PDA产品寿命的一个瓶颈。本文研制的检测系统可用来检测PDA产品在规定的极限温度和湿度环境中按键的疲劳寿命。1检测原理通常,PDA产品都具有节能工作模式或者自动关功能,若长时间不对其进行操作,屏幕就处于非工作状态。屏幕检测就是不断地触发PDA产品的按键,保证屏幕在检测过程中处于工作状态。检测时,PDA产品被放在一个温度和湿度可调的密闭环境中。
按键寿命检测是记录按键在正常状态下被按下的次数。方法是在按键间的接触力,如果接键力在正常范围内,则认为按键处于正常工作状态,按键触发次数加1;如果接触力超出正常范围,则认为按键被卡死;如果接触力低于正常范围,则认为按键没有及时弹起。后两种情况都认为按键出现故障。2系统组成及功能介绍检测控制系统由主控电路、触发检测装置、人机交互装置、电源自动关闭定时装置和电压变换及过流保护装置组成,如图1所示。
CPU为控制系统的核心,采用89C55WD单片机,该芯片自带看门狗电路,片内存储器容量大,完全兼容其它51系列单片机的特点,使得外围电路简单。由于要同时检测多个PDA产品,选用8255A对89C55WD的I/O口进行扩展。触发记录采用×25045完成,该芯片具有电压保护功能并具有4K串行输入的E2PROM,可用来记录按键被按下的次数。当检测系统停止工作时,E2PROM记录的数据不会丢失;当系统再次工作时,可以在上次记录的基础上进行记录。触发检测装置包括按键触发探头(这里采用继电器)、压力传感器、放置PDA产品的伸缩滑道及温度湿度可调的密封容器。
检测时,被测PDA产品按照一定顺序放置在伸缩滑道的规定位置上,CPU通过调整继电器的通电时间及通电频率控制触发探头接触PDA产品的按键的时间及触频率。
压力传感器检测按键及触发探头接触时的压力,检测结果经过A/D转换接口被送到CPU进行处理。继电器和CPU之间设有光电隔离及功率放大电路,前者阻止继电器电流的变化对主控制电路的干扰,后者用于放大继电器的驱动电流。人机交互装置包括键盘和LCD显示两部分。通过操作键盘,操作者可以选择被测对象、输入检测时间和触发频率等检测参数,还可随时停止对某个PDA的检测。LCD为操作者提供了上述参数的设置界面,并实时地显示设置的检测参数、检测的时间进程和按键的触发次数。
利用电源自动关闭定时装置可以设定检测系统的工作时间,当操作人员忘记关闭检测系统的电源时,系统会自动继电,防止事故发生。该定时装置的定时时间可调。电压变换及过流保护装置将220V交流电转换为稳定的5V及12V直流电。由于有时需要同时对多个PDA产品检测,系统的输出电流较大,因此为保护直流电源,这里采取了过流保护措施。3系统的硬件设计硬件设计主要包括继电器输出控制设计、LCD显示和键盘电路设计等部分。3.1继电器输出控制电路继电器输出控制电路如图2所示。功放电路采用ULN2803。ULN2803是八组NPN型达林顿功放三极管集成芯片,典型的输入电压是5V,集电极输出功率可达50V×600mA。续流二极管D用来保护ULN2803,L、RL分别为继电器的电感和内阻,Bi、Ci为八路输入输出中的一路。光电隔离电路采用TLR521。控制信号由89C55WD产生,通过8255A的输出口加在TLP521的输入端。3.2LCD显示电路设计LCD采用内藏T6963C控制器的图形液晶模块。点阵为160×128,工作频率为5.5MHz,可满足实时监控的要求,并带有背光。图3为89C55WD与该液晶控制模块的电路连接图。3.3键盘电路设计这里采用4×4键盘,十个数字键、四个方向键、一个“确认”键和一个“清除”键。键盘电路和A/D转换电路都比较简单,不再多述。4系统软件设计4.1集中调用、参数返回的程序调用方法集中调用是指只有主程序具有调用某些子程序的权限,而子程序之间没有相互调用的权力;参数返回就是指当前从某个子程序转换到另一个子程序时,程序并不直接进入后者的入口地址,而是将后者的入口地址作为参数返回,主程序根据该参数调用相应的子程序。该方法有效地避开了多个子程序相互嵌套、递归调用的层次太深的缺陷,使程序运行可靠、可读性强。本软件系统包括定时中断、时间处理、触发控制、触发压力检测、键盘处理及各界面显示等子程序。这里通过介绍主程序及检测状态界面子程序来说明集中调用、参数返回的程序设计方法在子程序相互转换中的实现。限于篇幅,其它子程序不作详细介绍。4.2主程序设计根据液晶屏幕的大小,半显示的内容分为四类,分别用四种界面显示,即开机界面、检测状态界面、参数设置界面和停止检测选择界面,每一界面对应一个子程序。检测状态界面如图4所示,它将操作者设置的每个PDA产品的检测参数、监控进程(已完成的检测时间)和按键被按下的次数实时地显示出来。由于要同时检测多个PDA产品,该界面由若干帧组成,每一帧显示四个PDA产品的检测情况,具有设置、停止、继续和返回四个命令按钮。参数设置界面为操作者提供了对检测参数进行设置的环境,包括选择要测试的PDA产品以及设置检测时间、继电器触发频率等。停止检测选择界面可以让操作者有选择地终止某个正在检测的PDA产品,而不影响其它产品的正常检测。以上四类界面子程序间的相互转换采用了集中调用、参数返回的程序调用方法,图5为主程序流程图。4.3检测状态界面子程序参见图4,操作者可通过键盘上的方向键将屏幕光标移动到屏幕上的四个命令按钮处,按下键盘上的“确认”键,表示该命令按钮被选中。程序进入到该子程序时,首先判断设置按钮是否被选中,如果选中则将参数设置子程序的入口地址为返回值返回主程序,主程序根据该返回值调用参数设置子程序。若该按钮没有被选中,则继续判断其它按钮是否被选中。如果所有按钮都没有被选中,则依次调用时间处理子程序、触发控制子程序、触发力检测子程序,读取压力传感器的输入值并进行A/D转换及其它处理。最后调用键盘处理子程序判断是否有功能键被按下,进入到检测状态界面子程序入口处,完成一个循环。检测状态界面子程序框图如图6所示。其它界面子程序的设计方法与此类似,这里不再说明。经用户使用证明,本文介绍的PDA按键触检测控制系统可以在不同温度、湿度下对PDA屏幕及按键进行寿命检测,且安全可靠、操作简单、使用灵活、具有很好的人机交互界面。毕业论文(设计)基于web电子商务管理系统的设计与实现学号:姓名:年级:学院:信息科学技术学院系别:计算机科学与技术专业:计算机科学与技术指导教师:完成日期:基于web电子商务管理系统PAGE1摘要近年来,随着Intemet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并进入传统的流通领域。于是电子商务开始流行起来,一种全新的购物理念开始形成并逐步发展。电子商务系统是一种具有交互功能的商业信息系统。本文通过分析国内外电子商务系统的发展和现状,提出了一种利用JSP技术开发电子商务购物系统的方案。本文首先介绍了电子商务系统的现状及开发背景,然后论述了系统的设计目标,系统需求和总体设计方案,较详细的论述了系统的详细设计和实现。本系统主要为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为管理员提供了商品管理,用户信息管理等功能。在设计方面,使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用JavaBean对程序的关键代码进行封装。后台数据库选用Mysql数据库。最后本系统经过软件的测试,能够安全稳定地运行,满足各功能的需求并且达到了预期的效果。关键字:电子商务;网上商店;JSP;JavaBeanAbstractInrecentyears,withtherapidgrowingupofInternet,theIntemethasbecomingthebestwaytocollectandprovidetheinformation,whichhasenteredintothetraditionalfieldofcurrency.ThereforeE-businessisbecomingmoreandmorepopular.Soabrandnewshoppingprinciplehascomeintobeinganddevelopedgradually.E-businesssystemisakindofcommercialinformationsystemwiththemutualfunction.ThethesisanalyzedthedevolpmentstateofdomesticandoverseasE-businesssystemandprovidedaplantodeveloptheE-businesssystemwiththehelpofJSPtechnology.ThethesishasfirstlyintroducedthepracticalsituationandthedevelopingbackgroundofE-businesssystem.Andthenhasdescribedthedesigninggoal,systemneedandthewholedesigningplan,hasdescribedthedetaileddesignandrealityofthesystemindetail.Thesystemhasmainlyprovideduserswiththefollowingfunctions:membershipregistration,shoppingcarmanagement,goodssearch,informationmodifyetc.Ithasalsoprovidedmanagerswithgoodsmanagement,customerinformationmanagementandsoon.IthasbeendesignedwithJSPtechnologyindynamicpagedesign.Consideringfromthesecurityandreusingcodeofthesystem,keycodeshasbeensecuredbyJavaBeantechnology.Mysqldatabasehasbeenusedasthebackgrounddatabase.Intheend,thesystempassedthesoftwaretestanditcanworksafelyandstablely,whichsatisfiedallkindsoffunctionsandrequestsasweexpected.Keywords:E-business;Shoppingonline;JSP;JavaBean目录1 电子商务管理系统概述 11.1 系统的开发背景 11.2 系统实现的目标和开发意义 22 电子商务管理系统分析 42.1 系统的设计目标和可行性分析 42.2 系统设计的特点及思路 53 电子商务管理系统开发技术及主要构架 73.1 开发技术的选择 73.2 系统的主要架构及开发模式 83.2.1 基于B/S的体系结构 83.2.2 基于JSP+JavaBean+Mysql的开发模型 94 系统的功能和流程分析 104.1 系统功能模块分析 104.2 系统功能模块的设计分析 104.3 系统流程分析 114.3.1 前台购物流程 114.3.2 用户注册流程 114.3.3 商品搜索流程 124.3.4 用户登录流程 134.3.5 商品管理流程 134.3.6 购物车流程 145 系统功能的具体实现 155.1 系统数据库表的设计 155.2 功能总体说明 175.2.1 目录结构说明 175.2.2 主要功能流程 185.2.3 数据库连接交互 185.2.4 首页最新商品展示模块 195.2.5 商品搜索模块 215.2.6 购物车模块 235.2.7 后台用户管理模块 245.2.8 后台类别管理模块 265.2.9 后台商品管理模块 275.2.10 后台订单管理模块 305.2.11 后台统计分析模块 326 系统环境搭建及测试 35结束语 38致谢 39参考文献 40电子商务管理系统概述系统的开发背景电子商务是指以Internet为主要信息传输手段而进行的商务活动。这里的商务活动包括以营利为目的而进行的产品买卖活动和服务提供活动,以及企业为了实现产品的买卖和服务的提供而进行的内部管理和外部协调活动。完整的电子商务涉及到很多方面,除了买家、卖家外,还要有银行或金融机构、政府机构、认证机构、配送中心等机构的加入才行。电子商务是高科技发展的产物,所以电子商务还与技术有密切关联。另外,法律保障也是电子商务得以发展的一个重要环节。计算机因特网上网用户上升,信息产业迅速发展,电子技术发展,全球上网用户购买水平提高,各国政府对电子商务的重视,电子支付手段的发展,法律体系的不断完善,这些都将大力推进电子商务的发展。近年来,随着Internet技术的迅速发展,互联网已日益成为收集提供信息的最佳渠道并逐步扩张到传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。电子商务购物系统作为B2B(BusinesstoBusiness,即企业对企业),B2C(BusinesstoCustomer,即企业对消费者),C2C(CustomertoCustomer,即消费者对消费者)这三种电子商务模式的前端商务平台,在电子商务这种商务模式全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的电子商务购物系统。网上购物主要依赖于一种具有交互功能的商业信息系统。它向用户提供商品动态信息资源。这些动态信息是指可能随时变化的信息,如商品报价。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,方便顾客使其足不出户就能购买到理想的商品。这种全新的交易方式正式电子商务技术发展的产物。在过去的数年间,阿里巴巴、淘宝、支付宝、百度、当当们作为时代的先行者为电子商务的发展奠定了基础,也培育了B2C市场。时代在发展,科技在进步,网络信息化也更加在完善,电子商务的发展更可以说在中国正在萌芽茁壮成长,阿里巴巴的爆发,淘宝的兴起等一些电子商务优秀网站,带给这个时代的不仅是电子商务的催化作用,而且带给的是为更多的人创造那更多的价值,社会才会反馈给他最大的价值。推动那社会更进一步的发展。我国电子商务虽然取得的长足的发展,但总体水平还比较低,发展中还存在着诸多问题,其中又以安全和信用问题最为引人关注。电子商务的运作,涉及多方面的安全问题,资金安全、信息安全、货物安全、商业秘密等等。安全问题如果不能妥善解决,电子商务的实现就是一句空话。许多用户不愿进行网上交易,是因为对网上交易的安全性和可靠性持怀疑态度。信用问题是供需双方网上交易的基础,相互信任是成交的根本保证。不能排除一些人看到网上广告立即通过网上付款购买。但对大多数顾客来说,购买前的认真判断是必须进行的程序。面对信用程度较低,三角债情况严重,假冒伪劣商品泛滥的现实商业环境,对电子商务望而却步是很自然的。系统实现的目标和开发意义开发出来一个电子商务购物系统不仅要有漂亮的网页,更需要有严谨的规划,注重每一个细小的环节。因为这个系统的用途是顾客能够在网络上完成一个安全的正确的交易,系统开发过程中都要避免在电子交易时有不必要错误发生。我将使用html、jsp等技术来编辑网页,使用javabean技术完成系统所有的逻辑运算,并运用JDBC技术把数据库和javabean相关联。电子商务购物系统的成果为具有前台模块和后台管理模块,基于web运行的小型电子商务购物平台。可以实现基本的网上购物,会员注册,会员自服务,管理员上传商品、修改商品、订单管理等功能。随着国内Internet使用人数的增加,利用Internet进行网上购物并以银行卡付款的消费方式已渐流行,市场份额也在迅速增长,电子商务网站也层出不穷。网上购物给用户提供方便的购买途径,只要简单的网络操作,足不出户,即可送货上门,并具有完善的售后服务。同时,在向当当网这样的地方购买商品,都能实现送货上门,货到付款,使网上购物的安全性得到了保障。这些都是顾客热衷网上购物和网络销售快速增长的原因。这正是电子商务时代带来的变化。电子商务是一项全新的、具有划时代意义的重大技术进步,它的未来发展还难以预料。此次毕业设计过程中能够了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。设计和完成一个电子商务网站的过程中,将会牵涉到许多技术上的问题,如:动态网页制作技术,java面向对象编程技术,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。电子商务管理系统分析系统的设计目标和可行性分析本系统的平台利用jsp+javabean+mysql数据库的架构实现的,此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:浏览商品、查询商品、订购商品、购物车、用户自服务等功能;后台管理是提供给管理员的,其中包括:商品类别管理、商品管理、用户管理、订单处理等。随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。我们相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的所有商品和服务。可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,根据最初的设计目标和对系统的分析得出以下四点的可行性分析:(1)经济可行性:该系统是本人的毕业设计,本人的设计能力有限,其功能还不能完善,所以没有任何经济效益。(2)技术可行性:jsp+javabean+mysql的技术已经较为成熟。(3)运行可行性:该系统需要搭建JVM即JAVA虚拟机和Tomcat服务器的运行环境,在此环境下运行系统,并且在正确连接数据库后可以正常运行。(4)法律可行性:该系统是本事没有经济效益,并且是自主开发设计,因此不会构成侵权,在法律上是可行的。通过以上的可行性分析,我将采用jsp+javabean+mysql相结合的技术,对网站系统进行建设。经过以上对此系统开发的初步分析,确定了该系统的可行性,并着手于开发本系统,为了能够对现分析设计的系统内容进行充分了解,使所要开发的系统更具有实用性和适应性,调查研究了淘宝、当当网等电子商务平台。并设计出该系统功能如下:(1)能够完成用户注册和用户基本信息的个人修改。(2)能够完成管理员对网站的商品资料(商品添加、商品修改)、类别管理(类别添加、类别修改)、会员管理(会员删除)、订单管理(订单状态更改)的功能。(3)能够通过商品的名称,商品的类别进行搜索。(4)用户可以将搜索到的满意商品假如购物车。(5)能够在购物车中对所选商品进行确定、数量修改。经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。系统设计的特点及思路本人设计的电子商务购物系统它的主要特点是利用web技术改变了以往的购物只能过现实的商场才能达到的结果,借助于计算机互联网这一个大的平台,充分扩大信息的传播空间,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化网络化的平台,使整个购物活动过程简单、方便。网上购物平台主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过商品资料(商品添加、商品修改)、类别管理(类别添加、类别修改)、会员管理(会员删除)、订单管理(订单状态更改)等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行用户注册,通过网站的商品搜索功能,找到自己满意的商品,装入购物车,提交定单进行购买。无论哪个网站都要有它自己的设计规则。该系统也一样,它的主要设计规则有:简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个网站来说是非常重要的。针对性:该系统设计是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。实用性:该系统能完成电子商品展示选购和管理员操作等功能,具有良好的实用性。电子商务管理系统开发技术及主要构架开发技术的选择合理的选择开发技术,对于网站开发的完成情况有着非常重要的影响。要开发一个网站,首先要选择一个动态网页开发技术。当前比较流行的动态网页开发技术有JSP、ASP、PHP。它们的特性比较如下:ASP全名ActiveServerPages,,意为“活动服务器网页”。ASP是微软所开发的一种后台脚本语言,它的语法和VisualBASIC类似,把后台脚本代码内嵌到HTML页面中。ASP是脚本解析语言,运行于IIS。优点:无需编译、易于生成、简单易用缺点:速度慢、稳定性差、无法实现跨操作系统的应用PHP是英文超级文本预处理语言(PHP:HypertextPreprocessor)的缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。Php是一种开源的网站程序语言运行于Apache。优点:速度快、跨平台、开发成本低、良好的安全性缺点:开发环境复杂、不适合应用于大型电子商务站点、开源性高JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它也是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段和JSP标记,从而形成JSP文件(*.jsp)。JSP是采用JAVA为程序语言,运行于Tomcat等服务器。优点:系统的多平台支持、安全性高缺点:开发成本高、JAVA程序调试困难系统的主要架构及开发模式基于B/S的体系结构浏览器浏览器Web服务器数据库图3.1B/S三层架构示意图基于JSP+JavaBean+Mysql的开发模型JSP+JavaBean+Mysql模型工作原理是:当浏览器发出请求时,JSP接收请求并访问JavaBean。若需要访问数据库或后台服务器,则通过JavaBean连接数据库或后台服务器,执行相应的处理。JavaBean将处理的结果数据交给JSP。JSP提取结果并重新组织后,动态生成HTML页面,返回给浏览器。用户从浏览器显示的页面中得到交互的结果。Web服务器Web服务器浏览器JSP浏览器JSP数据库数据库JavaBeanJavaBean图3.2B/S开发模型示意图JSP和JavaBean模型充分利用了JSP技术易于开发动态网页的特点,页面显示层的任务由JSP(但它也含事物逻辑层的内容)承担,JavaBean主要负责事务逻辑层和数据层的工作。JSP和JavaBean这一种模型依靠许多个JavaBean组件实现具体的应用功能,生成动态内容,其最大的特点就是简单。本设计就是要采用这种模型开发。系统的功能和流程分析系统功能模块分析经过前期的深入调查和研究,总结出该平台需要完成的一些具体功能,分析如下:用户管理用户基本信息录入的注册和用户基本信息的修改。管理员管理管理员对网站的商品管理(商品添加、商品修改)、商品类别管理(类别添加、类别修改)、会员管理(会员删除)、订单管理(订单状态修改)的功能。搜索功能能过电子商品的名称进行搜索。购买功能能够通过查看购物车对所选商品进行确定、挑选。系统功能模块的设计分析在系统功能的分析基础上,得到本系统的功能模块图如下:电子商务管理系统电子商务管理系统index.jsp。商品修改用户管理管理进入类别管理用户注册商品管理商品添加会员管理订单管理类别修改类别添加订单查看订单处理商品名称用户修改会员删除商品搜索订购网站布局图4.1平台购物模块图系统流程分析前台购物流程浏览商品选择商品订购商品去购物车提交订单浏览商品选择商品订购商品去购物车提交订单未注册用户已登录注册用户未登录注册用户注册登录用户注册流程注册入口注册入口用户名有效?密码有效?2次密码一致?致?电话号码?送货地址?注册成功图4.3注册功能流程图注册的具体实现为:点击主页面的用户注册选项后,会弹出一个注册信息页面,用户填写用户名,密码,电话,地址等各项信息,提交后,系统进行检测判断该用户名是否符合要求,如果符合则进行下一步判断,用户输入的密码是否有效且两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息填入数据库表ruser并提示用户注册成功,用户登陆后,就可以进行有效的购物了。商品搜索流程开始搜索开始搜索输入条件搜索结果查看商品直接购买车下订单继续搜?是否图4.4商品搜索流程图商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。用户登录流程登录入口登录入口取得user对象将User对象存入session中用户是否存在密码是否正确登录成功是是否否图4.5用户登录流程图商品管理查询商品满意?否返回添加商品是商品管理查询商品满意?否返回添加商品是否修改删除图4.6商品管理流程图在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。购物车流程购物车具体的实现可采用这种形式:定义一个购物车Cart的bean文件。检查用户购物车类对象是否存在。如不存在,则创建Cart对象,并将Cart对象存入session中;Cart中有成员变量CartItem,为每一个购物项。购物时,在有Cart对象存在的情况下,检查该对象中的CartItem对象。如所选商品ID与CartItem中的Productid一致,则只在CartItem中Count属性加1;如没有与Productid与所选商品ID一致CartItem,则将创建新的CartItem对象。购物车购物车查看商品满意吗下订单调整商品是否图4.7购物车流程图系统功能的具体实现系统数据库表的设计在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。首先根据需求画出了数据库概念结构设计阶段E-R图,概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。图5.1E-R图数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。从实际出发,经过仔细地设计,得到各表的设计如表5.1——5.5所示。表5.1商品信息表product字段名字段类型字段长度说明idint主键/自动递增namevarchar255商品名descrvarchar255描述normalpricedouble市场价memberpricedouble会员价pdatedatetime上柜时间categoryidint类别ID/引用Category表的ID[说明]商品信息表存储的是每一个商品的信息。其中每个商品必须属于某一个类别。只能在类别下面添加商品。表5.2会员信息表ruser字段名字段类型字段长度说明idint主键/自动递增usernamevarchar40用户名passwordvarchar16密码phonevarchar40电话addrvarchar255地址rdatedatetime注册时间[说明]会员信息表存储每一个注册会员的信息。每一个会员在网站上进行不同操作必须与会员信息联系。表5.3类别表category字段名字段类型字段长度说明idint主键/自动递增namevarchar255类别名descrvarchar255描述pidint父类别IDisleafint是否叶子节点gradeint级别[说明]类别表存储所有类别的信息。设置了isleaf字段,只能在叶子节点类别下添加商品。Grade字段描述了改类别为第几级的类别。表5.4订单表salesorder字段名字段类型字段长度说明idint主键/自动递增useridint用户idaddrvarchar255送货地址odatedatetime下单时间statusint订单状态/0未处理1/处理成功2/废单[说明]订单表存储每一种会员下的单,其中根据userid字段知道是哪一位会员的单。根据addr字段中的地址发货。表5.5订单项表salesitem字段名字段类型字段长度说明idint主键/自动递增productidint商品idunitpricedouble单价pcountint数量orderidint订单ID/引用Salesorder表的ID[说明]订单项表与订单表相关联,用来存储每一份订单中的不同的商品信息,一条salesitem表记录存储一个购买的商品信息。多个orderid相同的salesitem表中的记录属于同一份订单。功能总体说明目录结构说明(1)admin用于存储系统管理员的后台操作脚本,包括商品类别管理、商品信息管理、订单管理、系统用户管理等功能;(2)images下的product文件夹用来存储商品的图片资料,由管理员上传。(3)images下的reports用来存储商品销量统计图表。(4)SQL文件夹下的文件为数据库创建语句。(5)src文件夹用来存储封装起来的一些javabean。主要功能流程主页面主页面index.jsp。商品修改用户登陆注册管理进入添加到购物车类别管理资料修改商品管理商品添加会员管理订单管理类别修改类别添加订单查看订单处理是否会员退出返回搜索物品选购物品填写订货单购物成功会员删除退出图5.2主要功能流程图数据库连接交互将与数据库交互的代码封装到DB.java的javabean文件中,以后所有javabean文件中所有需要用到与数据库连接或进行数据库操作时直接使用DB.java中的合适的方法。减少了代码的重复度,提高了编程的效率。具体DB.java文件的封装主要代码如下。packagewsq.shopping.util;importjava.sql.*;publicclassDB{ publicstaticConnectiongetConn(){ Connectionconn=null; try{ Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost/Shopping","root","root"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e.printStackTrace(); } returnconn;}publicstaticPreparedStatementprepare(Connectionconn,Stringsql){ PreparedStatementpstmt=null; try{ if(conn!=null){ pstmt=conn.prepareStatement(sql); } }catch(SQLExceptione){ e.printStackTrace(); } returnpstmt;}publicstaticResultSetgetResultSet(Connectionconn,Stringsql){ ResultSetrs=null; try{ rs=conn.createStatement().executeQuery(sql); }catch(Exceptione){ e.printStackTrace(); } returnrs;}publicstaticvoidexecuteUpdate(Statementstmt,Stringsql){ try{ if(stmt!=null){ stmt.executeUpdate(sql); } }catch(SQLExceptione){ e.printStackTrace(); }}首页最新商品展示模块首先在首页得到最近的商品信息的一个集合,调用商品管理类中的方法。List<Product>latestProducts=ProductMgr.getLatestProducts(10);然后将拿到的商品信息通过table展示。<center>最新商品</center> <tablealign="center"> <tr><%for(inti=0;i<latestProducts.size();i++){ Productp=latestProducts.get(i);%> <td> <tableborder="1"align="center"> <tr> <td> <imgheight=90alt="<%=p.getName()%>"src="images/product/<%=p.getId()%>.jpg"width=90border=0> </td> </tr> <tr> <tdheight=18><divalign=center><ahref="productdetailshow.jsp?id=<%=p.getId()%>"><%=p.getName()%></a></div></td></tr> <tr> <td><divalign=center><%=p.getNormalPrice()%></div></td></tr> <tr> <td><divalign=center><%=p.getMemberPrice()%></div></td></tr> </table> </td><%if((i+1)%5==0)out.println("</tr><tr>");}%> </tr></table>图5.3首页最新商品展示商品搜索模块主页商品搜索模块采用javascript生成select元素列出所有的一级类别和二级类别。通过表单提交选中类别作为搜索条件,还可以加入商品关键词进行搜索。使用Ajax技术通过getchildcategory_2.jsp以及下面的javascript代码生成一级类别和二级类别select项。varreq;functionchangeCategory(){varid=document.form.category1.options[document.form.category1.selectedIndex];varurl="getchildcategory_2.jsp?id="+escape(id.value); if(window.XMLHttpRequest){ req=newXMLHttpRequest(); }elseif(window.ActiveXObject){ req=newActiveXObject("Microsoft.XMLHTTP"); } req.open("GET",url,true); req.onreadystatechange=callback; req.send(null); }functioncallback(){ if(req.readyState==4){ if(req.status==200){ eval(req.responseText); parseXML(req.responseXML); } }}最后调用ProductMgr类下的findProducts()方法可以得到搜索结果。request.setCharacterEncoding("GB18030");List<Product>products=newArrayList<Product>();intpageCount=0;StringkeyWord=null;doublelowNormalPrice=-1;doublehighNormalPrice=-1;doublelowMemberPrice=-1;doublehighMemberPrice=-1;TimestampstartDate=null;TimestampendDate=null;StringstrStartDate=null;StringstrEndDate=null;intpageNo=1;StringstrPageNo=request.getParameter("pageno");if(strPageNo!=null&&!strPageNo.trim().equals("")){ pageNo=Integer.parseInt(strPageNo);}intcategoryId=0;keyWord=request.getParameter("keyword");categoryId=Integer.parseInt(request.getParameter("category2"));int[]idArray;if(categoryId==0){ idArray=null;}else{ idArray=newint[1]; idArray[0]=categoryId;}pageCount=ProductMgr.findProducts(products,idArray,keyWord,lowNormalPrice,highNormalPrice,lowMemberPrice,highMemberPrice,startDate,endDate,pageNo,10); 图5.4用户搜索结果购物车模块 判断session中是否存在购物车Cart类的对象,如果有,直接对这个Cart类的对象进行操作。如果没有,重新创建出一个Cart类的对象cart并将cart对象存入session中。<%Cartcart=(Cart)session.getAttribute("cart");if(cart==null){ cart=newCart(); session.setAttribute("cart",cart);}%>在购物车中添加商品,就是添加一个一个的购物项,所以要创建出一个购物项类CartItem类的对象,然后将选中的商品信息加入这个对象的属性里面。具体的实现代码如下。request.setCharacterEncoding("GB18030");intid=Integer.parseInt(request.getParameter("id"));CartItemci=newCartItem();Productp=ProductMgr.loadById(id);ci.setProductId(id);ci.setPrice(p.getNormalPrice());ci.setCount(1);cart.add(ci);调用loadById方法,传入选中商品的id号,得到了商品类的对象p。然后将p的变量的属性设入CartItem类的对象ci中,最后调用购物车Cart类的add()方法,将购物项对象ci加入购物车类对象cart中。图5.5购物车显示后台用户管理模块管理员登陆后台后可以查看网站所有的用户信息,管理员不能随意修改用户的信息,当用户做出不合法的行为时,管理员有权利删除用户。首先调用User类的getUsers()方法拿到所有的用户对象:List<User>users=User.getUsers();然后将拿到的User类的对象的集合中的元素遍历展示出来。 <%for(Iterator<User>it=users.iterator();it.hasNext();){Useru=it.next();%><tr> <td><%=u.getId()%></td> <td><%=u.getUsername()%></td> <td><%=u.getPhone()%></td> <td><%=u.getAddr()%></td> <td><%=u.getRdate()%></td> <tdalign="right"> <ahref="UserDelete.jsp?id=<%=u.getId()%>">删除</a> </td></tr><%}%>调用User类的delete()方法将用户删除。User.delete(id);图5.6后台用户列表后台类别管理模块类别设计可以为多层,对于这个作为毕业设计的系统,比较合适的类别层数为两层。首先可以添加根类别,也就是第一层类别。然后在第一层类别下面添加子类别。StringstrPid=request.getParameter("pid");intpid=0;if(strPid!=null){ pid=Integer.parseInt(strPid);}Stringaction=request.getParameter("action");if(action!=null&&action.trim().equals("add")){ Stringname=request.getParameter("name"); Stringdescr=request.getParameter("descr"); if(pid==0){ Category.addTopCategory(name,descr); }else{ Category.addChildCategory(pid,name,descr); }out.println("成功");图5.7后台添加根类别如果通过根类别添加子类别提交过来的话,接收到父类别号pid。由于本页面表单内容是提交给页面本身。所以提交后要判断是否是添加处理要求。这两个数据提交的代码。<inputtype="hidden"name="action"value="add"><inputtype="hidden"name="pid"value="<%=pid%>">如果pid=0,就调用Category类中添加根类别的方法addTopCategory(),如果pid不为0,就调用Category类中添加子类别的方法addChildCategory()。图5.8后台添加子类别后台商品管理模块后台商品管理模块包括商品的添加,修改等功能。除此之外,管理员也可以对商品进行搜索,然后对搜索到的商品进行操作。首先要判断添加商品的类别是不是叶子节点,只能在叶子节点下面添加商品。然后将表单数据添加成为Product类的对象p的属性。最后调用ProductMgr类下的addProduct()方法将新添加的商品信息存入到数据库里面。Categoryc=Category.loadById(categoryId); if(!c.isLeaf()){ out.println("非叶子节点不能添加商品"); return; }Productp=newProduct();p.setId(-1);p.setName(name);p.setDescr(descr);p.setNormalPrice(normalPrice);p.setMemberPrice(memberPrice);p.setPdate(newTimestamp(System.currentTimeMillis()));p.setCategoryId(categoryId);ProductMgr.addProduct(p);图5.9后台添加商品商品信息的修改首先通过loadById()方法拿到一个Product类的对象p,然后修改p对象的属性为表单提交过来的信息。最后调用update()方法将更新后的信息存入数据库。Productp=ProductMgr.loadById(id); p.setName(name);p.setDescr(descr);p.setNormalPrice(normalPrice);p.setMemberPrice(memberPrice);p.setCategoryId(categoryId);ProductMgr.update(p); 图5.10后台修改商品信息商品的搜索为简单搜索和复杂搜索,简单的搜索选择要搜索商品的类别,然后输入关键字进行搜索。首先要将所有叶子节点的类别列出来,成为复选框项。代码如下。<%for(Iterator<Category>it=categories.iterator();it.hasNext();){ Categoryc=it.next(); if(c.isLeaf()){%><inputtype="checkbox"name="categoryid"value="<%=c.getId()%>"><%=c.getName()%><br> <% }else{ %> <%=c.getName()%><br> <% } } %>然后输入关键字,调用ProductMgr类下的findProducts()方法搜索两个条件同时成立的产品。复杂搜索最多可以添加五个过滤条件,包括类别、关键字、会员价格范围、普通价格范围、上架时间范围。复杂搜索调用的方法也是ProductMgr类下的findProducts()方法。ProductMgr.findProducts(products,idArray,keyWord,lowNormalPrice,highNormalPrice,lowMemberPrice,highMemberPrice,startDate,endDate,pageNo,3);图5.11后台管理员搜索后台订单管理模块会员下单后每一份订单都将存入数据库,管理员可以对订单进行查看及对其状态进行修改。所以后台需要有展示订单列表的页面。从orders对象中遍历出所有的SalesOrder订单类的对象。然后将其展示在table中。List<SalesOrder>orders=newArrayList<SalesOrder>();intpageCount=OrderMgr.getOrders(orders,pageNo,PAGE_SIZE);<%for(Iterator<SalesOrder>it=orders.iterator();it.hasNext();){SalesOrderso=it.next();%><tr><td><%=so.getId()%></td><td><%=so.getUser().getUsername()%></td><td><%=so.getAddr()%></td><td><%=so.getODate()%></td><td><%=so.getStatus()%></td></tr>图5.12后台订单列表下单后根据不同的情况每一份订单都会有不同的状态。订单表中有一个字段status就是用来表示订单状态的,只需对其进行修改就能改变订单的状态。下单人:<%=so.getUser().getUsername()%><formname="form"action="ordermodify.jsp"method="post"><inputtype="hidden"name="action"value="modify"><inputtype="hidden"name="id"value="<%=id%>"><selectname="status"><optionvalue="0">未处理</option><optionvalue="1">已处理</option><optionvalue="2">废单</option></select><inputtype="submit"value="提交"></form>然后调用SalesOrder类的对象so的方法setStatus()方法将其status属性更改,最后调用so的updateStatus()方法将改变存入数据库。SalesOrderso=OrderMgr.loadById(id);Stringaction=request.getParameter("action");if(action!=null&&action.equals("modify")){intstatus=Integer.parseInt(request.getParameter("status"));so.setStatus(status);so.updateStatus();图5.13后台订单状态处理后台统计分析模块后台统计分析模块使用了jfreechart组件,这个组件可以帮助构建出统计分析图形。创建一个servlet文件用于处理图片生成,并且将生成的图片存入计算机硬盘中。处理完成后指向显示页面。先从数据库里面拿出相关的统计信息,然后把从数据库取出的信息放入categoryDataset中。Stringsql="select,sum(pcount)fromproductpjoinsalesitemsion(p.id=ductid)groupbyp.id"; System.out.println(sql); ResultSetrs=DB.getResultSet(stmt,sql);while(rs.next()){ categoryDataset.addValue(rs.getInt(2),"",rs.getString(1)); pieDataset.setValue(rs.getString(1),rs.getInt(2));}分别调用两个不同生成图形的方法生成两种不同的统计图形。JFreeChartchartCategory=ChartFactory.createBarChart3D( "产品销量图",//图表标题 "产品",//目录轴的显示标签 "销量",//数值轴的显示标签 categoryDataset,//数据集 PlotOrientation.VERTICAL,//图表方向:水平、垂直 true, //是否显示图例(对于简单的柱状图必须是false) false, //是否生成工具 false //是否生成URL链接 );JFreeChartpieChart=ChartFactory.createPieChart( "产品销量图",//图表标题 pieDataset, true, //是否显示图例(对于简单的柱状图必须是false) false, //是否生成工具 false //是否生成URL链接 );最后在硬盘上生成图片,并定向到显示页面。FileOutputStreamcategory_jpg=null;FileOutputStreampie_jpg=null;category_jpg=newFileOutputStream("D:\\JavaProject\\Shopping\\WebRoot\\images\\reports\\productsales.jpg");ChartUtilities.writeChartAsJPEG(category_jpg,1,chartCategory,400,300,null);pie_jpg=newFileOutputStream("D:\\JavaProject\\Shopping\\WebRoot\\images\\reports\\productsales_pie.jpg");ChartUtilities.writeChartAsJPEG(pie_jpg,1,pieChart,400,300,null);this.getServletContext().getRequestDispatcher("/admin/showproductsaleschart.jsp").forward(request,response);图5.14后台销量展示系统环境搭建及测试安装配置JDK安装jdk1.6.0_16到C:\ProgramFiles\Java文件夹下,下面进行环境变量的配置。右键我的电脑—属性—高级—环境变量:(1)首先,为了指定命令搜索路径,在系统变量的PATH变量中增加C:\ProgramFiles\Java\jdk1.6.0_16\bin;。由于PATH变量中原本含有许多项,所以只需在最前面添加上述路径即可,注意末尾用分号隔开。(2)然后,为了指定类搜索路径,在系统变量中新建JAVA_HOME变量,变量名JAVA_HOME,变量值为C:\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学舞蹈教学课件
- 大学生介绍乐器
- 2025中石油管道局校园招聘笔试历年参考题库附带答案详解
- 金版教程2025年高考物理复习第4章 核心素养提升
- 装载机司机上岗证培训考试题及答案
- 广东省皮肤病专科护士培训入学考核试题及答案
- 2025年临床基因扩增检验技术人员上岗证考试题含答案
- 环评上岗证培训教材章节总结第9章生态环境影响评价
- 客户服务行业客服专员培训计划
- 珠宝首饰华丽展示方案
- 炸药库保安员安全培训课件
- 字节运营工作总结
- 医院运营管理培训
- 激光3D打印人形机器人关节结构拓扑优化研究
- 人教版(2024)二年级上册《身体上的尺子》单元测试卷(含解析)
- 叉车司机三级试题+答案
- 安全施工协议范本简易版4篇
- 楼顶搭铁棚的安全协议书
- T-CERS 0067-2024 T-EPTC 005-2024 构网型风力发电机组并网性能测试规程
- 2025年秋新北师大版数学3年级上册全册同步教案
- 2025至2030国内中老年用品行业市场发展分析及竞争策略与投资发展报告
评论
0/150
提交评论