基于SSH团购网站的设计与实现_第1页
基于SSH团购网站的设计与实现_第2页
基于SSH团购网站的设计与实现_第3页
基于SSH团购网站的设计与实现_第4页
基于SSH团购网站的设计与实现_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、文华学院文华学院 毕毕业业设设计计(论论文文) 题目题目: 基于基于 SSHSSH 团购网站的设计与实现团购网站的设计与实现 学学 生生 姓姓 名:名: 学号:学号: 学学 部部 (系):(系): 专专 业业 年年 级:级: 指指 导导 教教 师:师: 职称或学位:职称或学位: 2015 年 05 月 20 日 目 录 摘摘 要要 .IIII ABSTRACTABSTRACT .IIIIII 1 1 引引 言言 .1 1 1.1 研究背景和意义 .1 1.2 国内外研究现状 .1 1.3 本文的主要工作 .3 2 2 团购网站现状团购网站现状 .4 4 2.1 团购网站的主要设计思想 .4 2

2、.2 团购网站需求分析 .4 2.3 团购网站的可行性分析 .4 2.4 本章小结 .4 3 3 系统设计系统设计 .6 6 3.1 概要设计 .6 3.2 系统技术的应用及介绍 .7 3.3 系统模块的实现 .12 3.4 程序中主要的包 .17 3.5 数据库设计 .18 3.4 本章小结 .20 4 4 系统实现系统实现 .2 21 1 4.1 实验环境 .21 4.2 实验结果与分析 .23 5 5 结束语结束语 .2 23 3 5.1 论文主要工作 .23 5.2 有待进一步解决的问题 .24 参考文献参考文献 .2525 团购网站 摘 要 随着互联网的在我国逐渐普及,以及社会消费观

3、念和生活方式的变化,电商这种 全新的商业模式慢慢融入了人们的生活中。电子商务正在扮演着愈来愈重要的基础设 备平台作用,聚集了无数的生产信息、贸易信息与消费信息,深刻影响着消费行为、 企业状态与创造社会价值方式,对我国经济的发展远远超过工业时代。通过知名门户 网站,人们可以深居简出地寻找自己需要的物品,通过访问不同的网上商城,消费者 可以找出哪种商品性价比最高,给自己极大地选择空间;下订单后,你可以很快得到 自己想要的物品,这给顾客节省很多时间和精力;对于厂家来说,库存风险极大的被 避免了,客户的需求就是他们采购商品的标准,大大地提高了效益。 团购网站主要以 J2EE 作为开发基础,使用了 st

4、ruts2+spring+hibernate 等 J2EE 框架及几种前端技术,MyEclipse 作为开发工具,以 ADOBE 公司的 Photoshop 作为界面 美化工具。实现了文华团购基本的管理模块,包括:注册、登录、退出,用户信息修改; 商品管理,公告管理,订单管理,购物车管理。该系统界面简单、操作方便,容易维 护。 关键词:关键词:SSH; 团购网站;JAVA;购物 Group Purchase Website Abstract Under the rapid development of the network, and change of peoples consumption

5、 concept and the way of life, business the lasted commercial m odel has gradually integrated into peoples lives.Electronic commerce is pla ying an increasingly important role in infrastructure platform,gathered a mas sive production information, transaction information and consumer informati on, pro

6、foundly changing consumer behavior, enterprise form and social value creation, the profound significance to our country economy is far more than the industrial age.The enterprise portal, people can remain within doors to fi nd their own items required,through the different virtual mall visit, custom

7、 er can find the most cost-effective products heir choices greatly; through or der, you can quickly get the goods, the customer to save a lot of time and en ergy; for manufacturers, can greatly reduce the inventory risk, according to customer needs, on-demand procurement and production, greatly impr

8、oves th e efficiency. Group purchase website mainly uses J2EE as the basis of developme nt, use struts+spring+hibernate and other protocol or technology, using MyEc lipse as a development tool, using Macromedias Dreamweaver as the inter face landscaping tools. The basic realization of the main funct

9、ion of group purchase site should module, including: user registration, login, logout, query, modify personal information; commodity management,shopping cart manage ment, order management. The system interface is simple, easy to operate, ea sy to maintain. Keywords: SSH; group purchase website; Java

