版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、太原理工大学毕业设计(论文)任务书 第1页毕业设计(论文)题目:基于java的婴儿用品购物网站的设计与实现毕业设计(论文)要求及原始数据(资料):1综述国内婴儿用品质量和销售存在的问题;2综述国内婴儿用品的销售现状;3了解基于java的购物网站的代码编写;4设计并实现购物网站的整体框架;5深入分析购物网站中的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。 第2页毕业设计(论文)主要内容:1综述购物网站在互联网络中的应用;2了解购物网站的相关技术;3熟悉编写基于java的婴儿用品购物网站的开发环境;4分析编写基于java的婴儿用品购物网站的关键技
2、术;5掌握基于java的婴儿用品购物网站的Java程序编写;6设计与实现针对基于java的婴儿用品购物网站的程序。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):卜炟. 21天学通JavaWeb开发. 电子工业出版社, 2009HYPERLINK :/book.duxiu /search?sw=%E5%BC%A0%E6%B4%AA%E6%96%8C&Field=2&channel=search&ecode=UTF-8 张洪斌. 例解Java Web开发技术精
3、髓 .清华大学出版社, HYPERLINK :/ t _blank 2008张玲玲.深入体验Java Web项目开发. 清华大学出版社, HYPERLINK :/ t _blank 2011HYPERLINK :/book.douban /search/Budi Kurniawan Budi Kurniawan. Servle和JSP学习指南.机械工业出版社,2013黄彬华.大活Java:从零基础到数据库、Web开发. HYPERLINK :/book.jd /publish/科学出版社_1.html t _blank o 科学出版社 科学出版社,HYPERLINK :/book.jd /pu
4、blish/北京科海电子出版社_1.html t _blank o 北京科海电子出版社 北京科海电子出版社,2009潘浩. ECliPSE 基础与应用. 清华大学出版社,北京交通大学出版社, 2008梁普选. angdata /Book/default.aspx?id=Book_BK0030505 t _blank JAVA程序设计与网络编程. 清华大学出版社,北京交通大学出版社, 2007HYPERLINK :/book.jd /writer/Horstmann C.S._1.html t _blank Horstmann C.S. core java volume:advanced fea
5、tuers.HYPERLINK :/book.jd /publish/_1.html t _blank o 人民邮电出版社 人民邮电出版社, 2009Bryan Basham, Kathy Sierra, Bert Bates. Head First Javascript,OReilly Media, Inc,2008Bruce Eckel. Thinking In Java.l PTR_1.html t _blank o Prentice Hall PTR Prentice Hall PTR,2006专业班级学生要求设计(论文)工作起止日期2015年3月23日2015年7月3日指导教师签字日
6、期2015年3月23日教研室主任审查签字日期系主任批准签字日期基于java的婴儿用品购物网站的设计与实现摘要随着计算机硬件的发展和计算机网络的普及,网络的覆盖范围越来越广,网络的功能也越来越大,已经完全深入的大家的生活之中。现实生活中,大家对购物的需求也是十分巨大的,婴儿用品,作为一个庞大而且特殊的购物领域,占据着一个比较重要的地位,因此,结合当今技术以及广大消费者的需求,婴儿用品的网上购物应运而生,利用网络作为交易平台,改变传统的交易方式,使得交易活动不受空间和时间的限制,同时,又降低了交易的成本,并且,商品信息的更新也会更加实时和准确,消费者也可以了解更多的相关消息。婴儿用品网络购物平台的
7、出现,也可以在一定程度上将全世界的婴儿用品集中展现给消费者,是消费者有了更多的选择,也有了一定的安全保障。关键词:计算机硬件;计算机网络;网上购物A design and implementation of Baby products shopping website based on JavaAbstractWith the popularization and development of computer network and computer hardware, an increasingly wide range of network coverage, network funct
8、ion is also more and more big, has been completely thorough everyones life. In real life, everyone on the shopping demand is very huge, baby supplies, as a huge and special shopping areas, occupies an important position, therefore, combined with todays technology and the requirements of consumers, b
9、aby products online shopping network as a trading platform emerge as the times require, use, change the traditional the way of trading, making transactions are not limited by space and time, at the same time, but also reduce the transaction cost, and updating the information of products, will be mor
10、e real-time and accurate, consumers can also get more news.Baby supplies network shopping platform, also can in certain level admiral of the world baby activities focused on showing to the consumer is consumers have more choices, also have a certain degree of security.Key words:Computer hardware;com
11、puter network;online shopping目 录TOC o 1-3 h u HYPERLINK l _Toc1144 1 绪 论 PAGEREF _Toc1144 1 HYPERLINK l _Toc21982 1.1课题背景 PAGEREF _Toc21982 1 HYPERLINK l _Toc13551 1.2 系统开发背景 PAGEREF _Toc13551 1 HYPERLINK l _Toc26836 2 可行性分析 PAGEREF _Toc26836 4 HYPERLINK l _Toc21518 2.1技术可行性 PAGEREF _Toc21518 4 HYPE
12、RLINK l _Toc21966 2.2 操作可行性 PAGEREF _Toc21966 4 HYPERLINK l _Toc13884 2.3 经济可行性 PAGEREF _Toc13884 4 HYPERLINK l _Toc5143 3 系统需求分析 PAGEREF _Toc5143 5 HYPERLINK l _Toc11398 3.1 需求分析目标 PAGEREF _Toc11398 5 HYPERLINK l _Toc32487 3.2 系统功能需求分析 PAGEREF _Toc32487 6 HYPERLINK l _Toc24488 3.2.1 前台功能 PAGEREF _T
13、oc24488 6 HYPERLINK l _Toc29924 3.3 运行环境 PAGEREF _Toc29924 7 HYPERLINK l _Toc4391 3.4 安全性 PAGEREF _Toc4391 7 HYPERLINK l _Toc24875 4 系统分析与设计 PAGEREF _Toc24875 8 HYPERLINK l _Toc6313 4.1 系统所需知识与技术 PAGEREF _Toc6313 8 HYPERLINK l _Toc31169 4.1.1 Javascript PAGEREF _Toc31169 8 HYPERLINK l _Toc1329 4.1.2
14、 Ajax PAGEREF _Toc1329 9 HYPERLINK l _Toc18025 4.1.3 MVC PAGEREF _Toc18025 10 HYPERLINK l _Toc18715 4.1.4 Struts2 PAGEREF _Toc18715 11 HYPERLINK l _Toc23336 4.1.5 Hibernate PAGEREF _Toc23336 13 HYPERLINK l _Toc20231 4.1.6 Spring PAGEREF _Toc20231 14 HYPERLINK l _Toc19465 4.1.7 Eclipse开发工具 PAGEREF _T
15、oc19465 17 HYPERLINK l _Toc1816 4.2 系统功能模块设计 PAGEREF _Toc1816 18 HYPERLINK l _Toc19418 4.3 系统数据库设计 PAGEREF _Toc19418 19 HYPERLINK l _Toc14130 4.3.1 数据库表以及相应SQL语句 PAGEREF _Toc14130 19 HYPERLINK l _Toc13820 4.4 小结 PAGEREF _Toc13820 23 HYPERLINK l _Toc28187 5 系统功能模块实现 PAGEREF _Toc28187 23 HYPERLINK l _
16、Toc887 5.1 用户模块 PAGEREF _Toc887 24 HYPERLINK l _Toc14505 5.1.1 用户注册 PAGEREF _Toc14505 24 HYPERLINK l _Toc28147 5.1.2 用户登录 PAGEREF _Toc28147 26 HYPERLINK l _Toc29029 5.1.3 用户退出 PAGEREF _Toc29029 27 HYPERLINK l _Toc22348 5.2 导航模块 PAGEREF _Toc22348 27 HYPERLINK l _Toc1615 5.2.1 显示主导航 PAGEREF _Toc1615 2
17、7 HYPERLINK l _Toc719 5.2.2 查询某个主导航下的次级导航 PAGEREF _Toc719 28 HYPERLINK l _Toc11680 5.3 商品模块 PAGEREF _Toc11680 28 HYPERLINK l _Toc21868 5.3.1 首页热门推荐 PAGEREF _Toc21868 28 HYPERLINK l _Toc2494 5.3.2 首页最新商品 PAGEREF _Toc2494 28 HYPERLINK l _Toc15449 5.3.3 一级导航下商品展示 PAGEREF _Toc15449 28 HYPERLINK l _Toc32
18、195 5.3.4 二级导航下商品展示 PAGEREF _Toc32195 28 HYPERLINK l _Toc5634 5.3.5 商品详情 PAGEREF _Toc5634 29 HYPERLINK l _Toc16195 5.4 购物车模块 PAGEREF _Toc16195 29 HYPERLINK l _Toc5940 5.4.1 添加购物车 PAGEREF _Toc5940 29 HYPERLINK l _Toc22325 5.4.2 删除购物车项 PAGEREF _Toc22325 30 HYPERLINK l _Toc14053 5.4.3 清空购物车 PAGEREF _To
19、c14053 31 HYPERLINK l _Toc4905 5.5 订单模块 PAGEREF _Toc4905 32 HYPERLINK l _Toc15632 5.5.1 提交订单 PAGEREF _Toc15632 32 HYPERLINK l _Toc12597 5.5.2 显示我的订单 PAGEREF _Toc12597 33 HYPERLINK l _Toc13677 6 系统功能测试 PAGEREF _Toc13677 34 HYPERLINK l _Toc9275 6.1 测试方法的选择 PAGEREF _Toc9275 34 HYPERLINK l _Toc19743 6.2
20、 系统功能测试 PAGEREF _Toc19743 34 HYPERLINK l _Toc31609 6.2.1注册模块测试 PAGEREF _Toc31609 35 HYPERLINK l _Toc6790 6.2.2登陆模块测试 PAGEREF _Toc6790 36 HYPERLINK l _Toc3972 6.2.3购物车模块测试 PAGEREF _Toc3972 36 HYPERLINK l _Toc2253 6.2.4订单模块测试 PAGEREF _Toc2253 36 HYPERLINK l _Toc26645 6.3 系统测试总结 PAGEREF _Toc26645 37 HY
21、PERLINK l _Toc11522 总 结 PAGEREF _Toc11522 38 HYPERLINK l _Toc10585 参考文献 PAGEREF _Toc10585 39 HYPERLINK l _Toc14508 致 谢 PAGEREF _Toc14508 401 绪 论随着计算机硬件的发展和计算机网络的普及,网络的覆盖范围越来越广,网络的功能也越来越大,已经完全深入的大家的生活之中。现实生活中,大家对购物的需求也是十分巨大的,婴儿用品,作为一个庞大而且特殊的购物领域,占据着一个比较重要的地位,因此,结合当今技术以及广大消费者的需求,婴儿用品的网上购物应运而生,利用网络作为交易
22、平台,改变传统的交易方式,使得交易活动不受空间和时间的限制,同时,又降低了交易的成本,并且,商品信息的更新也会更加实时和准确,消费者也可以了解更多的相关消息。婴儿用品网络购物平台的出现,也可以在一定程度上将全世界的婴儿用品集中展现给消费者,是消费者有了更多的选择,也有了一定的安全保障。1.2 系统开发背景(注:以下内容摘自中国报告大厅婴儿用品行业市场调查分析报告婴儿用品行业前景分析。)据婴儿用品行业市场调查分析报告指出,我国城市新生儿用品的家庭月平均消费达900元。加上广大农村城镇地区婴幼儿的消费,单中国大陆的婴幼儿用品市场每年就有超过1000亿元的市场规模。因此,一些质量良好,口碑上乘的品牌
23、儿童用品的专卖店经营形式,将必然成为未来婴幼儿用品市场的主流消费模式。由此可以看出,婴幼儿商品的市场还是非常之大的。孕婴童市场可细分为孕妇、产妇、婴儿、幼童、小童、中童、大童这些年龄段,这里我们所研究的“孕婴童市场”主要是针对孕产期以及06岁年龄段的婴童消费市场。中国六岁以下儿童约1.71亿,城镇儿童总数约7700万,中国婴儿用品市场深度评估及投资前景预测报告统计显示,儿童用品家庭月消费额九百多元。城镇婴童用品市场年消费总额是690亿。加上农村儿童用品市场及高速发展的孕产妇用品市场,现阶段中国06岁孕婴童产业市场零售总额高达一千亿。按现有的人口推算,中国的最高出生率大约出现在2016年,人口峰
24、值为2028年,该时期我们也将迎来第五轮“婴儿潮”。换言之,中国孕婴童产业尚有二十多年的牛市,市场容量逐步增至25003000亿元的庞然规模。自2000年,孕婴童产业进入快速成长期。同期中国年均GDP增长为9%,而业界普遍认为产业增长率达30%,企业在制定年度指标时,一般都将30%的增幅视为自然增长率,而相当部分的零售企业将下年度营业指标增长率锁定在50%200%。驱动孕婴童市场迅猛发展的便是80后父母的消费进取心。在零售终端与消费群体相互促动下,自2002年起,孕婴童市场格局衍生如下动变。其一,中国范围内,产业资源逐渐向零售商手中集中。自2002年开始,各大城市孕婴童用品专店专营风起云涌,门
25、店越开越大。行业内流行“小城市开大店,大城市多开店”,达成决胜终端的共识,“跑马圈地”盛行一时。零售门店离顾客最近,分享了市场上的“消费权力”,进而获得市场的主导权。其二,各大城市形成“寡头市场”。由二、三家规模较大的零售商共享了50%以上的市场份额,并攫取当地市场定价权,开始挤压弱势厂、商的生存空间。其三,市场进一步细分。03岁婴幼儿市场仍是消费的主力,孕产市场从产品结构到市场零售网点,填补大量空白点;36岁小童市场正逐步明确自身产品定位与专业销售通路。其四,零售业态多元化。在实体门店强势的商境中,虚拟门店如目录销售、网络销售风气已成,不少零售商往往二者并举,相得益彰。实体店铺越加丰富多样,
26、可分为三类:超市型、百货精品型、专卖店型。专卖店型门店多见于服饰类品牌,以业内较知名的厂家品牌为主。百货精品型门店大多面积较大,借鉴了百货商场专柜陈列方式,品牌形象彰显。超市型门店的营业面积多在50200平方米,发展迅速,是主流型态,盈利模式清晰而强势。除此外,尚有大卖场以及新型主题店、概念店。其五,孕婴童用品连锁经营来势汹涌。目前的连锁经营分为二类,一类是厂家品牌加盟店的拓展,二是地区市场零售商的直营连锁店。成长性让人望而生畏,短短四、五年间,孕婴童市场涌现了若干家营业额过亿甚至23亿的零售商。旁观者绝难想象仅在几年之前,她们的年营业额不过几百万元。业内专家指出,婴幼儿市场的高额利润,乃是吸
27、引投资者的主要原因。婴儿用品市场研究及未来发展趋势分析调查显示,我国每年有2000万至2500万婴儿出生,新生儿平均每年消费额在2000至5000元左右,充分显示出这是一个巨大的消费市场。眼见婴儿用品市场存在巨大的消费需求,商家自然不会等闲。一方面,许多大型商场都开辟了婴儿用品专区,产品包罗万象,应有尽有;另一方面,经营婴儿用品的专卖店也开始陆续出现。一些住宅生活区内,现都开有婴儿用品小店,生意同样红火。因此,可以看出,婴儿用品市场蕴藏着巨大的商机。2 可行性分析本系统采用的是JSP、Servlet和Oracle开发,Windows 7操作系统,用html进行前台网页界面设计、结合SSH框架、
28、采用JDBC方式与后台数据库进行连接,完成数据的添加、修改、删除、查询等功能。由于SSH框架灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,有如下特点:简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是比较重要的。 针对性:该平台是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。 实用性:该平台能完成商品展示和管理员管理的基本性质,具有良好的实用性。因此本系统使用SSH框架在技术方面可行。2.2 操作可行性 随着计算机的大量普及,绝大多数家庭都拥有计算机,这也为网购提供了一个便利条件,此系统对计算机要求并不高,几乎所有计
29、算机都可以浏览该网站,因此,操作方面,是可行的。 2.3 经济可行性 根据实际情况,把商品分类,提供商品查找、订单查询、商品管理、订单管理等小模块合成 并构成一个可执行的软件系统模型。使用户快速的搜索和查找到需要的产品和开发人员可以较快的确定需求,然后采用循坏进化的开发方式,对系统模型做连续的精化,将系统需具备的性质 逐渐增加上去,直到所有的性质全部满足。3 系统需求分析3.1 需求分析目标由于是一个购物网站,所以,一定要有一系列的网页来组成网站的界面,以供消费者浏览和挑选商品。结合当前网络上流行的几家电商网站的界面,在分析其所拥有的功能之后,回归到自己的这次设计上,根据自己现有的知识,分析出
30、自己所能完成的几个功能,并尽可能的使用自己学过的内容。我的婴儿用品购物网站主要实现了以下几个内容:首页:在上面显示网站的信息例如:用户的登录,用户的注册,一级导航显示,最新商品及热门推荐等。用户注册:未注册的用户,完成注册功能使用,在注册过程中,需要进行数据的前台非空校验,及使用AJAX完成用户名是否存在的异步校验。在校验通过后即可完成注册。用户登录:已经注册的用户,输入用户名和密码即可登陆。用户的退出:已经登录的用户,退出该网站。 首页展示:显示最新商品及热门推荐。方便用户了解商品动态。分类页面展示(二级导航页面):根据二级导航分类信息去展示商品。可以方便用户查找相应分类商品。商品详情展示:
31、点击某个具体商品的时候,可以显示商品的详情。以便用户可以方便的了解商品的具体信息。购物车:用户可以根据自己需要,将自己喜欢的商品添加到购物车,也可以从购物车中移除商品,甚至清空购物车中的所有商品。订单:登录用户可以将自己喜欢商品进行提交订单操作,则会产生订单。可以根据用户信息,查询自己的订单。验证码功能:这部分内容是大多数网站在注册页面都要用到的内容,因此,我特地从网上查询了验证码的生成代码,并把它用在了我的项目当中,使其发挥了作用。3.2 系统功能需求分析在婴儿用品购物网站中,用户可以实现如下操作:游客,即未登录的用户,可以进行页面的浏览,还有商品的选择,还可以将选中的商品加入购物车。用户可
32、以通过点击注册按钮进入注册界面,在该界面,用户可以根据提示,填入必要信息和选择信息,输入正确的验证码之后,单击注册按钮即可完成注册功能。用户成功注册之后就会转到登陆界面,用户使用自己注册的用户名和密码可以在登陆界面实现登录。用户使用正确的用户名和密码登录之后,会跳转到index即首页的界面,在这个页面中,用户可以看到热门推荐和最新商品的部分展示。用户可以在首页看到主导航,点击主导航中的某一项,可以跳转到对应的商品展示界面,可以缩小用户的挑选商品的范围。用户点击某个商品的图片,则可以进入该商品的详情界面,在详情界面中,用户可以看到该商品的价格,型号,图片,描述等信息。用户在详情页面可以将该商品加
33、入购物车,即可跳转到购物车界面,里面会显示用户添加入购物车的商品内容。用户在确定所要购买的商品之后,则可以在购物车界面点击生成订单,则会跳转到订单界面,并且该页面会显示出改用户下的订单的内容。3.2.1 前台功能前台界面:向用户展示最新商品和热门推荐。注册登录模块:未注册用户通过此界面进行用户注册,需要填写相关的信息,当信息格式正确之后会注册成功,会跳转到登陆界面,可以进行登录。商品列表界面:根据用户对导航的选择,显示符合用户筛选条件的商品的列表。购物车和订单模块:用户可以向中意的商品添加入购物车,在确定了所要购买的内容之后,可以生成订单。3.3 运行环境操作系统:Windows NT/200
34、0/2003/XP professional/Windows 7浏览器:搜狗浏览器,谷歌浏览器,火狐浏览器等主流浏览器均可使用。3.4 安全性后台的界面访问、路径访问、操作执行的前后,均受登陆会话管理和用户权限管理的控制。在用户注册时会动态的检测用户名是否可用,并对注册所需要填的必须信息做了限制,否则不可完成注册。4 系统分析与设计4.1 系统所需知识与技术4.1.1 JavascriptJavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Net
35、scape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。以下是他的日常用途:(1)嵌入动态文本于HTML页面。 (2)对浏览器事件做出响应。(3)读写HTML元素。 (4)在数据被提交到服务器之前验证数据。(5)检测访客的浏览器信息。 (6)控制cookies,包括创建和修改等。(7)基于Node.js技术进行服
36、务器端编程。JavaScript 是世界上最流行的脚本编程语言,主要用于Web开发,也可用于服务器、PC、笔记本电脑、平板电脑和智能 等设备。JavaScript 是一种轻量级的编程语言,可插入 HTML 页面,由浏览器解释并执行。JavaScript是一种弱类型的语言。JavaScript脚本像其他编程语言一样,每个变量都有数据类型,但在声明变量时不需显式地指定其数据类型,变量的数据类型将根据变量的具体内容推导出来,并根据变量内容的改变而自动更改。这是强类型语言无法做到的。JavaScript采用事件驱动方式,能随时响应键盘事件、鼠标事件及浏览器窗口事件等,并执行指定的操作。javascri
37、pt和java的区别:(1)基于对象和面向对象在js中基本不需要自定义对象,使用js的内置对象就可以完成操作。事件驱动:通过用户某些操作,根据其操作,产生响应。键盘事件:监听键盘的动作,例如点击某些键位、是长按还是敲击等。鼠标事件:监听鼠标的动作,例如鼠标的滑动、单击、双击、拖动等。表单验证、获得焦点、失去焦点等,这些都可用于前端进行表单验证。浏览器事件和相关浏览器的一些操作等等。(2)解释和编译Javascript是一种解释性的编程语言,可以实现动态联编,因此它可以实现边加载、边编译、边执行。而java则需要事先编译。(3)强变量和弱变量变量定义:例如:Integer i = 0;Strin
38、g s = string;var i = 0;var s = string;var b = true;(4)嵌入方式不一样使用如下方式:第一种方式,将js代码写在script标签中,script标签可以出现在head或body的任意位置。;第二种方式,直接写在标签的事件属性中,如:onclick=window.open( :/ baidu );第三种方式,引入外部的js文件,如:4.1.2 AjaxAJAX(Asynchronous Javascript And XML)的中文意思就是“异步Javascript和XML”。意思就是使用Javascript语言与服务器进行异步交互,传输的数据可以
39、为XML(当然,传输的数据不只是XML)。AJAX还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新。这一特点给用户的感受是在不知不觉中完成请求和响应过程。与服务器异步交互,浏览器页面局部刷新。同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。优点:AJAX使用Javascript技术向服务器发送异步请求;AJAX无须刷新整个页面;因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高。缺点:AJAX并不适合所有场景,很多时候还是要使用同步交互
40、;AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大。因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题。使用ajax的步骤:创建XML Request对象;调用open()方法打开与服务器的连接;调用send()方法发送请求;为XML Request对象指定onreadystatechange事件函数,这个函数会在XML Request的1、2、3、4,四种状态时被调用。XML Request对象的5种状态:0:初始化未完成状态,只是创建了XML Request对象,还未调用open()方法;1:请求已开始,open(
41、)方法已调用,但还没调用send()方法;2:请求发送完成状态,send()方法已调用;3:开始读取服务器响应;4:读取服务器响应结束。通常我们只关心4状态。4.1.3 MVCMVC即模型视图控制器,是Xerox PARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。软件应用分层架构标准三层架构:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑
42、层或表示层提供数据服务。业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。具体的讲主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。表示层:主要表示WEB方式,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。优点:开发人员可以只关注整个结构中的其中某一层;可以很容易的用新的实现来替换原有层次的实现;可以降低层与层之间的依赖;有利于标准化;利于各层逻辑的复用;结构更加的明确;在后期维护的时候,极大地降低了
43、维护成本和维护时间缺点:降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成;有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码;增加了开发成本。WEB技术的四层(五层)结构:所谓的四层架构的分法,就是想把软件设计师工作量降下来,减少重复性的代码,提高开发速度,使软件有相当好的可维护、易扩展,这种四层架构对多人开发同软件来说,可以有个清晰的思路。我把系统分成表示层(UI)、业务逻辑层(Bussin
44、ess/Service)、数据访问层(DataAccess/Dao)、数据实体层(Domain)。如果你还考虑到数据库设计的话,就是五层架构。4.1.4 Struts2strust2框架来历简介:WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架(同时也是一个成熟的基于Web的MVC框架)。MVC:Model View Controller, model是模型,view是视图,controller是控制器,是一种框架模式。随着WebWork框架的发展,衍生出了strust2框架,因此strust2框架是WebWork的升级,而不是一个全新的框架,
45、因此稳点性、性能等方面都有很好的保证,而且也同时吸收了struts1框架和WebWork俩者的优点。所以strust2框架也是一个基于Web的MVC框架,但是,strust2框架并不是struts1框架的延续或者升级,俩者有着很大的不同。web项目中的三层架构:表示层(Struts2框架就是工作在这个地方);业务逻辑层(service层,处理业务逻辑,比如判断用户名是否存在、密码是否正确、权限是否拥有、账号是否被冻结、账号是否异常、用户积分是否到达操作要求等等,多为一些执行某一个操作条件的判断);数据访问层(dao层,专门处理和数据库进行交换的事情,jdbc/hibernate就在这里使用)。
46、在项目中,这些不同的分层的表现形式,其实就是在我们自己建的不同的package中写上各自分层中所使用的java类。比如在项目中我们建了三个package,三个package中java类的作用分别为表示层的代码、业务逻辑层代码、数据访问层代码。注意:可以理解为,MVC架构是这里说描述的三层架构的一部分,即:三层架构中的表示层可以使用mvc架构的框架来实现,例如使用struts2框架。使用struts2框架的好处:减少编程人员代码的编写,使代码更加简洁明了,缩短开发时间,同时也增加了开发效率。将struts2框架引入到web项目中:首先使用Eclipse/MyEclipse中建一个web项目。把s
47、truts2相关jar包引入到项目中。把struts2的配置文件直接放到src下面,名字要叫做struts.xml。(运行时配置文件会被框架自动读取)。如果struts.xml文件中不能自动提示出标签;把相应的dtd文件配置上去。在web.xml文件中配置struts2框架的过滤器。这个过滤器的作用:拦截struts2框架中的action。如果不配置这个filter,struts2框架就不能够工作。第一种filter的配置:struts2框架的2.0版本配置的方式:在标签中添加如下内容:org.apache.FilterDispatcher。第二种filter配置:struts2框架的2.0版
48、本以上配置的方式,同时2.0版本以上的也可以使用第一种方式。这个过滤器类是2.0版本以上新增的类。之后,这一步是可选的,将perties复制粘贴到src下面。特别注意:项目的环境要求:tomcat所在的路径中要求没有空格、中文、特殊符号。如果有的话启动tomcat时候有可能报错。注意tomcat最好使用tomcat6版本以及JDK。使用JDK6版本的,所建立的web项目版本最好是J2EE5.0(因为在比较新的MyEclipse中允许建立J2EE6.0的版本,但是不要建立J2EE6.0的版本项目)不要使用最新的,新的软件就是会有新的bug,特别是在和其他不是最新版本的软件结合使用的时候strut
49、s2框架中的Action:struts2框架中有一种java类叫做Action,这种说法就像J2EE项目中有一种java类加Servlet(人们的生活中有一种人的职业叫警察)。struts2框架底层还是封装了Servlet的相关内容而实现出来的。只不过struts2框架除了servlet的功能以外还扩展出了很多其他的功能,同时还大大简化了以前在servlet中繁琐的操作。在struts2框架中有一种类就是用代替以前我们在web项目中所使用到的servlet,那么这种类,在struts2框架中被称为Action。所以Action其实也是一种java类,比servlet功能更加强大的java类,同
50、时还比servlet中的操作简单。Action会有比servlet强大的功能以及简洁的操作:因为我们在web.xml文件中配置了struts2框架中专门的过滤器,用作拦截访问action的请求,拦截住之后,struts2框架就可以给Action添加很多丰富的功能了。4.1.5 Hibernate hibernate 框架:是对jdbc的轻量级的封装;操作数据库更简单。可以持久化数据对象关系映射:将实体类与数据库表中的字段相对应。假设有一个Car的数据库表,程序中有对应的实体类,则对应关系如下:Car -t_car;id属性 -id列;type属性-type列;price属性-price列。还有
51、如下一些概念:hibernate配置文件;dom4j解析xml配置文件;log4j.jar记录日志;junit.jar单元测试。单元测试注解的使用: Test ;Before ;After。pojo(plain old java object)即简单的java对象;javabean:,即实体类。建立一个hibernate项目的步骤:将hibernate框架所需要的jar导入,可以在Eclipse中建立hibernate类库;建立包含数据库信息,hibernate信息,日志格式等元数据的配置文件。hibernate.cfg.xml和perties 默认放在src下;建立实体类(多个属性,每个属性
52、的get/set方法,无参构造器);针对实体类,建立映射文件Xxx.hbm.xml,映射文件放在实体类所在的包中;Hibernate整体工作的流程:get方法 和load方法:load方法查询数据是延时加载的,在查询的对象没有使用之前是不会去数据库查询的。如果对象不存在,那么就报错。get方法立即执行查询语句,如果对象不存在,那么返回null。SessionFactory和Session对象:SessionFactory 用来构造Session的实例对象,它的特点:线程安全: 该实例对象何以被多个线程共享;重量级:该实例对象的构造和销毁消耗系统资源,所以一般在应用程序启动的时候就构造实例对象,
53、一般一个数据库对应一个SessionFactory的实例对象,如果要访问多个数据库,就需要创建多个该实例对象。SessionFactory实例对象中维护了一个很大的缓存,存放了一些预定义的SQL语句和XML配置文件的信息,另外还维持了一个Hibernate的第二级缓存(缓存了所有Session对象所加载的POJO对象),用来保存在该生命周期中的一些业务对象,但是这个第二级缓存默认是关闭的,必须在xml中配置才可以开放;Session用来对对象的保存,更新,删除和查询。特点:线程不安全,要避免同一个Session对象被多个线程共享,一般一个线程对应一个Session;轻量级:可以随意的构造和销毁
54、该实例对象;Session对象中维护了一个缓存,称为Hibernate的第一级缓存(缓存了当前Session对象所加载的POJO对象)每个Session对象都有自己的缓存。session对象中的缓存:只要是被session操作过的对象都会被放置在缓存中,save,update,get,load等。flush()方法:清理缓存中的对象并立即执行sql语句,但是不会提交事务;clear()方法:只会将缓存中的对象和sql语句清空,不会提交事务。close()方法:将缓存中的对象和sql语句都清空,只会回滚事务。commit()方法:执行缓存中的sql语句,但是不会清理缓存中的对象,再提交事务。sa
55、veOrupdate:merge()方法:先通过select查询对象,如果对象不存在,那么执行insert如果存在执行update。如果在session中存在俩个主键相同但内存地址不同的对象时,saveorUpdate在操作时会报错,merge会将两个对象合并。getCurrentSession()方法:使用此方法必须在配置文件中添加下面的属性:thread。在第一次调用getCurrentSession方时,会创建一个新的session对象并放在线程中维护,只要session不关闭,那么再调用getCurrentSession方法时,会返回同一个session对象。openSession()
56、:不管前面有没有存在session,openSession方法都会创建一个新的session对象。主键的增长策略:。assigned表示id的设置是由用户设置的 这个是默认值increment 每次表中的ID最大值加1;sequence表示id值由数据库中一个序列负责生成是oracle数据库特有的主键增长策略,默认是一种叫hibernate_sequence的序列。identity是mysql SQLServer等数据库中的id增长策略,oracle不支持。native 让本地数据库来选择使用哪一种主键增长策略。orale数据库默认选择sequence增长策略,使用hibernate_sequ
57、ence。Hilo,使用hilo算法(高位数字结合低位数字)生成id的值。高位的值在数据库的表中存放。4.1.6 SpringSpring相关概念轻量级的容器:容器:spring容器帮我们管理业务逻辑层,里边有很多业务逻辑对象,有对象就有对象的生命周期的管理(创建,销毁)。轻量级:容器给予的业务逻辑对象多少种服务?spring给用户提供的服务完全有用户自己决定,spring想用什么服务自己开启使用。但是重量级的都是只要你用就把所有的服务都给你,不能自己定制。spring容器从来不能独立运行,一定借助于其他容器启动,或者借助web容器启动,或者EJB容器启动。特点:应用模块之间耦合度小,组件都是
58、可重用的,都是各自打包的。为什么要用Spring:(1)动态解藕,方便开发,面向接口设计:通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。(2)方便程序的测试TDD(Test-Driven Development):可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。(3)降低Java EE API的使用难度:Spring对很多难用的Java EE API(如
59、JDBC,JavaMail,远程调用等)提供了一个简单的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。(4)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。(5)AOP编程的支持:通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。(6)声明式事务的支持:在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。(7)对异常的处理方式,所有的都转换成Unchecked的。(8)它不是一个一体化的解决方案。(9)良好的设计,容易扩展,很多可重用的组件Spring核心组件:(1)、Spring Core(IOC) 核心容器,提供组件的创建、装备、销毁。(2)、Spring Context Spring上下文,是一个接口ApplicationContext(继承自BeanFactory接口)的实现。(3)、Spring Web容器,web应用上下文,是webApplicationContext接口的实现。(4)、SpringDAO容器,是SpringDAO 支持
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国全自动生化仪(aca)行业运营模式及发展规划分析报告
- 2024年个人车辆租凭协议:企业与个人间的权责明确
- 2024年城市配送服务长期合作协议
- 2024年学校操场施工改造合同
- 2024年学生贷款协议:教育借款合同样本
- 2024年奶茶店店长雇佣协议模板
- 2024年大型设备运输司机派遣合同
- 2024年农业科技研发与现代农业产业园建设合同
- (2024版)移动互联网应用合同
- 2024年二手房产独家销售协议
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- JT-T-617.1-2018危险货物道路运输规则第1部分:通则
- 教育新篇章:数字化转型
- 个人住房贷款提前还款月供及节省利息EXCEL计算
- 小学书法人美版五年级下册 第10课 广字头 课件(10张PPT)
- 两自一包体制改革策略应用案例探索
- 浅谈钢-混凝土叠合板组合梁
- 生产计划与排产管理
- 设施农业用地备案申报材料(全套表格)
- 双培养工作实施方案3页
评论
0/150
提交评论