网上数码商店毕业设计.doc_第1页
网上数码商店毕业设计.doc_第2页
网上数码商店毕业设计.doc_第3页
网上数码商店毕业设计.doc_第4页
网上数码商店毕业设计.doc_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

毕 业 设 计网上数码商店设计与实现摘 要20世纪90年代以来,计算机和网络技术促进了电子商务的产生和广泛应用,对传统商业业态和经营方式提出了挑战,网上商店作为一种新型业态,使大量贸易活动和信息传递在网络上进行。本论文通过使用当前流行的动态网页技术JSP实现前台的显示逻辑业务和编程语言Java以及三大开源框架Hibernate、Struts与Spring实现后台的控制和MySQL数据库操作。设计模式主要是采用MVC模式的Model2,MVC即Model(模型)-View(视图)-Controller(控制器)。使用该种模式可以使网站具有更好的可扩展性和使功能的增强更容易些。该网站具有注册帐户,浏览商品,查询商品,在线订购商品和管理员后台管理网站的功能。关 键 词: 网上商店 JSP 三大开源框架 MVC模式 目 录1 前言11.1研究目的及意义11.2主要研究内容22 相关软件和技术介绍32.1 JSP32.1.1 JSP的简介32.1.2 JSP的特点32.1.3 JSP的优势42.1.4 JSP的执行过程52.2 JavaScript62.3 Java72.3.1 Java的简介72.3.2 Java语言的特点72.3.3 Java的主要特点82.4 Tomcat92.5 AJAX112.5.1 AJAX概述112.5.2 AJAX的优势112.6 DWR122.7 Hibernate122.8 Struts132.9 Spring142.10 Myeclipse153 系统概要设计173.1 需求分析173.2 可行性分析173.2.1 经济可行性173.2.2 技术可行性193.3 结构分析193.3.1 各功能模块和示意图193.3.2 各模块间的关系214.数据库设计224.1 数据库结构设计224.1.1 数据表设计224.1.2 数据表与模块间的关系244.2 系统主要E-R图255系统详细设计265.1 各模块详细设计265.1.1 用户管理模块265.1.2 商品管理模块285.1.3 购物车305.1.4 订单管理315.1.5 评论管理模块325.2 关键技术详解325.2.1 后台与前台的数据交互325.2.2 页面与页面之间的数据交互325.2.3 JSP页面中控制逻辑与显示逻辑混淆336系统测试347总结357.1 毕业设计总结357.2 未来展望35致 谢37参 考 文 献38Abstract39仲恺农业工程学院毕业论文(设计)成绩评定表401 前言1.1研究目的及意义 20世纪90年代以来,计算机和网络技术促进了电子商务的产生和广泛应用,对传统商业业态和经营方式提出了挑战,网上商店作为一种新型业态,使大量贸易活动和信息传递在网络上进行。网上商店具有一般实物商店所没有的优点:1网络联接全世界和千家万户,使商品更容易销售。2网上开店几乎不要投资,只要有张网页发布信息就行。3网上开店是虚拟商店,无需存货、仓库等。4免去昂贵的店面租金或投资。5货源充足且容易组织。你可以卖本企业(自己)的商品;也可以卖他企业(他人)的商品;可以到市场上去物色商品,甚至你可以卖你周围商店里的商品。6 转行经营快,你可以随时转行经营别类商品。7 节约人手和时间,你不需要自己站柜台,也不需要雇请营业员,只需抽空上网看看订单就行。8 适应性广。企业、家庭、个人、个体户都可开店,个人工作之余也可开个商店来赚钱。9 成本低。不言而喻。10 收益大。不言而喻。一般商场,拥有4-5万种商品,较大的批发市场有8-10万种商品,这些都只占商品总类的很少的一部分,据说全球拥有150多万种商品,有人说,如果加上各种类型的服务商品,商品的种类就更多了,但是,一个商店(场)不可能穷尽所有的商品,于是就形成了各种类型的商店或市场,及其相应的核心商品或者服务的竞争力,所谓商品错位经营也就在于此。就网上商店而言,从理论上说具有超过实物商店物理存放商品空间限制的可能。我国网民从1996年10月的仅10万网民,到2001年6月上升至2650万,到2003年达3000万以上,2005年达到2亿。网民的分布状况及其聚集程度决定网上商店的商圈,网上购物的情况决定网上销售量的大小。中国的网民较有20%的上网购物,美国的网民有40%的上网购物,庞大的消费群体使得网上商店变得更有吸引力。开展网上商店,用户就可以足不出户就可以买到自己喜欢的商品。每个人只要有一台可以上网的电脑,不须站着,也不须走动,只须轻轻地移动鼠标,一点击就可以买到自己想要的商品。这在以前都是不可能做到的,而现在就可以完全做到。1.2主要研究内容 本论文所研究的网上数码商店主要是为企业或个人提供数码产品展示的虚拟的地方。它展示的只是虚拟的商品,不占任何的物理地址空间,因而也不用支付昂贵仓库租金来存放;也不受时间限制。网上数码商店为消费者提供了当今所有的数码产品的全部信息。它为一般人提供了浏览商品和查询商品的功能;而为注册用户侧还提供了购买商品,发表评论和推荐信息的功能。由于当今世界的数码商品越来越多,更新也越来越快,加上现代人的生活和工作节奏比较快,没有更多的时间去真实的商店去查看最新的数码商品的信息。而网上数码商店侧为这些人提供了一个快捷、方便地了解最新数码商品的平台。网上数码商店对于生产者、销售者和消费者都有利的平台,因而在现实社会中大受欢迎。更由于本人的能力有限,所以本论文所研究的网上数码商店目前只能提供浏览商品,查询商品,登陆系统,注册用户,购物车,管理员管理商品、用户、订单和发布最新信息的功能,更强的功能有待进一步增强。2 相关软件和技术介绍2.1 JSP2.1.1 JSP的简介 JSP(JavaServer Pages)是用JAVA语言作为脚本语言的服务器页面,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的请求的程序。JSP是由Sun Microsustems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入程序片段Scriptlet和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP文件不能有浏览器直接运行,而需由web服务器解释执行,Web服务器在遇到访问JSP页面的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页等,这就是建立动态网页所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的是得到的结果,即HTML(Hypertext Markup Language)文件。62.1.2 JSP的特点 JSP主要具有以下的几点特点:1将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 2强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执 行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 3采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及JavaEE(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSp页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言的“一次编写,各处运行的”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,你可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。62.1.3 JSP的优势 1.与传统的CGI方式相比 后台实现逻辑是基于Java Component的,具有跨平台的特点。 将应用逻辑与页面表现分离,使得应用逻辑能够最大程度得到复用,从而提高开发效率。 安全,由于后台是完全基于Java支持的,安全性由Java的安全机制予以保障。 由于与ASP很近似,不需要太多的编程知识就可以动手编写JSP。 内置支持XML,使用XML从而使页面具有更强的表现力和减少编程工作量。2. JSP vs ASPJSP跨平台,而且支持Apache,Netscape,IIS,IBM Http Server在内的所有主流Web Server,而ASP目前只支持NT+IIS。JSP提供了更好的安全机制。这对于e-business这样的应用来说是至关重要的。JSP可以跨操作系统、Web Server和应用服务器,而ASP只限于NT+IIS。JSP是一个开放的标准,得到了Oracle,Netscape,IBM & WebLogic,Inprise的支持。3. JSP vs PHPJSP是一个业界标准,得到Sun,IBM,Oracle,BEA,Apache等的支持,PHP只是一个开发组织并不强的free ware;JSP中的组件,JavaBean和EJB开发非常容易,而且还可以在JSP中使用Java所有的类和功能。而PHP只能用C写一些功能有限的组件,而且编写较为复杂;利用JSP可以支持EJB,可以支持Transaction和CORBA标准,而且还可以支持LDAP,Message等服务,使得访问ERP,CICS,MQ等企业应用非常容易。而PHP在这方面先天不足,所以对于复杂的电子商务这样的Mission-critical的应用来说,PHP并不合适。2.1.4 JSP的执行过程 (1) 客户端发出Request (请求); (2) JSP Container 将JSP 转译成Servlet 的源代码; (3) 将产生的Servlet 的源代码经过编译后,并加载到内存执行; (4) 把结果Response (响应)至客户端。如图1 图1 JSP的执行过程 一般人都会以为JSP 的执行性能会和Servlet 相差很多,其实执行性能上的差别只在第一次的执行。因为JSP 在执行第一次后,会被编译成Servlet 的类文件,即为XXX.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不用再重新把JSP编译成Servlet。因此,除了第一次的编译会花较久的时间之外,之后JSP 和Servlet 的执行速度就几乎相同了。 在执行 JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(RequestTime)(见图2)。 转译时期:JSP 网页转译成Servlet 类。请求时期:Servlet 类执行后,响应结果至客户端。补充:转译期间主要做了两件事情:将JSP 网页转译为Servlet 源代码(.java),此段称为转译时期(Translation time);将Servlet 源代码(.java)编译成Servlet 类(.class),此段称为编译时期(Compilation time)。图2 转译时期与请求时期程序图当 JSP 网页在执行时,JSP Container 会做检查的工作,若发现JSP 网页有更新修改时,JSP Container 才会再次编译JSP 成Servlet;JSP 没有更新时,就直接执行前面所产生的Servlet。62.2 JavaScriptJavaScript 是一种新的描述语言,此一语言可以被箝入 HTML 的文件之中。透过 JavaScript 可以做到回应使用者的需求事件 (如: form 的输入) 而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端 (server)处理,再传回来的过程,而直接可以被客户端 (client) 的应用程式所处理。你也可以想像成有一个可执行程式在你的客端上执行一样!运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 30以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 30以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。32.3 Java2.3.1 Java的简介 Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系JavaSE(Java2 Platform Standard Edition),JavaEE(Java 2 Platform,Enterprise Edition),JavaME(Java 2 Platform Micro Edition)。2.3.2 Java语言的特点 Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。2.3.3 Java的主要特点 1、Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2.4 Tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。 Tomcat 最新版本是4.0x。4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。 与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。 Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 另外,Tomcat提供Realm支持。Realm类似于Unix里面的group。在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。 在Tomcat4中,你还可以利用Servlet2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet。而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat。 基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make。你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。 2.5 AJAX2.5.1 AJAX概述 Ajax是由Jesse James Garrett创造的,是Asynchronous JavaScript+XML的缩写 Adaptive Path公司的Jesse James Garrett如是说:Ajax不是一种新技术,它把几种成熟的技术以新的方式组合而成,形成强大的功能,包含: 1.基于XHTML和CSS标准的表示; 2.使用document Object Model进行动态显示和交互; 3.使用XMLHttpRequest与服务器进行异步通信; 4.使用JavaScript绑定一切。 5.传统的Web应用是一个同步的交互过程。Ajax是异步的。AJAX是一个客户端动态网页思想;综合整合使用HTML,CSS,JavaScript,XML等页面技术完成客户端显示功能,同时以XMLHttpRequest为核心的异步对象与服务端后台通信。2.5.2 AJAX的优势1.减轻服务器的负担 AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。2.带来更好的用户体验 无刷新更新页面,减少用户心理和实际的等待时间。3.利用客户端的处理能力 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担 4.基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。5.进一步促进页面呈现和数据的分离。 2.6 DWRDWR(Direct Web Remoting)是一个Java开源库,它可以让你在浏览器中的JavaScript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。DWR的组成:1.在服务器上运行的Servlet来处理请求并把结果返回浏览器。2.运行在浏览器上的Javascript,可以发送请求,并动态改变页面。3.DWR会根据你的Java类动态的生成Javascript代码。这些代码的魔力是让你感觉整个Ajax调用都是在浏览器上发生的,但事实上是服务器执行了这些代码,DWR负责数据的传递和转换。4.这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI机制。而且这一过程还不需要额外的浏览器插件。5.Java是同步的,而Ajax是异步的。所以当你调用一个远程方法时,你要给DWR一个回调函数,当数据从网络上回来时,DWR会调用这个函数。DWR的作用:1.客户端代码不再需要直接处理XMLHttpRequest对象或者服务器的响应。2.不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成XML。3.不再需要编写servlet代码把Ajax 请求调整成对Java 域对象的调用。2.7 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration.这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。 Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession.这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session. SessionFactory接口:SessionFactroy接口负责初始化Hibernate.它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory. Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFac Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。2.8 StrutsStruts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。其最初萌芽于Craig McClanahan的构思,诞生至今也一年有余了(译注2)。现在,Struts是Apache软件基金会旗下Jakarta项目组的一部分,其官方网站是/struts。由于Struts能充分满足应用开发的需求,简单易用,灵敏迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:1、模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面具体讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。2、视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。4、一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。132.9 SpringSpring作为实现J2EE的一个全方位应用程序框架,为我们开发企业级应用提供了一个健壮、高效的解决方案。所谓全方位,不得不说以下几个特点:1 非侵入式:对于写代码从来不考虑复用和移植的程序员来说,这一点根本就没有吸引力,那么请跳过。所谓非侵入式是指Spring框架的API不会在业务逻辑上出现,也就是说我们的业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。首先针对应用而言,这样我们才能将业务逻辑从当前应用中剥离出来,从而在其他的应用中实现复用;其次针对框架而言,由于业务逻辑中没有Spring的API,所以业务逻辑也可以从Spring框架快速的移植到其他框架。2 容器:Spring提供容器功能,容器可以管理对象的生命周期,对象与对象之间的依赖关系。你可以写一个配置文件(通常是xml文件),在上面定义对象的名字,是否是单例,以及设置与其他对象的依赖关系。那么在容器启动之后,这些对象就被实例化好了,你直接去用就好了,而且依赖关系也建立好了。3 IOC:控制反转,谓之“依赖关系的转移”,如果以前都是依赖于实现,那么现在反转为依赖于抽象吧,其实它的核心思想就是要面向接口编程,至于何谓接口何谓抽象,以及它们的好处,多看看设计模式吧,这里就不费口舌了。 4 依赖注入:建立对象与对象之间依赖关系的实现,包括接口注入、构造注入、set注入,在Spring中只支持后两种5 AOP:面向方面编程,我们可以把日志、安全、事务管理等服务(或功能)理解成一个“方面”,那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好;首先业务逻辑不纯净,其次这些服务被很多业务逻辑反复使用,完全可以剥离出来做到复用。那么AOP就是这些问题的解决方案,我们可以把这些服务剥离出来形成一个“方面”,以期做到复用;然后将“方面”动态的插入到业务逻辑中让业务逻辑能够享受到此“方面”的服务其他还有一些特点不是Spring的核心,这里只做简单陈述,如:对JDBC的封装与简化,提供事务管理功能,对O/R mapping工具(hibernate、iBATIS)的整合;提供MVC解决方案,也可以与其他web框架(Struts、JSF)进行整合;还有对JNDI、mail等服务进行封装。142.10 Myeclipse 要说MyEclipse,得先介绍一下Eclipse! Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。 而MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类:1. J2EE模型2. WEB开发工具3. EJB开发工具4. 应用程序服务器的连接器5. J2EE项目部署服务6. 数据库服务7. MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。3 系统概要设计3.1 需求分析 一般商场,拥有4-5万种商品,较大的批发市场有8-10万种商品,这些都只占商品总类的很少的一部分,据说全球拥有150多万种商品,有人说,如果加上各种类型的服务商品,商品的种类就更多了,但是,一个商店(场)不可能穷尽所有的商品,于是就形成了各种类型的商店或市场,及其相应的核心商品或者服务的竞争力,所谓商品错位经营也就在于此。就网上商店而言,从理论上说具有超

温馨提示

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

评论

0/150

提交评论