10、; shopping 1 引 言 1.1 研究背景和意义 团购作为一种近些年来兴起的电子商务模式,因其廉价、开放,创新性等优势 越来越被社会所认可,融入大众生活。 1.1.1 Java 平台介绍 Sun Microsystems 公司在 1995 年 5 月发明了全新的程序设计语言 Java。Java 的 魅力在与其鹤立鸡群的优点:跨平台、安全、动态 Web,随之,Java 迅猛发展并了加 快了 web 开发。在常见的操作系统上安装 Java 平台之后,Java 程序即可运行。如今 Java 平台已经渗透到了 99%的操作系统。只用编译一次 Java 程序,系统中就可以运行 各种 Java 程

11、序。Java 有三个体系 JavaSE(标准版),JavaEE(企业版),JavaME(微型版)。 2009 年 04 月 20 日,oracle 公司在 2009 年将 sun 公司收购,因此 java 归于甲骨文公 司。 1.1.2 Java 平台的优点 Java 作为一种面向对象的,安全性高的,分布式的,结构中立的,移植性高的, 多线程的程序设计语言备受欢迎。 Java 是简明的。Java 语法与其他编程语言很接近,因此很多程序员比较容易学会 和使用 Java。另外,Java 舍弃了 C+ 中不常用的、难懂的、让人困惑的那些特性,例 如操作符重载、多层继承、强制类型转换。而且,Java

12、没有指针概念,还设计了自动 的垃圾收集机制,大大地减少了程序员对内存管理的困扰。 Java 是面向对象的。Java 语言保持了类、接口以及继承等原始概念,为了语言更 简单,Java 仅支持类与类之间的单继承,但接口之间允许多继承,并支持类实现接口 的机制。Java 各方面支持动态绑定,这方面胜过 C+。总而言之,Java 是一种纯粹的 面向对象程序设计语言。 Java 是分布式的。Java 支持网络应用的开发,在基础的 Java 应用接口中包含一个 用于网络开发的编程接口(),它维持了用于网络开发的类库,比如 URL、URLConnection、Socket、 ServerSocket 等。其

13、中远程启动机制也是分布式应用 开发中的关键手段。 Java 是安全的。Java 总是应用在网络开发中。所以,Java 设计了一个安全机制来 防止存心破坏。除了具备的这些安全优势以外,Java 对使用网络下载的类提供了一个 安全防御措施,如各样命名空间来替代本地的同名的类、字节码检验,还提供安全管 理措施让程序具有安全保障。 1.1.3 团购网站的优点 团购网站运营的特点与优势团购因为购买的都是大件商品,大件商品消费者一般需 要看到商品实物他才买的放心。所以团购一般都是在一定区域范围内进行,所以团购 网站最大的特点就是具有区域(本地)性。区域性这一特点能够带给消费者在产品质 量上、交易的安全上、

14、售后服务上得到很好的保障,而这些保障在普通的购物网站上 目前是无法达到的。特别是对于一些贵重商品,消费者大多不会在网络上进行购买、 交易,相较而言,当地的的团购网站才更容易获得当地消费者的亲赖。 团购网站是一个将当地消费者与企当地业或商家紧密结合,以团购网站为平台作为 应用的一个电子商务特性显著的项目。他的访问用户大都是具有一定消费能力并且是 正准备要进行消费行为的当地老百姓网民,并且不论从区域、购买消费需求上都相对 聚合,使得团购网站的商业价值明显高于当地其他任何类型的网站尤其是单纯的信息, 新闻类网站。所以,团购网站是一个市场需求旺盛、盈利模式清晰,简单易操作的可 行性很高的电子商务网站项

15、目。 团购网不同于一般的地方门户、分类信息等这一类网站,在 IT 尤其是网站运营领域 如果已经存在一强,那么竞争的难度将非常的大,而且对于盈利遥遥无期,通常都是 让网站管理者失去信心而最终关闭自己的辛辛苦苦经营打理的网站。而团购网站因为 它拥有非常强烈的“区域特性”、“商业盈利特性”,即使在同一城市,同一地区已 经有了多家团购网站,仍然能够很好的避开正面的竞争,例如各自在具体地理位置上 的不同,在商品类别上有自己的侧重点、价格优势、服务优势、商家合作模式上等。 因为对于参加团购的消费者来说首先要满足在地理位置上的方便;二是要有所需求的 商品并且价格上便宜明显。团购网站由于区域性强,所以对于网站

