计算机专业 毕业论文 基于JSP地网上药店系统(含源文件)_第1页
计算机专业 毕业论文 基于JSP地网上药店系统(含源文件)_第2页
计算机专业 毕业论文 基于JSP地网上药店系统(含源文件)_第3页
计算机专业 毕业论文 基于JSP地网上药店系统(含源文件)_第4页
计算机专业 毕业论文 基于JSP地网上药店系统(含源文件)_第5页
已阅读5页,还剩49页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论1.1概述网上药店是在电子商务高度发达的时代应运而生的,是医药电子商务发展的产物。随着电子信息技术的飞速发展,电子商务越来越趋于成熟并渗透到商业的各个领域。在药品零售业,医药产品的销售竞争日益激烈,整个格局出现了很大的变化。药店的功能和经营重点也发生了根本性转变,且越来越多的连锁药店、大型医药超市的出现,使得相对规模较小的药店很容易在这样的环境下丧失竞争力。充分利用现有的网络软硬件资源和javaweb开发技术,建立网上药店系统,为药品的销售提供一种交互、开放、易用的平台,从而降低药店的经营成本,提高销售效率,增加利润。1.2开发背景据中国网上药店理事会调查报告显示:2011年,医药B2C的规模达到4亿元,仅出现5家销售额达5000万元的网上药店。而2011年医药行业的市场规模达到3718亿,线上药品的销售额还不到网下药店的一个零头,该行业发展潜力巨大。医药行业是老百姓眼里的暴利行业,药品昂贵中国人看病难、看病贵的原因之一。而电子商务的发展给医药行业发展带来突破口,如果搞好了是可以降低老百姓的看病治病的成本的。而国家医药流通“十二五”规划也指出,要加快医药流通行业整合,实现医药流通精细化发展,并且鼓励规范经营的零售连锁企业发展网上药店,希望医药电子商务企业成为推动国家医改的有力工具。2005年国家食品药品监督管理局正式颁布了《互联网药品交易服务审批暂行规定》,网上药店业务也在2005年底开始实施。巨大的市场潜力诱使着各个实体药店开始抢占互联网药品销售的份额。1.3开发目的及意义在以上背景下建立的网上药店系统,集成了药品的浏览,搜索,购买,下单,用户管理等功能模块的系统,信息化的销售流程可以大大提高药店的销售效率和管理效率。为药品的销售提供一种交互、开放、易用的平台,从而降低药店的经营成本,提高销售效率,增加利润。(1)提供了全面,详细的药品购物入口,轻松实现快捷购买。(2)可以通过不同药品分类进行导航,用最方便,最快捷的方式找到你需要的药品。网上卖药有点主要是:覆盖范围广、成本低、对客户隐私保护较好。覆盖面广:相对于传统药店和医药卖药,网上卖药利用互联网平台,开展电子商务,突破了空间地域的限制,可以将业务拓展到实体店无法覆盖的范围去。据调查网上药店的客户有60%左右是出于实体店无法覆盖的区域。成本低:网上卖药与建立实体店相比成本大大降低,省去了店面费用,销售人员费用和中间的渠道费用,使药品成本急剧降低,尤其是现在药品价格居高的情况下。网上卖的药品一般都比药店销售价低10%以上。利于客户隐私保护:客户在网上下单,商家利用物流体系进行货物配送,更好的保护了客户的隐私,有部分商家还提供了平常化包装,药品外包装和普通包裹一样。网上卖药相对与实体药店其的弊端也是明显的,主要体现在诚信体系和物流体系上。诚信体系:现在网上卖药的网站很多,大多是没正规牌照的“黑点”,出售的药品质量也参差不齐,据统计有90%的药品属于不合格药品。在互联网假药泛滥的情况下如何开展网上卖药业务的关键就是诚信体系的建立,如何让消费者信任、满意很关键。物流配送体系:网上卖药的另一个瓶颈就是物流。中国现在的物流体系不完善,物流成本也高。如果商家自建物流那个成本是一般无法承受的,如何更好的利用目前的物流体系,提高物流质量,让消费者更快、更好、更便捷的拿到自己货物成了商家工作的重点之一。随着互联网的发展,各种配套的完善,网上卖药类的电子商务还是有很大市场前景的。2关键技术介绍2.1B/S架构B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。浏览器通过WebServer同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。2.2mvc设计思想MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP+servlet+JavaBean的模式。图解如下图2-1所示:图2-1mvc设计思想2.3Struts2,Hibernate,JQuery框架2.3.1Struts2Struts是Apache软件基金下Jakarta项目的一部分。Struts框架的主要架构设计和开发者是CraigR.McClanahan。Struts是JavaWebMVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对SpringMVC、Webwork2这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的选择。Struts有一组相互协作的类(组件)、Servlet以及jsptaglib组成。基于struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的描述,很容易理解为什么说Struts是一个webframework,而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和ObjectRelationBridge。在视图层,Struts能够与JSP,VelocityTemplates,XSL等等这些表示层组件相结合。2.3.2HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.3.3JQueryJQuery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。jQuery是一个兼容多浏览器的javascript库,核心理念是writeless,domore(写的更少,做的更多)。jQuery在2006年1月由美国人JohnResig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,现在由DaveMethvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。3系统分析3.1系统需求分析据中国网上药店理事会调查报告显示:2011年,医药B2C的规模达到4亿元,仅出现5家销售额达5000万元的网上药店。而2011年医药行业的市场规模达到3718亿,线上药品的销售额还不到网下药店的一个零头,发展潜力巨大。2005年国家食品药品监督管理局正式颁布了《互联网药品交易服务审批暂行规定》,网上药店业务也在2005年底开始实施。充分利用现有的网络软硬件资源和javaweb开发技术,建立网上药店系统,为药品的销售提供一种交互、开放、易用的平台,从而降低药店的经营成本,提高销售效率,增加利润。巨大的市场潜力诱使着各个实体药店开始抢占互联网药品销售的份额。3.2系统的可行性分析3.2.1技术可行性数据库方面,由于本系统的功能不是很强大,所以数据库采用小型的关系型数据库管理系统MySQL。MySQL数据库开源、免费,并且功能强大、响应速度快,非常适用于开发小型的web的项目。运行环境(服务器)采用tomcat6.0版本服务器,tomcat服务器是Apache开源组织推出的一款开源免费的web服务器,能够同时部署多个web项目,通过8080端口进行访问,功能强大,是web开发很常用的服务器。根据本系统的功能需求分析,利用JSP的页面技术和开源的MySQL数据库引擎进行开发,并且结合Struts2,Hibernate框架来开发项目。整个项目应用了MVC的编程思想,分为了模型层(M),视图层(V),控制层(C)。模型层使用JavaBean、Hibernate、jdbc等技术,实现数据模型和数据库的访问;视图层使用JSP,JavaScript,CSS,Struts标签等技术来处理页面的动态生成逻辑;控制层采用Servlet技术,结合Struts2来整合Action的配置,实现控制层配置的统一。3.2.2经济可行性本环节负责分析本系统的成本效益,其中包括开发成本,以及以后的运行、维护成本,和系统的收益。开发成本:项目所采用的技术都是开源免费的,所以开发成本可忽略不计。实际开发中开发成本还是在所有成本中占比例最高的,包括软硬件的使用费用,需求、开发、调试人员的薪酬等等。运行和维护成本:运行、维护所需要的费用也是不低的,升级相当于二次开发,与开发成本类似。系统的收益:据中国网上药店理事会调查报告显示:2011年,医药B2C的规模达到4亿元,仅出现5家销售额达5000万元的网上药店。而2011年医药行业的市场规模达到3718亿,线上药品的销售额还不到网下药店的一个零头,发展潜力巨大。所以本系统的营收潜力还是很大的。3.2.3社会可行性《药品电子商务试点监督管理办法》第15条明确规定:在药品电子商务试点网站从事药品交易的零售企业只能在网上销售国家药品监督管理局(现为国家食品药品监督管理局)公布的非处方药。这一规定是为了保障网上药品零售的安全性,但也在很大程度上限制了网上药店的经营范围,影响了网上药店的盈利能力。总的说来,我国药品监督管理部门对网上药店这种经营形式还没有制订出具体的、详细的监管办法,监管力度不大,法律环境较为宽松。网上药店的优势分析开办网上药店,无论是对药品经营企业还是对普通消费者,都是大有益处的。对于药品经营企业而言节约运营成本:网上药店为企业带来的成本节约有:(1)门店租金成本。尽管开办网上药店也需要租用网络空间,但相对于现实中租用门店而言要便宜许多;(2)库存成本。大量的库存会占用企业资金,使资金周转速度减慢,时间成本增加。网上药店根据客户订单采购和发送药品,实现了零库存,加快了资金周转,同时省去了药品仓储、保养等诸多费用。扩大市场范围:网络打破了地理的界限,使药品零售的服务范围在时间和空间上都得到了极大的拓展。网上药店可以实现真正的24小时营业,市场可辐射至全国乃至全世界。“蛋糕”做大了,即使市场份额小一点,企业也仍然能够获得可观的收益。与顾客保持紧密联系:我国目前还没有一家连锁药店能够将分店开到全国每一个地方。网上药店没有营业时间和地理范围的限制,使顾客无论在何时何地都能够得到所需要的服务,药店与顾客之间的联系更为紧密了,顾客满意度也相应提高了。而这也有利于强化顾客对企业品牌的认知,培育顾客忠诚度。美国的一项研究表明,顾客忠诚度每提高5%,企业的利润就能增加25%~80%。对于消费者而言降低药品价格:美国网上药品的价格通常比市场价低30%左右,这也是消费者愿意选择网上购药的主要原因。药品价格的降低除了得益于网上药店的低成本运营外,还有以下几方面原因:首先是药品流通环节减少。我国药品价格虚高的一个主要原因就是药品利润在流通环节的层层分摊导致流通成本过高。网上药店直接将药品发送到全国各地的消费者手中,不需要经过药品经销商,流通环节减少了,消费者自然可以得到实惠;其次是网上药店无需拥有符合GSP要求的仓储设施,降低了行业进入壁垒,使得从事网上药品零售的企业增多,竞争强度加大。而竞争的结果就是促使药品的价格回归其本质——价值;最后,网络所带来的大量信息服务改变了消费者所处的信息弱势地位,消费者议价能力得到提高,可以通过比较药品的质量、价格等信息来做出合理的选择,从而也使经营者利用信息不对称抬高药品价格的行为受到一定程度的遏止。网上购药方便、快捷、保护隐私:只需要一台PC机、一条网线,消费者足不出户就可以了解各种各样的药品信息,节省了时间和精力,极为方便、快捷。此外,对于注重隐私的消费者而言,网上购药更是一个很好的选择。网上购药采用的是一种基于客户服务软件系统的人机互动的模式,没有第三方的参与,顾客的个人身份以及交易的内容都得到了很好的保密。网上药店的劣势分析尽管网上零售市场潜力巨大,但其在整个零售业中所占的比重仍然很小。美国2002年秋季电子商务的收入只相当于零售业收入的13%。而我国最近1年在网上购买过产品或服务的人中只有37%购买的是医疗保健用品。笔者认为,当前我国网上药店的发展主要受以下因素的制约。网络技术性问题目前,我国宽带网的普及率还很低,6800万网络用户中只有980万使用宽带上网,仅占14.4%。这就使得一些网上展示产品的手段无法得到有效应用,如背景音乐、Flash动画、视频等,宣传效果大打折扣。对网上药店而言,虽然可以提供在线药师咨询服务,但相比电话和面谈,在及时性、准确性上都受到一定程度的影响,服务的效果难以保证。此外,网络速度慢以及程序错误、中断等都会给消费者网上购物带来不愉快的体验,从而影响消费者对网上购物这种新兴购物方式的信心。网上交易的安全性问题中国互联网信息中心(CNNIC)的调查显示,网上交易存在的主要问题中位居第一的是产品质量、售后服务及厂商信用得不到保障(占40%);其次是网上支付的安全性得不到保障(占25.1%)。前一个问题主要与目前我国法律对电子商务的监管还存在许多空白以及网络用户身份不明有关。只有随着国家法制的逐步完善和网络信用系统的全面建成,这一问题才可能得到解决。药品作为一种特殊商品,质量保证尤为重要。我国药品监督管理部门可以效仿美国的做法对网上药店进行认证,让消费者放心。时下网上购物最为便捷的费用支付方式是通过网上银行付款,但网络的开放性使网上银行随时可能成为黑客攻击的对象,网上支付的安全性也因此而受到考验。费用问题美国有学者认为,网上商店对扩展市场份额的作用是肯定的,但在降低成本方面并不明显。这是因为网上商店虽然可以节省门店租金和库存投资,但在其它方面的花费并不少,特别是对于那些需要开辟独立的网络空间而不是借助网上交易平台运营的商店。这些费用包括购买服务器、域名、各类软件,网络维护和更新,以及聘请专业的网络技术人才等。另外,网站的宣传也需要较多的投资。不能到达目标顾客的问题目前,我国的网络用户中低年龄人群占的比重很大,而作为药品消费群全体的老年人则几乎不上网。他们通常无法获知网上药店的促销信息,不会通过网上药店购买药品,这对于网上药店而言无疑是一个巨大的损失。虽然2003年的“非典”危机使很多不同层次不同年龄的人了解了网络的优点,并开始尝试网上购物,但其影响仍然是有限的、短暂的。网上购物成为主流的购物方式还需依赖网络技术的不断进步和人们购物观念的逐步更新。运输中的质量问题目前,网上普遍采用的邮递送货方式并不适用于药品。根据GSP的要求,药品在运输途中必须采取一定的保护措施,如保持一定的温度和湿度等,而邮递显然无法满足这些要求。这也在很大程度上限制了网上药店业务的开展。只有当一些优秀的物流和快递公司涌现时,网上药品零售业务才可能得到蓬勃发展。监管问题对于政府监管部门而言,网上业务涉及范围广、隐蔽性强,一旦发生违法行为,控制难,取证难,因此监管难度极大。美国联邦药品管理协会(NABP)虽然对网上药店进行了VIPPS认证,但该项认证并不是强制性的,有很多网上药店并没有通过该项认证。网上售药违法行为多种多样,如销售假、劣药品,销售处方药,无执业药师提供咨询服务等。出现这些情况时,消费者用药的安全性将无法保证。因此,药品监督管理部门除了应对网上药店进行认证,加强监管外,还应向消费者进行广泛的宣传,使他们能够区分合法与非法的网上药店以及合法与非法的网上售药行为。开发工具和运行环境开发语言:java开发架构:B/S设计模式:结合MVC的分层架构的设计思想集成开发环境:MyEclipse10.0数据库:mysql5.5服务器:tomcat6.04系统概要设计4.1系统的功能模块设计能模块划分描述系统结构,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程。在系统分析的基础上,确定了系统的功能结构图,如图4-1-1所示。基于基于JSP的网上药店系统用户登录用户注册浏览药品信息药品购买分类浏览搜索浏览购物车管理订单模块个人信息管理评论模块降价排行编辑推荐降价排行登陆验证增删改回收邮箱验证图4-1-1系统功能结构图4.2数据库设计本系统共设计了10张表,以下是各数据表的详细设计:表4-1-1用户表(user)字段名类型可否为空默认值含义idint(10)noauto_increment用户id,主键user_namechar(50)no用户名user_pwdchar(24)no密码user_birthdaybigint(19)yes生日user_genderchar(1)yesm(男)性别user_phonevarchar(50)yes电话user_emailchar(50)no用户电子邮箱user_addresstext(65535)yes用户常用地址register_datebigint(19)yes注册日期email_verify_codevarchar(50)yes邮箱验证码last_login_ipvarchar(15)yes最后登录IP地址user_gradeint(10)no1(普通用户)用户级别表4-1-2分类表(category)字段名类型可否空默认值含义idint(10)noauto_increment分类id,主键cate_namechar(50)no分类名称descriptionchar(200)yes分类的功能描述parent_idint(20)yes父分类的id表4-1-3产品表(product)字段名类型可否空默认值含义idint(20)noauto_increment产品id,主键pro_namechar(50)no产品名称init_pricedoubleyes原价Pricedoubleyes售价add_datebigintyes上架时间pro_picturechar(50)yes商品图片的路径remainint(20)no余量sumint(20)yes0累计销量is_downchar(10)noN(未下架)是否已下架表4-1-4药品表(drug)字段名类型可否空默认值含义idint(20)no药品id,主键drug_namechar(50)no药品名package_stylechar(20)yes包装方式weightint(10)yes单位净重numchar(20)yes数量init_datebigintyes出厂日期save_monthint(10)yes有效期directionchar(200)yes说明书productorchar(20)yes生产厂家表4-1-5产品-分类表(category_product)字段名类型可否空默认值含义idint(12)noauto_increment主键product_idint(10)no产品idcate_idint(10)no分类id表4-1-6订单表(form)字段名类型可否空默认值含义idintnoauto_incrementid,主键user_idint(20)no用户idreceive_namechar(20)no接收人姓名full_addresschar(100)no接收详细地址postal_codevarchar(20)yes邮编phonechar(20)yes接收人电话mobilechar(20)yes手机号码order_datebigintyes订单日期statusint(1)no0(已提交未处理)订单状态totaldoubleno0.0总金额表4-1-7评论表(review)字段名类型可否空默认值含义idint(10)noauto_incrementid,主键user_idint(20)no用户idpro_idint(20)no产品idreview_datebigintyes评论日期review_gradeInt(2)no5(1-5)评价级别review_texttextyes评论内容表4-1-8回复表(reply)字段名类型可否空默认值含义idint(10)noauto_incrementid,主键user_idint(20)no用户idreview_idint(20)no对应的评论idreply_datebigintyes回复日期reply_texttextyes回复内容表4-1-9商品条目表(item)字段名类型可否空默认值含义idint(12)noauto_incrementid,主键order_idint(10)no对应的订单的idproduct_idint(10)no对应的产品的idproduct_namevarchar(100)yes产品名称pricedoubleyes单价product_numint(10)yes1购买的数量amountdoubleyes0.0本条目的总价表4-1-10收货地址表(receive_address)字段名类型可否空默认值含义idint(12)noauto_incrementid,主键user_idint(11)no对应的用户的idreceive_namevarchar(50)yes收货人姓名full_addressvarchar(200)yes收货人详细地址postal_codevarchar(20)yes邮编mobilevarchar(15)yes手机号码phonevarchar(20)yes固定电话结构图如下所示:图4-2-1用户表图4-2-2产品表图4-2-3药品表图4-2-4分类表图4-2-5产品-分类表图4-2-6订单表图4-2-7接收地址表图4-2-8评论表图4-2-9回复表图4-2-10商品条目表建表的SQL语句如下:dropdatabaseifexistsdrug;createdatabasedrugdefaultcharactersetutf8;usedrug;用户表:createtableuser(idint(20)auto_increment,user_namechar(50)uniquenotnull,user_pwdchar(24)notnull,user_birthdaybigint,user_genderchar(1),user_phonevarchar(50),user_emailchar(50)unique,user_addresstext(100),register_datebigint,email_verify_codevarchar(50)defaultNULL,is_email_verifychar(3),last_login_timebigintdefaultNULL,last_login_ipvarchar(15)defaultNULL,user_gradeint(1)notnulldefault0,primarykey(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;分类表:createtablecategory(idint(20)primarykeyauto_increment,cate_namechar(50),descriptionchar(200),parent_idint(20))ENGINE=InnoDBDEFAULTCHARSET=utf8;产品表:createtableproduct(idint(20)auto_increment,pro_namechar(50),init_pricedouble,pricedouble,add_datebigint,pro_picturechar(50),remainint(20),sumint(20)default0,is_downchar(10)default'N',primarykey(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;产品表:createtabledrug(idint(20),drug_namechar(50),package_stylechar(20),weightint(10),numchar(20),init_datebigint,save_monthint(10),directionchar(200),productorchar(50),primarykey(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;产品分类表:CREATETABLEcategory_product(idint(12)NOTNULLauto_increment,product_idint(10)NOTNULL,cate_idint(10)NOTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;订单表:createtableform(idintprimarykeyauto_increment,user_idint(20),receive_namechar(20),full_addresschar(100),postal_codevarchar(20),phonechar(20),mobilechar(20),order_datebigint,statusint(1)default0,totaldouble)ENGINE=InnoDBDEFAULTCHARSET=utf8;评论表:createtablereview(idint(20)primarykeyauto_increment,user_idint(20),pro_idint(20),review_datebigint,review_gradeint(2),review_texttext)ENGINE=InnoDBDEFAULTCHARSET=utf8;回复表:createtablereply(idint(20)primarykeyauto_increment,review_idint(20),user_idint(20),reply_texttext,reply_datebigint)ENGINE=InnoDBDEFAULTCHARSET=utf8;商品条目表:CREATETABLEitem(idint(12)auto_increment,order_idint(10)NOTNULL,product_idint(10)NOTNULL,product_namevarchar(100)NOTNULL,pricedoubleNOTNULL,product_numint(10)NOTNULL,amountdoubleNOTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;接受地址表:CREATETABLEreceive_address(idint(12)auto_increment,user_idint(11)NOTNULL,receive_namevarchar(50)NOTNULL,full_addressvarchar(200)NOTNULL,postal_codevarchar(20)NOTNULL,mobilevarchar(15)defaultNULL,phonevarchar(20)defaultNULL,PRIMARYKEY(id))ENGINE=InnoDB;5系统详细设计5.1功能实现表5-1主页模块功能说明文件名功能main/main.jsp网站“主页”,欢迎页main/category.jsp主页左侧“分类”页面main/recommend.jsp主页中栏上侧“编辑推荐页面”main/hot.jsp主页中栏中间“热销商品”页面main/new.jsp主页中栏下侧“最新上架”页面main/monthHot.jsp主页右栏“月销量排行榜”页面common/top.jsp网站顶部jsp片段common/footer.jsp网站页面的底部jsp片段表5-2用户模块功能说明文件名功能user/login.jsp用户登录页面user/register.jsp用户注册页面user/userAccept.jsp用户协议页面user/rverify_form.jsp用户注册,邮箱验证页面user/register_ok.jsp用户注册成功页面表5-3用户个人信息模块功能说明文件名功能self/myIndex.jsp用户个人主页页面self/default.jsp用户个人信息操作结果页面self/showUser.jsp用户个人信息显示页面self/changePwd.jsp用户修改密码页面self/update.jsp用户更改个人信息界面self/un_commit_order.jsp用户查看个人未完成订单页面self/complete_order用户完成未完成订单页面self/commit_order.jsp用户提交订单页面表5-4商品浏览模块功能说明文件名功能main/book_list.jsp分类浏览产品信息页面main/product.jsp产品详细信息页面表5-5购物车模块功能说明文件名功能cart/cart_list.jsp购物车列表页面cart/cart_num.jspmain/top.jsp中的购物车模块cart/cartInfo.jsp购物车信息页面,用于鼠标指向购物车,下拉出购物车信息页面表5-6订单模块功能说明文件名功能order/order_info.jsp订单信息页面order/address_from.jsp下单的收货人信息页面order/address_ok.jsp下单成功页面表5-7管理员模块功能说明文件名功能admin/login.jsp管理员登录页面admin/manage.jsp管理员主页admin/head.jsp管理员界面头部jsp片段admin/footer.jsp管理员界面脚部jsp片段admin/category/*管理员对分类的管理admin/user/*管理员对用户的管理admin/product/*管理员对产品的管理admin/order/*管理员对订单的管理5.2功能详细设计与实现5.2.1用户登录模块用户名:该模块的功能是用户根据自己的用户名(或邮箱)和密码来登录本系统,其中用户名和邮箱在注册时就已经限定为唯一的,因此不会重复。密码:通过MD5摘要加密对密码进行加密,保证了密码的安全。该加密方法的原理是对给定的一个字符串通过一系列的复杂的数学算法,可以得到一个不重复不可逆的24位字符串。这样做是很安全的,因为数据库中存储的是加密以后的字符串,即使密码泄露,盗取密码者也不能够通过加密后的字符串逆向推导出密码。而用户每次登录时,后台的处理时先将用户输入的密码按照同样的MD5加密算法加密之后与数据库中的数据进行比较,如果相等,则登录成功;否则,请用户重新登录。图5-2-1用户登录页面验证码:四位随机验证码,由数字,大小写字母随机生成;如果看不清,点击可刷新。本模块实现js验证,如果用户名,密码,验证码中有一个是空,则不允许登录。如果尚未注册,点击注册链接可立即免费注册。5.2.2用户注册用户名,电子邮箱必须唯一,用户鼠标离开这倆个文本框时,onblur事件触发,利用JQuery调用ajax向后台异步的发送请求,判断在数据库中是否存在该用户名和邮箱,如果存在,不允许表单提交,提示用户进行更改。密码和确认密码,必须一致,保证用户输入的和记住的密码相同。出生日期,使用JQuery框架弹出日历界面,等待用户选择。常用地址,实现级联下拉。选择不同的省市,第二个下拉菜单出现对应的市/区。整个表单实现表单验证,有不符合条件的情况时,不允许用户提交注册信息。图5-2-2用户注册5.2.3邮箱验证系统会自动向邮箱发送电子邮件,其中包含本次注册的邮箱验证码,只有正确登录注册邮箱,查看其中的邮箱验证码,方能通过这步邮箱验证。图5-2-3邮箱验证正确通过邮箱验证后,会进入注册成功页面。而后就可以的进行浏览,搜索,购买,下单,个人信息管理等等操作。图5-2-4注册成功特殊的,如果用户未验证就进行登录,就将用户跳转到邮箱验证页面,并且提示用户进行邮箱验证。图5-2-5邮箱验证5.2.4商品浏览主页:也就是程序的欢迎页,不登录也可以访问。顶端为logo,搜索框,登录/注册链接,导航栏。最左边为“分类窗口”,中间依次是“编辑推荐”,“热销产品”,最新上架,右边栏是月热销排行榜。点击logo可进入主页;点击导航栏,可进入相关页面;点击分类,可进入分类浏览页面;点击任一产品,可进入产品详细信息页面;点击搜索,可按名称进行药品搜索。图5-2-6主页分类浏览:点击任一分类,进入分类浏览窗口。该页面实现分页,排序,购买等功能。其中的购买功能需要首先登录系统,否则,则将用户导向登陆页面,登录完成后进入购物车页面。图5-2-7分类浏览商品详细信息:点击任一商品链接,可进入商品详细信息页面,可进行购买操作。图5-2-8商品详细信息降价促销点击导航栏“降价促销”,查看降价促销产品。商品搜索利用导航栏进行搜索功能。5.2.5购物车购物车为空时:图5-2-9购物车为空购物车不为空时:图5-2-10购物车不为空购物车中的条目可查看信息,可变更数量,可删除到回收区,可彻底删除,也可恢复到购物车。图5-2-11删除、彻底删除与恢复5.2.6订单结算订单信息页面:可汇总查看要结算的订单信息。图5-2-12订单信息页面填写送货地址页面:填写详细的送货地址,如果以前填写过,则可在下拉列表中直接填充。图5-2-13填写送货地址页面下单成功页面:下单成功后可看到刚刚的订单信息。图5-2-14下单成功页面5.2.7个人信息管理模块查看个人信息图5-2-15查看个人信息修改个人信息:图5-2-16修改个人信息修改密码:如果两次输入新密码不一致,不允许表单提交;如果原密码输入不正确,则不对数据库进行更新操作;新密码也会被进行MD5摘要加密后保存进数据库。图5-2-17修改密码未完成订单:点击“去完成订单”,可以跳转到订单完成页面。图5-2-18未完成订单已提交订单:可以查看用户已经提交的管理员未处理的订单信息图5-2-19已提交订单购买记录:对自己的购买记录进行管理。收货地址管理:对自己用过的购买地址进行管理。5.2.8登录拦截个人中心,购物车,购买等操作需要用户登录,如果用户未登录,不允许进行这些操作,将用户跳转到登录页面,提示用户登录后再进行这项操作。如图5-2-20,不登录而点击个人中心链接:图5-2-20登录拦截5.2.9JS特效主页右栏月销量排行,鼠标指向某个商品,该商品突出。图5-2-21JS特效1个人中心中,左边栏点击一级菜单,可伸展和收缩二级菜单,如图正在收缩“菜单管理”。图5-2-22JS特效25.2.10购物车的Cookie实现使用cookie技术保存用户的购买信息,如果用户将商品添加到购物车中后离开了,那么我们使用cookie技术可以将用户的购买信息保存到客户端的浏览器中,时间为一个月。一个月内,“该用户”再次登录后可以看到自己上次未完成的购买;一个月后,该cookie会被浏览器自动删除。由于用户可能随时停止操作,所以每次用户对购物车的内容做更改时,我们都需要更新对应的cookie信息,保证一致性。如图5-2-23,未购买商品时浏览器中的cookie信息。图5-2-23未购买商品时cookie如图5-2-24,购买商品后的cookie信息。图5-2-24购买商品后的cookie其中的内容中的“2:1:false,3:1:false”是购物车信息的特定字符串,“,”用于分割购物车中的不同条目信息;每个条目信息中,第一个数字,如2,表示本条目中的产品的id;第二个数字表示本条目中购买的商品数量;第三个参数false/true,false表示未删除,true表示已经删除到回收区。可以看到过期时间为一个月以后(本系统的时间不正确)。如图5-2-25,表示修改商品2的购买数量为5个,对应的cookie信息。图5-2-25商品2购买5个如图5-2-26,表示删除商品3到回收区,对应的cookie信息。图5-2-26删除商品3到回收区如图5-2-26,从回收区彻底删除商品3,对应的cookie信息。图5-2-26彻底删除商品3订单正确提交后,删除cookie。如图5-2-27图5-2-27订单提交后,删除cookie再次购买3种商品,不提交订单,退出系统。此时,cookie仍然存在,如图5-2-28图5-2-28不提交订单,退出系统该用户再次登录系统后,会从购物车中还原购物车信息。图5-2-28再次登录,还原购物车信息不同用户的不同购物车,cookie不冲突图5-2-29两个用户之间的cookie不冲突6系统测试6.1登录测试利用JavaScript框架JQuery,用户名为空,密码为空,验证码为空时均不能进行登录。图6-1-1用户名为空不能提交图6-1-2密码为空不能提交图6-1-3验证码为空不能提交6.2注册测试图6-2-1用户名占用不能提交图6-2-2不接受用户使用协议不能提交图6-2-3邮箱验证码不足36位不能提交6.3购买图6-2-4商品不能重复购买6.3购物车购买商品的数量不能修改为0和负。如图6-3-1,图6-3-1数量不能为负,06.4订单订单信息不完整,不符合要求,不能提交。图6-4-1订单信息不完整不能提交6.5个人信息图6-5-1个人信息不完整不能提交图6-6-1两次密码输入不一致不能提交结论独立的完成一个项目,可以使一个人成长很多,学习很多。从需求分析,系统分析,数据库设计,页面设计,功能设计,系统整合,系统测试等等,每一步都需要很大的精力和耐心,这对即将要踏入工作岗位的我们来说也是一次很好的锻炼。整个项目历时将近半年,其作用也是很明显的。一方面,我复习了很多的专业知识,同时为了系统的功能的强大和安全等也临时学习了很多的新知识,这培养了我的分析和解决问题的能力,以及自我学习的能力;另一方面,使我了解了web项目的开发流程和主要技术,对自己是一个很好的锻炼,只有对项目有了一个很好的把握,才能快速,正确的写出代码;最后,整个项目的开发使我意识到了团队协作的重要性,要想开发一个大的项目,仅靠一个人的力量是很难得,我们需要有很强的团队协作能力,来一起高效的工作。技术方面,在整个系统的开发过程中,充分的借鉴了开源社区的优秀代码和设计思想,使用面向对象的编程方式与JSP页面技术相结合,完成的实现了系统的需求。使用MVC的设计思想将系统分层设计,不仅结构清晰,而且开发效率高。然而,系统也是存在一些问题的。由于个人的能力有限,系统的需求也有些庞杂,导致工作量过大,在有限的时间内有些功能尚未实现,整个系统也存在一些漏洞和bug存在,从这个方面来说,本系统还有待进一步完善和调试,做到更加完美。参考文献[1]杨树林,胡洁萍.JavaWeb应用技术与案例教程[M].人民邮电出版社,2011:1-250[2]曾令明,索望,甘刚,宋波.Java程序设计教程[M].西安:西安电子科技大学出版社;2007:204-2115.[3]刘晓华.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2007:286-287.[4]张铭泽.JavaScript权威指南(第四版)[M].北京:机械工业出版社,2003:259-284.[5]朱末霞.基于JSP开发的网上调查系统[J].大学图书情报学刊,2007,25(1):45-48.[6]孙晓菲,张亚莉.基于JSP的网络问卷自动生成系统的设计与实现[J].计算机与现代化,2006(4):91-94.[7]汪孝宜.JSP数据库开发实例精粹[M].北京:电子工业出版社,2005:89.[8]冯燕奎,赵德奎.JSP实用案例教程[M].北京:清华大学出版社,2004:142.[9]范新民.基于JSP、JDBC技术动态访问Web数据库的实现方案[J].福建师范大学学报:自然科学版2002,18(2):28-33.[10]吴晨清,荣震华.用JSP/Servlet技术构建Web应用[J].计算机工程,2001,27(1):170-172.[11]彭巧珍,姚力文,段隆振,袁萍.基于JSP技术的网上选课系统的设计与实现[J].计算机与现代化,2004(8):122~124.[12]万华.基于JSP的网上购物系统的实现[J].现代计算机,2002(10):60~63.附录1核心配置文件web.xml代码<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>/main/main.jsp</welcome-file> </welcome-file-list></web-app>附录2Struts2业务配置文件struts.xml代码<struts> <!--加载各模块配置文件--> <includefile="struts-cart.xml"></include> <includefile="struts-main.xml"></include> <includefile="struts-order.xml"></include> <includefile="struts-user.xml"></include> <includefile="struts-self.xml"></include> <packagenamespace="/"name="drug-default"extends="json-default"> <!--定义Action,自定义拦截器等组件--> <interceptors> <!--对数据库操作的事务的拦截--> <interceptorname="transactionInterceptor" class="erceptor.TransactionInterc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论