在线影碟销售系统实现_第1页
在线影碟销售系统实现_第2页
在线影碟销售系统实现_第3页
在线影碟销售系统实现_第4页
在线影碟销售系统实现_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着电子商务的不断发展,企业网络化已经成为一种需要,而中小企业如何利用有限的资金搭建自己的电子商务网站显得尤为重要。本文介绍了一种基于JAVA语言的技术的影碟销售网站,通过介绍网站的三层结构模式,充分体现了基于JAVA语言的技术的优势,并通过对开发过程的详细介绍,给出了使用这些技术构建中小企业的电子商务网站的具体实现方法。本文介绍的在线影碟销售系统实现了用户端在线浏览影碟信息、开通网上购物车、在线提交订单和在线留言等功能。管理员通过本系统可以添加影碟及影碟分类、管理用户、管理订单、统计销售量、留言管理等。与传统销售行为相比,在线影碟销售系统为用户和商家都提供了最高的效率和最便捷的手段。关键词JAVA,JDBC,HIBERNATE,SERVLET,STRUTS,JSP,MYSQL在线销售ABSTRACTWITHTHECONTINUOUSDEVELOPMENTOFECOMMERCE,ENTERPRISENETWORKHASBECOMEANEED,ANDHOWSMESUSETHELIMITEDFUNDSBUILTTHEIROWNECOMMERCESITESITISPARTICULARLYIMPORTANTINTHISPAPER,AJAVABASEDTECHNOLOGIESFORVIDEOSALESSITE,THROUGHTHEWEBSITEINTRODUCEDTHETHREETIERSTRUCTUREMODEL,FULLYEMBODIESTHEJAVABASEDTECHNOLOGYADVANTAGES,ANDTHROUGHTHEDEVELOPMENTPROCESSINDETAIL,GIVENTHEUSEOFTHESETECHNOLOGIESCONSTRUCTIONOFTHESMEECOMMERCESITESTOACHIEVETHESPECIFICMETHODTHISPAPERDESCRIBESTHEONLINEVIDEODISTRIBUTIONSYSTEMTOACHIEVETHECLIENTVIEWEDONLINEVIDEOINFORMATION,OPENEDONLINESHOPPINGCART,ONLINEORDERSANDONLINEMESSAGETOTHEFUNCTIONTHROUGHTHESYSTEMADMINISTRATORCANADDVIDEODISCSANDVIDEODISCSCLASSIFICATION,USERMANAGEMENT,ORDERMANAGEMENT,SALESSTATISTICS,THEMESSAGEMANAGEMENTCOMPAREDWITHTHETRADITIONALSALESOFONLINEVIDEODISTRIBUTIONSYSTEMFORUSERSANDBUSINESSESHAVEPROVIDEDTHEMOSTEFFICIENTANDMOSTCONVENIENTMEANSKEYWORDSJAVA,JDBC,HIBERNATE,SERVLET,STRUTS,JSP,MYSQL,ONLINESALE1系统简要介绍211系统的模快划分212系统各模块的功能描述22开发环境及开发工具介绍321JAVA简介322MYSQL数据库介绍323TOMCAT应用服务器424ECLIPSE介绍43开放方案及相关技术介绍431HIBERNATE介绍532WEB应用程序开发环境JSP技术533JAVABEAN简介534B/S开发模式635开发框架技术641需求分析7413运行环境942可行行分析10421技术可行性10422操作可行性105系统概要设计与详细设计1051指导思想10511B/S结构开发思想1052系统结构图1253系统的用例图如下1355数据库设计16551主要数据库表的介绍16552数据库ER图16553主要数据库表的结构1956系统的业务流程20561系统的前台业务流程20562系统的后台业务流程2151产品管理的实现22512后台实现2652用户留言模块实现31521前台实现31522后台实现336系统的合成与测试3461系统的合成3462系统的测试34621什么是软件测试34622软件测试的规则35623软件测试的对象3563综合测试35631系统的前台测试35632系统的后台测试377总结37参考文献38中文文章39英文翻译461系统简要介绍11系统的模快划分本系统共分六个模块管理员管理、用户管理、产品管理、留言管理、购物车、定单管理,由三人分工合作完成。由于我们是在学习阶段,为了使每个人各方面的能力能够得到锻炼,我们采用按模块划分的模式,其中我负责产品管理和留言管理。12系统各模块的功能描述1管理员管理管理员管理主要有对管理员的增加和删除,以及对各个管理员权限的增加和删除。2用户管理用户管理主要是对前台注册的用户进行管理,其中包含对用户的删除功能。3产品管理产品管理主要负责产品在前台的表现,以便让用户可以方便的浏览,查看产品的各项信息。提供用户按影碟所属的情节进行分类查找,可以让用户可以方便的查找到自己感兴趣的商品。用户也可以直接输入产品名搜索产品。在主页面上显示销售排行前十的商品,使用户可以方便的知道最近流行的产品。管理员也可以在后台对产品的进行管理,主要操作有对产品的删除和修改产品各项属性的功能。4留言管理对用户在前台的留言进行管理,主要操作有对留言的删除功能。5购物车用户对想要购买的商品点击添加到购物车,点击购物车按钮可以查看购物车的商品,用户也可以在购物车内的产品进行更改数量和删除更新购物车。6定单管理对用户下的定单进行管理,使管理员可以方便的统计销售额和利润。2开发环境及开发工具介绍21JAVA简介JAVA是SUN公司推出的新的一代面向对象程序设计语言,特别适合于INTERNET应用程序开发。JAVA的产生与流行是当今INTERNET发展的客观要求,JAVA是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在INTERNET环境上开发的应用系统。22MYSQL数据库介绍MYSQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MYSQL虽然是免费的,但同ORACLE,SYBASE,INFORMIX,DB2等商业数据库一样,具有数据库系统的通用性1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MYSQL完全具有这方面的功能。2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MYSQL也是关系型的数据库系统,支持标准的结构化查询语言(STRUCTUREDQUERYLANGUAGE)。3)开放源码数据库。同商业性的数据库相比,这是MYSQL最大的特点。MYSQL的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MYSQL的源码使用、修改以符合自己特殊的需求。4)技术特点。MYSQL是C/S架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C、JAVA、PERL、PHP、TCL等,也提供了简单的管理工具,如MYSQLADMIN,MYSQL等。MYSQL有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MYSQL作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MYSQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。23TOMCAT应用服务器目前支持JSP的应用服务器是较多的,TOMCAT是其中较为流行的一个WEB服务器,被JAVAWORLD杂志的编辑选为2001年度最具创新的JAVA产品,可见其在业界的地位。TOMCAT是一个免费的开源的SERLVET容器,在TOMCAT中,应用程序的部署很简单,你只需将你的WAR放到TOMCAT的WEBAPP目录下,TOMCAT会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为TOMCAT要将JSP转化为SERVLET文件,然后编译。编译以后,访问将会很快。TOMCAT也具有传统的WEB服务器的功能处理HTML页面。但是与APACHE相比,它的处理静态HTML的能力就不如APACHE。我们可以将TOMCAT和APACHE集成到一块,让APACHE处理静态HTML,而TOMCAT处理JSP和SERVLET。TOMCAT是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。24ECLIPSE介绍ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。虽然大多数用户很乐于将ECLIPSE当作JAVAIDE来使用,但ECLIPSE的目标不仅限于此。ECLIPSE还包括插件开发环境(PLUGINDEVELOPMENTENVIRONMENT,PDE),这个组件主要针对希望扩展ECLIPSE的软件开发人员,因为它允许他们构建与ECLIPSE环境无缝集成的工具。由于ECLIPSE中的每样东西都是插件,对于给ECLIPSE提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于JAVA开发工具。尽管ECLIPSE是使用JAVA语言开发的,但它的用途并不限于JAVA语言;例如,支持诸如C/C、COBOL和EIFFEL等编程语言的插件已经可用,或预计会推出。ECLIPSE框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。3开放方案及相关技术介绍选择MYSQL作为后台的数据库,选择JAVA、JSP、SERVLET,JAVASCRIPT、HTML作为应用程序开发工具,运用TOMCAT服务器技术,整个系统完全基于B/SBROWSER/SERVER模式进行设计。系统架构采用MVC模式,其中JSP,HTML用于表现层的开发,SERVLET控制层的开发。31HIBERNATE介绍HIBERNATE不仅仅管理JAVA类到数据库表的映射(包括JAVA数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。HIBERNATE的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,HIBERNATE可能不是最好的解决方案对于那些在基于JAVA的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,HIBERNATE是最有用的。不管怎样,HIBERNATE一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。32WEB应用程序开发环境JSP技术JSP的全称是JAVASERVERPAGES,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(HTML,HTM)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点1将业务层与表示层分离使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;2能够跨平台JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的APACHE服务器也提供了支持JSP的服务;3一次编写,处处运行作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括WRITEONCE,RUNEVERYWHERE33JAVABEAN简介JAVABEAN是一种基于JAVA的软件组件,JAVABEAN和ACTIVE控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在WEB应用中集成JAVABEAN组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JAVABEAN组件可以用来执行复杂的计算任务,或负责与数据库的交互及数据提取等。由于JAVA语言在这些方面所具有的特点和优势,使得基于它的软件JAVABEAN组件技术倍受人们关注。它的任务就是一次编写,可以在任何地方执行,可以在任何地方重用。JAVABEAN组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、WEB站点和应用程序构造器工具等多种方案中再利用。为了创建和使用JAVA软件组件,JAVABEAN被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构和细节问题,只需定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。34B/S开发模式伴随着INTERNET的迅速发展,计算机技术正在由基于C/S(CLIENT/SERVER)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(CLIENT)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题1系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。2在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处3开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(SERVER)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(SERVER)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(BROWSER)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。4良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。35开发框架技术对于框架技术,我们主要采用STRUTSHIBERNATE的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用JAVA技术在WEB的应用。其中我负责的产品管理部分和用户留言部分没有按照这样的框架,由于我对JDBC和SERVLET还不是很熟悉,而毕业设计主要锻炼一下自己能力的方式而没有必要非要去追求一个框架,所以我的持久层使用的是JDBC,控制层使用的是SERVLET,表现层使用的是JSPSTRUTS是应用比较广泛的一种表现层框架STRUTS是一个为开发基于模型MODEL视图VIEW控制器CONTROLLERMVC模式的应用架构的开源框架,是利用SERVLET,JSP和CUSTOMTAGLIBRARY构建WEB应用的一项非常有用的技术。由于STRUTS能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JAVABEANS从JSP/SERVLET中分离出来,而使用表现层框架则可以将JSP中剩余的JAVABEANS完全分离,这部分JAVABEANS主要负责显示相关信息,一般是通过标签库(TAGLIB)实现,不同框架有不同自己的标签库,STRUTS是应用比较广泛的一种表现层框架。HIBERNATE通过持久层的框架将数据库存储从服务层中分离出来它是O/RMAPPING的一种实现是目前在JAVA界使用非常广泛的O/RMAPPING的一种实现,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向直接自己编写JDBC等SQL语句(如IBATIS);使用O/RMAPPING技术实现的HIBERNATE和JDO技术;当然还有EJB中的实体BEAN技术。HIBERNATE的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和HIBERNATE提供的一些基本类,就可以达到使用数据库的目的。例如,使用HIBERNATE的查询,可以直接返回包含某个值对象的列表(LIST),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。HIBERNATE提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL。4需求分析与可行性分析41需求分析411任务概述在线影像销售系统主要为用户在网上进行影像制品的购买,用户可以在客户端方便的流览影像制品的各种信息,从而决定是否购买。管理员可以在服务器端对用户,用户的定单和产品进行管理。后台还提供管理员管理的功能以便对各个管理员的权限进行限定。412功能需求概述我主要开发的是产品管理和留言管理模块,在此系统中我主要解决的问题是将产品的信息在前台进行显示。我将子系统分为以下功能模块1管理员管理管理员管理主要有对管理员的增加和删除,以及对各个管理员权限的增加和删除。2用户管理用户管理主要是对前台注册的用户进行管理,其中包含对用户的删除功能。3产品管理产品管理主要负责产品在前台的表现,以便让用户可以方便的浏览,查看产品的各项信息。提供用户按影碟所属的情节进行分类查找,可以让用户可以方便的查找到自己感兴趣的商品。用户也可以直接输入产品名搜索产品。在主页面上显示销售排在线影像销售系统定单管理管理员管理用户管理产品管理留言管理购物车管理行前十的商品,使用户可以方便的知道最近流行的产品。管理员也可以在后台对产品的进行管理,主要操作有对产品的删除和修改产品各项属性的功能。4留言管理对用户在前台的留言进行管理,主要操作有对留言的删除功能。5购物车用户对想要购买的商品点击添加到购物车,点击购物车按钮可以查看购物车的商品,用户也可以在购物车内的产品进行更改数量和删除更新购物车。6定单管理;对定单进行管理,方便管理员统计销售的各种信息。各模块需完成以下功能管理员管理增加管理员删除管理员权限设置用户管理登陆注册维护产品管理产品维护前台表现留言管理删除不良留言前台表现定单管理保存定单修改定单。413运行环境硬件需求PIII/256M/10G及以上配置,要求为考试系统分配足够的数据库磁盘空间推荐配置PIV2G/512M/40G操作系统需求WINDOWS2000及以上操作系统推荐,也可以使用SUNSOLARIS等LINUX操作系统数据库软件需求MYSQL,也可以使用ORACLE8I/ORACLE9I数据库推荐中间件软件需求TOMCAT系列服务器。42可行行分析可行性研究分为技术可行性研究、操作可行性研究、经济可行性研究,而本设计用于毕业设计,暂不考虑经济可行性。创建定单421技术可行性人力资源管理系统,可以基于给J2EE平台,采用JAVA语言,数据量小,任何一个数据库都可以满足要求。实现过程中可以用JDBC,HIBERNATE等连接数据库,并可以使用SQL语句进行查询、插入、删除、更新等操作,功能实现不复杂。已经学习过数据库、软件工程等相关课程,而语言基本思想大致是一样的,JAVA语言掌握起来应该没有问题。再者,网上信息特别丰富,可以上网查找有关资料,在技术方面有指导老师可以进行指导,还可以上网查询相关资料。在线购物系统实现的理论及技术已经日趋成熟。因此,在技术方面实现本系统是不存在问题的。422操作可行性因为本系统是基于JAVA语言开发的,它具有跨平台性,可以运行在LINUX和WINDOW下软件的操作都是一些简单的操作,懂得计算机的人都可行进行操作。结论由技术可行性、操作可行性的研究,可以得出结论,人力资源管理系统的开发是完全可行的。5系统概要设计与详细设计51指导思想511B/S结构开发思想B/S(BROWSER/SERVER)结构即浏览器和服务器结构。它是随着INTERNET技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,但是主要事务逻辑在服务器端(SERVER)实现,形成所谓三层(3TIER)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过INTERNET/INTRANET模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,INTERNET/INTRANET等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。512系统工程的流程思想我们在系统开发过程中,采用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如图11所示。513面向对象机制的设计思想所有计算机均由两种元素组成代码和数据。精确的说,有些程序是围绕着“什么正在发生“而编写,有些则是围绕“谁正在受影响“而编写的。第一种编程方式叫做“面向过程的模型“,按这种模型编写的程序以一系列的线性步骤代码为特征,可被理解为作用于数据的代码。如C等过程化语言。第二种编程方式叫做“面向对象的模型“,按这种模型编写的程序围绕着程序的数据对象和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问通过把控制权转移到数据上,面向对象的模型在组织方式上有抽象、封装、继承和多态的好处。514代码分层思想由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用JAVA语言开发WEB应用程序,提供STRINGHIBERNATESPRING框架对系统的程序代码结构进行分层。分层的策略如下SERVICELOCATOR表示层STRUTSSTRUTSACTION,ACTIONFORM,JSP,STRUTSCONFIGXML,ETCDAOCLASSES业务层SPRINGHIBERNATESESSIONMANAGEMENT持久层HIBERNATEDATASOURCE/CONNECTIONPOOLTRANSACTIONSBUSINESSSERVICECLASSESQUERYLANGUAGESUPPORTANDOTHERHIBERNATESERVICESDOMAINMODELBUSINESSOBJECTS52系统结构图在线影碟销售系统后台管理留言管理定单管理购物车管理产品管理管理员管理用户管理用户登陆用户前台53系统的用例图如下54系统部分模块类图1产品管理模块类图如下所示2留言管理类图如下55数据库设计551主要数据库表的介绍根据系统需要和考试需要,设立了如下数据库表产品表WZP_PRODUCT其中包括了产品的基本信息如产品ID、产品名、进价、售价、库存、已售、所属地区、所属情节、图片路径,产品描述。留言表WZP_MESSAGE其中包括了留言表的基本信息;留言ID、用户名、时间、留言内容。552数据库ER图数据库设计的逻辑实体关系图表示如下主要数据库表的ER图1产品表的ER图ORDERPRODUCTITEMMESSAGEUSERSENDORDERRCREATECREATEPRODUCTNAMEIMAGEOIDDESCRIBEBYAREAOUTPRICENPRICEASSENDSTOCKBYSCENE2用户留言表的ER图MESSAGEUSERNAMECONTENTDATEOID3用户表的ER图USERUSERIDNAMEGENDERPASSWORDOFFICEPHONEMOBIYPHONEEMAILADDRESS4定单表的ER图ORDERADDRESSSTATUSREATEDATEIDEMAILTELCOSTENDDATE5管理表的ER图MESSAGEUSERNAMECONTENTDATEOID553主要数据库表的结构定义(数据词典)1数据库表名的定义使用所有的数据库表名都以WZP_开头,后面是表名的英文字母。2NN表示NOTNULL不填表可为空REF表名字段名引用某个表的字段作为外键。3输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通。4、长度定义由数据类型决定如字符串可选500以下,数字可在50位之间,字符只允许一位。主要表结构如下物理名称WZP_PRODUCT主要字段数据类型长度属性描述OID数字型10唯一标识符FK与业务无关,自动生成NAME字符型20NN产品名称INPRICE数字型5NN进价OUTPRICE数字型5NN售价STOCK数字型10NN库存HASSEND数字型10NN已售PATH字符型30NN图片路径DESCRICE字符型500NN产品描述BYAREA字符型20NN所属地区物理名称WZP_MESSAGE主要字段数据类型长度属性描述OID数字型10唯一标识符FK与业务无关,自动生成USERNAME字符型20NN,REFWZP_USERNAME用户名TIME字符型20NN留言时间CONTENT字符型500NN留言内容56系统的业务流程561系统的前台业务流程系统的客户端假定用户是未登录,客户端主页面显示最新上架的影像制品以供客户购买,但是客户在未登录情况下只能查看商品,和对购物车的操作,不能下订单和结账的操作,用户可以通过初始界面提供的统一的用户登录接口,登录进入系统,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的功能权限的管理,其购物流程如图42所示图42客户端操作流程图562系统的后台业务流程系统的服务端初始假定用户是未登录,服务端主页面显示是一个管理员登录界面,用户可以从系统管理员那里得到用户名和密码进行登录,登录进入系统后系统自动进行身份判别赋相应的管理权限,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的功能权限的管理,其流程如图43所示图42服务器端操作界面流程图5系统实现51产品管理的实现511前台实现用户主界面中间部分显示商品的列表,这个部分是单独的写了一个JSP文件,在主页面中动态的包含近来,这样使的无论当用户走到网站中的任何位置在页面上都可以搜索影碟,登陆,注册,以及名称查找。例如点击动作片按钮下面是动态包含的代码当用户点击查找按钮的时候会将请求发往控制器,控制器根据所得到的参数调用业务层的方法,访问数据库再将结果返回到页面上。页面再根据条件判断应该包含那个JSP页面到中间。实现代码如下PUBLICCLASSSEARCHACTIONEXTENDSHTTPSERVLETPUBLICVOIDDOPOSTHTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSSERVLETEXCEPTION,IOEXCEPTIONREQUESTSETCHARACTERENCODING“UTF8“STRINGNAMEREQUESTGETPARAMETER“KEYWORD“PRODUCTSERVICEPRODUCTSERVICENEWPRODUCTSERVICEIMPLSETPRODUCTSETPRODUCTSERVICEGETPRODUCTBYNAMENAMEREQUESTSETATTRIBUTE“RESULT“,PRODUCTSETSERVLETCONTEXTAPPLICATIONGETSERVLETCONTEXTAPPLICATIONGETREQUESTDISPATCHER“/PAGE/UPDATEJSP“FORWARDREQUEST,RESPONSE当用户点击添加到购物车按钮,在连接上提供产品的ID,购物车同过调用业务层的FINDPRODUCTBYID方法得到产品的一系列信息,表现在页面上让用户查看。截图如下当用户点击创建定单的时候,会将定单保存到数据库,同时调用业务层的接受定单的方法对产品表中的库存和已售字段进行更改。实现代码如下PUBLICMAPRECIEVEORDERORDERORDERMAPRESULTNEWHASHMAPSETITEMSETORDERGETITEMSFORITEMITEMITEMSETINTEGERPRODUCTIDITEMGETPIDPRODUCTPRODUCTDAOGETPRODUCTBYOIDPRODUCTIDINTSTOCKINTSENDIFPRODUCTNULLSTOCKPRODUCTGETSTOCKSENDITEMGETNUMIFSTOCKONELINEOFHTML“OUTPRINTLN“ANOTHERLINEOFHTML“在产生HTTP响应的SERVLET中是很普遍的。也有一些库有助于你产生HTML。随着应用越来越复杂,JAVA开发人员将不再扮演HTML页面设计的角色。同时,大多数项目经理更喜欢将团队分成不同的小组。它们喜欢HTML设计人员处理表现层的工作,而JAVA工程师则专注于业务逻辑。单独使用SERVLET的做法鼓励混合标记和业务逻辑,很难区分团队人员的专业工作。为解决这个问题,SUN提出了一个将脚本和模板技术结合到一个组件中的服务器页面技术(JAVASERVERPAGES)。为创建JSP页面,开发者按创建HTML页面类似的方式创建页面,使用相同的HTML语法。为将动态内容引入页面,开发人员可以将脚本元素置入页面之中。脚本元素是一些标记,封装了可以被JSP识别的逻辑。你可以在JSP页面中很容易的识别出脚本元素,他们被封装在一对标记中。例如,要显示页面的最后修改日期,开发人员可以将以下代码放入页面中THISPAGEWASACCESSEDAT有三种不同的脚本元素表达式,脚本小程序和声明。如表11所示元素目的表达式JAVA代码,封装在之中,用来计算JAVA语句的值,并将结果插入SERVLET的输出之中脚本程序JAVA代码,封装在之中,常用来创建动态内容声明JAVA代码,封装在之中,常用来添加代码到SERVLET类的BODY之中为了识别JSP页面,文件需要保存为扩展名JSP。当一个客户请求JSP页面时,容器将页面翻译成JAVASERVLET源代码文件,并将它编译成JAVA类文件就象你写的SERVLET文件一样。在运行时,容器也能检测JSP文件和相应的类的最后更新时间。如果,JSP文件自上次编译以来被修改了,容器将重新翻译和编译JSP文件。项目经理现在可以将表现层分派给HTML开发人员,将业务逻辑工作分派给JAVA开发人员。重要的是记住,JSP页面事实上是一个SERVLET。你可以在SERVLET做的,也可以在JSP中做。JSP标签脚本元素仅是两种产生动态内容的方式之一。SCRIPTLET是快捷、简单、强大的手段但要求开发者在HTML中混合JAVA代码。经验告诉我们,混合业务逻辑到JSP页面中将导致难以维护的应用和最小的可重用性。一个可选的方案是使用JSP标签(TAGS)。JSP标签可以和HTML标记混合使用,就如同它们是原生HTML标记一样。一个JSP标签可以代表许多JAVA语句,但是所有的开发者都需要了解如何在页面中插入标记。源代码隐藏在JAVA类文件之中。JSP和ASPMICROSOFT和SUN都提供它们各自品牌的服务器页面。SUN提供JAVASERVERPAGESJSP而MICROSOFT提供ACTIVESERVERPAGESASP。JSP和ASP都设计来能够使开发者能从后端系统产生动态页面。虽然表面看起来相似,ASP和JSP仍有一些不同之处1JSP是平台独立性的,一次编写,随处运行;2开发者通过JAVACOMMUNITYPROCESSJCP指引方向;3JSP开发者可以通过定制标签扩展JSP标标签库;4JAVABEANS和ENTERPRISEJAVABEANSEJB可以和JSP一起使用,增强可重用性和减小维护。5JSP可以存取其他一些JAVA库,包括JAVA数据库连接JDBC,JAVAMAIL,JAVAMESSAGESERVICEJMS,以及JNDI。6JSP编译成二进制类文件,不需要在每次请求时进行解释;7JSP有广泛的支持,包括工具,容器和服务器;为在其他页面中使用同一代码,只需要在该页面中重新插入相同的标签。如果标签代表的代码改变了,所有的标签都将使用更新的版本。而使用标签的JSP页面并不需要进行修订。JSP标记比SCRIPLET提供了更好的可重用性,也更易被页面设计者使用,因为它们看起来很象HTML标记。有大量的现成的JSP标签库(TAGSLIBRARIES)可用,他们完成很多有用的功能。其中就有新的JSP标准标签库JSTL。这是一个新的标准,提供丰富的可重用的JSP标签库。关于JSTL的详细情况,我们高度推荐JSTLINACTION,作者SHAWNBAYERNBAYERN。STRUTS可以很好的和JSTL以及其他公开标签库一起使用,甚至是你自己写的标签库。JSP是STRUTS开发者工具箱的一部分。大多数STRUTS开发者使用JSP和定制标记来创建应用的动态内容。JAVABEANJAVABEAN是一种JAVA类,它遵从一定的设计模式,使它们易于和其他开发工具和组件一起使用。定义JAVABEAN是一种JAVA语言写成的可重用组件。要编写JAVABEAN,类必须是具体类和公共类,并且具有无参数的构造器(NONARGSCONSTRUCTOR)。JAVABEAN通过提供符合一致性设计模式的公共访问方法将内部字段暴露称为属性。众所周知,属性名称也符合这种模式,其他JAVA类可以通过自省机制发现和操作这些JAVABEAN属性。JAVABEAN设计模式提供两种类型的方式来访问BEAN的内部状态访问器(ACCESSOR)用来读JAVABEAN的状态,修改器(MUTATOR)用来改变JAVABEAN的状态。MUTATOR通常以小写的SET前缀开始,后跟属性名。属性名的第一个字母必须大写。返回值通常是VOID,因为MUTATOR仅仅改变属性的值,而不返回它们。简单属性的MUTATOR在其方法体中可能只有一个参数,该参数可以是各种类型。MUTATOR也可根据其前缀称为设置器SETTERS。例如,对DOUBLE类型的属性WEIGHT的MUTATOR方法体可能是PUBLICVOIDSETWEIGHTDOUBLEWEIGHT相似的设计模式也用于访问器方法的创建。ACCESSOR通常以小写的GET为前缀,后跟属性名。属性名的第一个字母必须大写。返回值必须匹配相应的修改器方法的参数。简单属性的ACCESSOR在其方法体中不能接受参数。同样,访问器ACCESSOR也经常称为获取器GETTER。属性WEIGHT的访问器方法体可能是PUBLICDOUBLEGETWEIGHT如果访问器返回一个逻辑值,这种情况下有个变体模式。不使用小写的GET,逻辑属性的访问器可以使用小写的IS前缀,后跟属性名。属性名的首字母必须大写。返回值肯定是逻辑值,不管是BOOLEAN还是BOOLEAN。逻辑访问器在其方法体中不能接受参数。ON属性的逻辑访问器的方法体可能是PUBLICBOOLEANISON在使用JAVABEAN时,规范的方法体签名扮演了极为重要的角色。其他组件可以使用JAVA的反射API通过查找前缀为SET,IS,或者GET的方法来发现JAVABEAN的属性。如果一个组件在一个JAVABEAN中发现一个这样的方法,它就知道这个方法可以用来访问或者改变JAVABEAN的属性。SUN引入JAVABEAN是为了用于GUI组件,但它们已经用在JAVA开发的各个方面,包括WEB应用。SUN的工程师在开发JSP标签的扩展类时,也被设计来可以和JAVABEAN一起工作。一个页面的动态数据可以使用一个JAVABEAN来传递,并且JSP标记可以随后使用BEAN的属性来定制页面的输出。MODEL2SERVLET/JSP规范的092版描述了在一个应用中使用SERVLET和JSP的架构。在其后的规范中,MODEL2这个叫法消失了,但它已经在JAVAWEB开发人员中非常通用了。根据MODEL2,SERVLET处理数据存取和导航流,JSP处理表现。MODEL2使JAVA工程师和HTML设计者分别工作于它们所擅长和负责的部分。MODEL2应用的一部分发生改变并不强求其他部分也跟着发生改变。HTML开发人员可以改变程序的外观和感觉,并不需要改变后端SERVLET的工作方式。STRUTS框架是基于MODEL2的架构。它提供一个控制器SERVLET来处理导航流和一些特殊类来帮助数据访问。随框架也提供一个丰富的标签库,以使STRUTS易于和JSP一起使用。英文翻译11WHOMAKESTHESTRUTSSOFTWARESTRUTSISHOSTEDBYTHEAPACHESOFTWAREFOUNDATIONASFASPARTOFITSJAKARTAPROJECTBESIDESSTRUTS,JAKARTAHOSTSSEVERALSUCCESSFULOPENSOURCEPRODUCTS,INCLUDINGTOMCAT,ANT,ANDVELOCITYTHEINITIALSTRUTSCODEBASEWASDEVELOPEDBETWEENMAY2000ANDJUNE2001WHENVERSION10WASRELEASEDMORETHAN30DEVELOPERSCONTRIBUTEDTOTHESTRUTSDISTRIBUTION,ANDTHOUSANDSMOREFOLLOWTHESTRUTSMAILINGLISTSTHESTRUTSCODEBASEISMANAGEDBYATEAMOFVOLUNTEER“COMMITTERS”BY2002,THESTRUTSTEAMINCLUDEDNINEACTIVECOMMITTERSTHEPRIMARYARCHITECTANDDEVELOPEROFTHESTRUTSFRAMEWORKISCRAIGRMCCLANAHANCRAIGISALSOTHEPRIMARYARCHITECTOFTOMCAT4ANDTHEIMPLEMENTATIONARCHITECTOFTHEJAVAWEBSERVICESDEVELOPERPACKHEISNOWSUNSSPECIFICATIONLEADFORJAVASERVERFACESJSR127ASWELLASTHEWEBLAYERARCHITECTFORTHEJAVA2ENTERPRISEEDITIONJ2EEPLATFORMSTRUTSISAVAILABLETOTHEPUBLICATNOCHARGEUNDERTHEAPACHESOFTWARELICENSEASF,LICENSETHEREARENOACQUISITIONOROTHERRECURRINGCOSTSFORUSINGTHESOFTWAREUNLIKESOMEOTHEROPENSOURCELICENSES,THEAPACHESOFTWARELICENSEISBUSINESSFRIENDLYYOUCANUSESTRUTSTOCREATEACOMMERCIALPROJECTANDDISTRIBUTETHESTRUTSBINARYWITHOUTANYREDTAPE,FEES,OROTHERHASSLESYOUCANALSOINTEGRATETHESTRUTSCOMPONENTSINTOYOUROWNFRAMEWORKJUSTASIFTHEYWEREWRITTENINHOUSEFORCOMPLETEDETAILS,SEETHEAPACHESOFTWARELICENSEATWWWAPACHEORG/LICENSE12WHYISSTRUTSOPENSOURCEMOSTOFTHELEADINGJAVAUTILITIESANDFRAMEWORKSARENOWOPENSOURCEPROJECTSMANYOFTHEDEVELOPERSWORKINGONTHESEPROJECTSDOSOASPARTOFTHEIRREGULARJOBSWITHCOMPANIESLIKEIBM,SUNMICROSYSTEMS,ANDAPPLECOLLABORATINGOPENLYONTHISTYPEOFSOFTWAREBENEFITSTHEENTIREMARKETPLACETODAY,MANYOPENSOURCECOMPONENTSAREINTEGRATEDINTOCOMMERCIALPRODUCTSCOMPANIESTHENSELLPROFESSIONALDOCUMENTATION,GUARANTEEDSUPPORTLEVELS,ANDOTHERVALUABLEAFTERMARKETSERVICESTOTHEIRCLIENTSWHENSOFTWAREISFREELYAVAILABLE,ITBECOMESMUCHEASIERFORTHEMARKETPLACETOSUPPORTSTRUTSISAPRIMEEXAMPLEOFTHISALTHOUGHSTILLAYOUNGSTER,ITHASALREADYBEENFEATUREDINDOZENSOFARTICLESANDSEMINARS,NOTTOMENTIONBOOKSLIKETHISONEMANYDEVELOPMENTTEAMSDONOTLIKETOUSESOFTWARETHATWASNOT“INVENTED”INHOUSEOPENSOURCECOMPONENTSPROVIDEALLTHEBENEFITSOFWRITINGTHESAMESOFTWAREINHOUSEB

温馨提示

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

评论

0/150

提交评论