16、管理者来说操作方 便、推广的目标群体和方式明确,对于消费者来说参加网站组织的团购活动能够实在 给他带来实惠,所以在推广难度上也相对较小,并且往往会产生以,一传十,十传百 的效应。人们的生活是在不断的消费、购物,所以团购也不会停止团购网站也就有了 持续的赢利来源。 1.2 国内外研究现状 现在,在团购网站和团购帖子的“省钱才是硬道理”的号召之下,小到图书、软件 、玩具、家电、数码、手机、电脑、体育器材、健身器材、运动休闲服装、体育用品 等小商品,大到家居、建材、房产等价格不很透明的商品,都有消费者因网络聚集成 团购买。不仅如此,网络团购也扩展到健康体检、保险、旅游、教育培训以及各类美 容、健身、

17、休闲等服务类领域。网络团购目前已在上海、北京、广州等大型城市流行 起来,并逐渐发展成为一种新型的消费模式。城市团购网正是顺应时代发展的要求, 结合中国电子商务的实际所搭建网络团购平台,为广大商家和业主提供最专业的团购 服务。 自 2010 年 1 月,中国第一家团购网站“满座网”上线之后,美团网、拉手网、糯 米网等团购网站相继上线,一时间,形成了团购网站遍地开花的局面。据 CNNIC 的数 据不完全统计,截止到 2011 年 3 月,中国团购网站已经多达 3600 余家,月增长速度 接近 30。尽管中国电子商务消费市场及 O2O 模式存在较大的生长空间,但是目前, 团购商品品类特色品类较少、团

18、购商品服务质量缺失等问题对于吸引及留住消费者存 在巨大的障碍。清科研究中心预计,随着市场竞争的不断加剧,部分中小型团购网站 将面临淘汰,部分区域型团购网站将可能被并购。 现有团购网站的格局是,在很多消费者还为能够拥有一个餐厅的八折贵宾卡,或 是某家会所的高级会员待遇而窃喜的时候,网络达人们已经用三折、两折,甚至零点 几折的超低团购价开始了全新消费体验。2010 年 6 月 1 日,搜狐在门户网站中首个进 入团购领域。搜狐的杀入,被看作是团购网站迎来的最重量级的选手。而今,SNS、微 博等已成为门户网站的“标配”,要想在门户的竞争中取得先机,必须选择更多的新 兴业务。因此,搜狐引领团购风潮后,未

19、来还将有更多的门户网站杀入这一领域。 1.3 本文的主要工作 本课题的主要内容是团购网站的设计与实现,分为前台展示和后台管理。前台给用 户提供商品商品展示以及用户登陆注册,用户购买商品加入购物车到最后生成订单和 付款。后台是网站管理员用来管理商品、分类、公告和订单状态的修改等。 2 团购网站现状 2.1 团购网站主要设计思想 (1)系统应符合团购网站管理的规定,满足信息行业相关人员日常使用的需要,并达 到操作过程中的直观,方便,实用等要求; (2)系统采用模块化分层设计方法,既便于系统功能的各种组合和修改,又便于未参 与开发的技术维护人员补充,维护; (3)系统应具备数据库维护功能,及时根据用

20、户需求进行数据的添加、删除、修改、 备份等操作; (4)尽量采用现有软件环境及先进的管理系统开方案,从而达到充分利用现有资源, 提高系统开发水平和应用效果的目的。 2.2 团购网站需求分析 伴随着信息行业的蓬勃发展和人们办公自动化意识的增强,团购网站销售管理部门 的的工作也越来越繁重,原来的基于 SSH 技术的团购网已经不能完全满足相关人员使 用的需要。为了协助信息行业开展团购网站销售管理工作,提高工作效率,充分利用 信息行业的现有资源,开发更好的基于 SSH 技术的团购网势在必行。 基于 SSH 技术的团购网采用 B/S 结构、结合网络数据库开发技术来设计本系统。开发 语言采用 JSP,数据

21、库使用 MySQL5.6 数据库。完成以下基本功能: 本系统是一个独立的系统,用来解决团购网站的管理问题。采用 JSP 技术构建了一个 有效而且实用的团购网站管理平台,目的是为高效地完成对团购网站的管理。 该项目是一个基于 JSP 技术的团购网站,其设计内容模块以及功能如下: 1.系统管理:用户登录,修改密码,退出系统; 2.用户管理:包括管理员、会员、普通访客; 3.团购产品介绍:(多角度查看,名称,价格等),可对产品进行多条件查询,查 看团购时间; 4.产品团购:(须登录才可操作,可在线参与团购产品); 5.订单管理:注册会员登录后可在线修改自己的团购信息等; 6.后台管理(产品管理,用户

22、管理,订单管理,公告管理)。 整个设计的内容及以上的功能都会对后台数据库内相应涉及到的数据表中的数据进行 存储、删除、修改、查询等操作,最终提交的设计报告也包含了从最初的需求分析到 网站建设成功的具体说明,以及数据存储更新过程等整个设计的各流程环节详细说明。 基于 SSH 技术的团购网具有标准基于 J2EE 技术的团购网所具有的现实中完整的团 购网站销售管理步骤,完全的虚拟现实实现。真正实现节约资源、提高效率、业务处 理的同时真正实现基于 J2EE 技术的团购网的功能作用。 2.3 团购网站的可行性分析 2.3.1 经济可行性 经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行

23、和维护 费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作 为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后团购网 站管理提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系 统将获得的效益,并将费用与效益进行比较,看是否有利。 2.3.2 技术可行性 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满 足开发的需求等。基于 J2EE 技术的欢乐团购网用的是 JSP 开发语言,调试相对简单, 当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件 方面:由于目前 BS 模式软件相对发展成熟,故

24、软件的开发平台成熟可行,它们速度快、 容量大、可靠性能高、价格低,完全能满足系统的需求。 2.3.3 运行可行性 对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等) 和后果进行估计和评价。运行可行性是对组织结构的影响,现有人员和机构和环境对 系统的适应性及人员培训补充计划的可行性。当前我国信息化技术已经相当普及,各 类操作人员水平都有相当的高度,所以在运行上是可行性的。 本系统的开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各 种报表形式的输出。采用流行的 JSP+MySQL 体系,已无技术上的问题。 2.4 本章小结 本章简单描述了团购网站的主要设计思想

25、,团购网站现状,需求分析以及分别从三 个方面分析了团购网站的可行性。 3 系统设计 3.1 概要设计 从程序功能上区分,团购网站分为前台展示和后台管理。用户在购物过程中,如 果要将商品加入购物车,这时系统会对用户登陆状态进行判断 。如果用户已经登录, 则可以成功将商品加入购物车,不然就提示用户登陆或者新用户注册。在付款时,用 户可以选择在线支付或者货到付款。网站管理员通过后台可以对商品、商品分类、订 单以及公告进行增删改查。 3.1.1 整体模块 主要研究运用 JavaEE 的 Struts2、Spring 和 Hibernate 这三大开源框架,来开发 上购物系统。层次模块结构是将系统划分为

26、若干子系统,子系统下再划分为若干的模 块。而模块是指具备输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。 在结构化系统设计中,模块一般都是按功能划分的,通常成为功能模块。根据需求分 析,团购网站系统的功能结构图如下所示: 3.1.2 前台流程 文华团购 账 户 管 理 模 块 账 户 管 理 模 块 账 户 管 理 模 块 账 户 管 理 模 块 账 户 管 理 模 块 3.2 系统技术的应用及介绍 3.2.1 JSP 技术及其原理 JSP(java server pages)是由 SUN 公司在 servlet 基础上开发出来的一种动态网页 制作技术,其可是您可以将网页中的动态部分

27、和静态的 HTML 相分离。您可以使用平常 得心应手的工具并按照平常的方式来写 HTML 句子。然后,将动态部分用特殊的标记嵌 入即可,这些标记常常以“”结束。通常,您要将文件以”.jsp” 为扩展名,并将它放置到任何您可以放置普通 WEB 页面的路径下。尽管 JSP 文件看起 浏览商品 购买商品 是否登陆 是否 加入购物车继续购物 登陆 去结算 填写收货人信息 选择支付方式 货到付款在线支付 生成订单生成订单 等待发货 选择银行 完成支付 来更像是 HTML 文件而不是 servlet 文件,但,事实上,他恰恰将装换为 Servlet 文件。 其中的静态 HTML 仅仅用来输出 Servle

28、t 服务方法返回的信息。如果 JSP Pages 已经被 转换为 Servlet 且 Servlet 被编译进而被转载(在第一次被 Request 时),但您再次 Request 此 JSP 页面时,将察觉不到一瞬的延迟。 JSP 有 4 个关键成分:指令、动作、scriptlet 和标签库。指令是指那些发送给 JSP 容器的消息,他是程序能够指定页面的设置、包含其他资源中的内容和指定 JSP 中 使用的定制标签库。动作将功能封装在预定义的标志中,然后程序员可以将他们(预 定义标志)嵌入 JSP 中。通常根据发送给服务器的特定客户请求中的信息来执行动作。 他们可以创建在 JSP scriptl

29、et 中使用 Java 对象。Scriptlet,及脚本元素,使程序 员能够插入与 JSP 中的组件(和其他 Web 应用程序组件)进行交互的 Java 代码,已处 理请求。标记库是标志扩展机制的一部分,它使程序员能够创建定制的标志,这是标 记使得程序员能够操作 JSP 能容。当用户第一次请求或者刷新一个 JSP 页面时,JSP 容 器首先是要找到这个 JSP 页面的源代码文件,然后开始处理,把这个 JSP 源文件翻译 成 java 代码文件。当用户请求这个文件时,需要 JSP 容器来处理这个文件。 3.2.2 JDBC 介绍 JDBC,是用于执行 SQL 语句的 Java 应用程序接口,是一

30、套 API 集合,在这个集合中 设置了许多允许 Java 程序连接数据库的框架。JDBC 有一组用 Java 语言写成的类和接 口组成,是一种连接不同数据库的规范,其宗旨是让个数据库开发商为 Java 程序提供 标准的数据库访问类和接口。JDBC 与 Java 结合,是用户可以很容易的把 SQL 语句传送 到任何关系数据库中,程序员用他编写的数据库应用程序,可以在各种数据库系统上 运行。这是真正的可移植性的软件所必须具备的一个特点。JDBC 已经被业界普遍采用, 而且是 Java 在服务器成功的主要因素。JDBC 驱动程序是依靠独立的软件公司开发的。 JDBC 驱动程序适合特定的数据库系统和数

31、据访问模型,主要的那些数据库系统都有对 应的驱动程序,例如:Microsoft、oracle、Infomix、Sybase、Postgress、MySQL 等 等。 3.2.3 MVC 模式的介绍 MVC 是一种体系结构模式,代表 Model-View-Controller,是应用于交互式系统的一 种体系结构模式。MVC 产生于 20 世纪 70 年代 Palo-Alto 实验室的 Smalltalk 编程环境。 MVC 模式指导模块的职责分配和模块之间的通信协议。职责分配时面向对象分析和设计 中最重要的工作,协议设计则是相当困难的工作。MVC 为这两项工作提供了指导,所以 意义重大。Mode

32、l 是应用程序对象,也就是包含应用程序数据和业务逻辑的对象。 Model 对外表现为一个对象,实际上可以也应用是一组子对象的集合。 传统意义上的 View 是屏幕对象,负责向用户显示交互界面。这个意义可以进行扩 展,将 View 视为向外界展现应用程序状态的借口和界面。所有的用户输入都由 Controller 负责处理。在交互系统中,Controller 是导致 Model 发生变化的唯一原因, 是导致 View 发生变化的两个原因之一,因为是控制中心。Controller 将用户事件翻译 成为请求,而不是命令。如果机械地遵循 MVC 的规则,Controller 的逻辑将十分复杂。 Cont

33、roller 通常需要查询 View 和 Model 才知道如何处理用户输入。不要把所有逻辑写 在 Controller 里。View 和 Model 都是有智能的对象。可以通知他们,有他们自己决定 应对的方式。 一个应用程序或者组件只能有一个 Model,但是这个 Model 可以对应多个 View。View 向 Model 注册,要求在 Model 的数据发生变化时获得通知消息。View 得到 的通知消息之后,获取 Model 的相应数据,更新自己的显示。View 不向 Model 发送消 息。一个 View 对应一个 Controller。View 负责创建和初始化 Controller

34、,这也是 View 和 Controller 关系密切的原因之一。Controller 接收用户输入,如果有与应用 程序数据无关,而只涉及显示变化的用户的输入,Controller 直接通知 View。 Controller 和 View 关系密切的另一个原因是现代应用程序界面复杂,灵活多变。 因此 Controller 需要大量了解 View 的情况,大量查询 View 的信息,距离太远不利于 效率和灵活性,协议也很难设计,所以经常捆绑在一起。例如,目前基于控件的图形 界面,很多控件实际上市一个封装号得 MVC 实体,通过属性、事件和方法与外界协同 工作,强行拆分反而适得其反,应为一个 Mo

35、del 对应多个 View,一个 View 对应一个 Controller,所以一个 Model 对应多个 Controllers。Controller 接收外部输入,是 导致 Model 发生变化的唯一原因。同时,Model 的变化可能导致 Controller 行为的变 化。 3.2.4 Struts2 介绍 Struts 2 是 Struts 的下一代产品。是在 struts 和 WebWork 的技术基础上进行了 合并,全新的 Struts 2 框架。其全新的 Struts 2 的体系结构与 Struts 1 的体系结构 的差别巨大。Struts 2 以 WebWork 为核心,采用拦

36、截器的机制来处理用户的请求,这 样的设计也使得业务逻辑控制器能够与 Servlet API 完全脱离开,所以 Struts 2 可以 理解为 WebWork 的更新产品。因为 Struts 2 和 Struts 1 有着太大的变化,但是相对 于 WebWork,Struts 2 只有很小的变化。 Struts2 的体系与 Struts1 体系的差别非常大,因为 Struts2 使用了 WebWork 的设 计核心,而不是 Struts1 的设计核心。Struts2 中大量使用拦截器来处理用户的请求, 从而允许用户的业务逻辑控制器与 Servlet API 分离。 Struts2 框架的大概处理

37、流程如下: 加载类(FilterDispatcher) 读取配置(struts 配置文件中的 Action) 派发请求(客户端发送请求) 调用 Action(FilterDispatcher 从 struts 配置文件中读取与之相对应的 Action ) 启用拦截器(WebWork 拦截器链自动对请求应用通用功能,如验证) 处理业务(回调 Action 的 execute()方法) 返回响应(通过 execute 方法将信息返回到 FilterDispatcher) 查找响应(FilterDispatcher 根据配置查找响应的是什么信息如: SUCCESS、ERROER,将跳转到哪个 jsp

38、 页面) 响应用户(jsp-客户浏览器端显示) 一个请求在 Struts2 框架中的处理分为以下几个步骤: 客户端发出一个指向 servlet 容器的请求(tomcat); 这个请求会经过图中的几个过滤器,最后会到达 FilterDispatcher 过滤器。过滤 器 FilterDispatcher 是 struts2 框架的心脏,在处理用户请求时,它和请求一起 相互配合访问 struts2 的底层框架结构。在 web 容器启动时,struts2 框架会自动 加载配置文件里相关参数,并转换成相应的类。如: ConfigurationManager、ActionMapper 和 ObjectF

39、actory。ConfigurationManager 存有配置文件的一些基本信息,ActionMapper 存有 action 的配置信息。在请求 过程中所有的对象(Action,Results, Interceptors,等)都是通过 ObjectFactory 来创建的。过滤器会通过询问 ActionMapper 类来查找请求中需要 用到的 Action。 如果找到需要调用的 Action,过滤器会把请求的处理交给 ActionProxy。 ActionProxy 为 Action 的代理对象。ActionProxy 通过 ConfigurationManager 询问框 架的配置文件,

40、找到需要调用的 Action 类。 ActionProxy 创建一个 ActionInvocation 的实例。ActionInvocation 在 ActionProxy 层之下,它表示了 Action 的执行状态,或者说它控制的 Action 的执行步 骤。它持有 Action 实例和所有的 Interceptor。 ActionInvocation 实例使用命名模式来调用,1. ActionInvocation 初始化时, 根据配置,加载 Action 相关的所有 Interceptor。2. 通过 ActionInvocation.invoke 方法调用 Action 实现时,执行 I

41、nterceptor。在调用 Action 的过程前后,涉及到相关 拦截器(intercepetor)的调用。 一旦 Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到 对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个 Action 链)一个 需要被表示的 JSP 或者 FreeMarker 的模版。在表示的过程中可以使用 Struts2 框架中 继承的标签。 3.2.5 Hibernate 介绍 面向对象技术在最近 10 年多年中得到了极大的发展,现在大多数企业系统都是采 用面向对象技术进行开发的,而这些企业系统均使用关系型数据

42、库永久保存数据。在 企业应用系统中,涉及的业务实体会使用对象和关系数据这两种表现形式,业务实体 在内存中表现为对象,而在数据库中表现为关系数据。内存中的对象之间会有关系、 继承和多态等面向对象的特性,而数据库中的数据之间则无法直接表达这些特性。因 而需要一种神奇的技术,可以实现对象与关系数据库中数据之间的自由装换,而对象/ 关系映射(Object/Relational Mapping,ORM)框架的功能正是如此。 在开发企业应用系统中使用 ORM 框架可以避免直接使用 SQL 语句对关系型数据库中的 数据进行操作,而是借用 ORM 框架把数据库中的数据装换为对象,通过操作这些对象 实现对数据库

43、中数据的 CRUD 的操作。 使用 ORM 框架不仅可以减少代码编写的工作量,并且提高了产品质量。因为采用传统 的 JDBC 编程来访问数据库,需要在 Java 程序代码中嵌入大量琐碎且价值不高的代码, 而使用 ORM 框架后这些代码的数量就大大减少了。同时一个成熟的 ORM 框架产品不仅 把对象与数据库中的数据进行映射,解决关系数据与对象的不匹配问题,还把面向对 象思想贯切在一个系统的分析、设计、编程、及测试等方面,并且为了提高访问数据 库的性能,降低访问数据库的频率,引入了多线程、缓存及实务管理等很多细节技术。 Hibernate 的基础代码包括 POJO 和 Hibernate 映射文件

44、。 Hibernate 配置文件主要用于配置数据库连接和运行时所需要的各种属性。主要配 置内容为:SessionFactory 中的数据库 URL 配置、数据库 JDBC 驱动配置、数据库用户 名配置、数据库用户密码配置、数据库适配器配置,映射文件配置等等。 Session 是 Hibernate 持久化操作的基础。这里的 Session 与传统意义上的 Web 层 HttpSession 没有什么关系。Hibernate Session 之间 Hibernate,相当于 JDBC Connection 之与 JDBC。 Session 通过 Session session=sessionFa

45、ctory.openSession();得到, Session 作为贯穿 Hibernate 的持久化管理器核心,提供了众多持久化方法,如 save、update、delete、find 等。通过这些方法我们就可以操作数据库了。 Session 是一个轻量级对象。通常每一个 Session 实例和一个数据库事务绑定,也 就是说,没执行一个数据库事务,都应该先创建一个新的 Session 实例。如果事务执 行中出现异常,应该撤销事务。不论事务执行成功与否,最后都应该调用 Session 的 close()方法,从而释放 Session 实例占用的资源。 3.2.6 Spring 介绍 Sprin

46、g 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的 复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。 然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度 而言,任何 Java 应用都可以从 Spring 中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能 范围: 任何 Java 应用简单来说,Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP) 的容器框架。 轻量从大小与开销两方面而言 Spring

47、 都是轻量的。完整的 Spring 框架可以在 一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足 道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。 控制反转Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。当 应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自 己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依 赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面Spring 提供了面向切面编程的

48、丰富支持,允许通过分离应用的业务 逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内 聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们 并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种 容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型 (prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新 的实例以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重 量级的 EJB 容器,它们经常是庞大

49、与笨重的,难以使用。 框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应 用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础 功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它 们也为 Spring 中的各种模块提供了基础支持。 3.2.7 SSH 整合 JSP2 与 Struts2 标签库坐阵视图层,Struts2 的核心控制器与业务控制充当控制层, Hibernate 与各业务逻辑组件处理业务层事务,最后由 Spring 统

50、管 Bean 资源,对整个 应用的 JavaBean 实例资源进行统一管理与调度。这样使三个开源框架有机地整合起来 并更好地发挥它们的优势,实现了系统多层开发的低耦合,提高了 JavaEE 应用开发的 效率。 3.3 系统模块实现 3.3.1 分类管理 商品分类管理模块就是管理员在后台管理页面对商品的所属分类进行增删改查, 如下图所示: 商品分类主要代码: Scope(prototype) Controller(productCategoryAction) public class ProductCategoryAction extends BaseAction implements Mode

51、lDriven private static final long serialVersionUID = 1L; private ProductCategory category = new ProductCategory(); Override public ProductCategory getModel() return category; Override public String add() throws Exception if(pid != null / 层次加 1 category.setLevel(parent.getLevel() + 1); return INPUT;

52、public String save() throws Exception if(pid != null /设置其父节点 categoryDao.saveOrUpdate(category);/添加类别信息 return list();/返回类别列表的查找方法 public String list() throws Exception Object params = null;/对象数组为空 String where;/查询条件变量 if(pid != null /执行查询条件 params = new Integerpid;/设置参数值 else where = where parent i

53、s null;/查询根节点 pageModel = categoryDao.find(pageNo,pageSize,where,params);/执行封 装的查询方法 return LIST;/返回后台类别列表页面 3.3.2 商品管理 主要有商品的添加与查看 后台商品管理: 商品管理主要代码如下: Scope(prototype) Controller(productAction) public class ProductAction extends BaseAction implements ModelDriven private static final long serialVers

54、ionUID = 1L; /* * 根据 id 查看商品信息(查看后更新人气点击次数) */ public String select() throws Exception if(product.getId() != null product.setClickcount(product.getClickcount() + 1); productDao.update(product); return SELECT; /* * 根据类别 id 查询所有商品信息 */ public String getByCategoryId() throws Exception if(product.getCat

55、egory().getId() != null) String where = where category.id = ?; Object queryParams = product.getCategory().getId(); pageModel = productDao.find(pageNo, pageSize, where, queryParams); return LIST; /* * 新品上市 */ public String findNewProduct() throws Exception Map orderby = new HashMap();/定义 Map 集合 order

56、by.put(createTime, desc);/为 Map 集合赋值 pageModel = productDao.find(1, 5, orderby );/执行查找方法 image.put(url, 01.gif);/设置副标题图片 return list;/返回商品列表页面 3.3.3 订单管理 管理员在后台可以看到所有订单列表,并且能够修改订单状态和删除订单,管理订 单如下图所示: 订单管理的主要代码如下: /* * 将订单保存到数据库 */ public String save() throws Exception if(getLoginCustomer() != null)/如

57、果用户已登录 order.setOrderId(StringUitl.createOrderId();/ 设置订单号 order.setCustomer(getLoginCustomer();/ 设置所属用户 Set cart = getCart();/ 获取购物车 if(cart.isEmpty()/判断条目信息是否为空 return ERROR;/返回订单信息错误提示页面 / 依次将更新订单项中的商品的销售数量 for(OrderItem item : cart)/遍历购物车中的订单条目信息 Integer productId = item.getProductId();/获取商品 ID

58、ProductInfo product = productDao.load(productId);/装载商品对象 product.setSellCount(product.getSellCount() + item.getAmount(); productDao.update(product);/修改商品信息 order.setOrderItems(cart);/ 设置订单项 order.setOrderState(OrderState.DELIVERED);/ 设置订单状态 float totalPrice = 0f;/ 计算总额的变量 for (OrderItem orderItem :

59、cart) /遍历购物车中的订单条目信息 totalPrice += orderItem.getProductPrice() * orderItem.getAmount(); order.setTotalPrice(totalPrice);/设置订单的总价格 orderDao.save(order);/保存订单信息 session.remove(cart);/ 清空购物车 return findByCustomer();/返回消费者订单查询的方法 3.3.4 公告管理 团购网站为了让用户了解网站的动态信息,管理需要在后台更新公告,增加与永华 的互动性,后台管理图如下: 实现公告管理的主要代码:

60、 /* * 编辑公告 */ public String edit() throws Exception announcement = announceDao.findById(announcement.getId(); ActionContext.getContext().getValueStack().push(announcement); return EDIT; public String list() throws Exception String hql = from Announcement; Object queryParams = null; announcement = (A

温馨提示

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

评论

0/150

提交评论