计算机毕业设计-基于java三框架的电子相册毕业设计.doc_第1页
计算机毕业设计-基于java三框架的电子相册毕业设计.doc_第2页
计算机毕业设计-基于java三框架的电子相册毕业设计.doc_第3页
计算机毕业设计-基于java三框架的电子相册毕业设计.doc_第4页
计算机毕业设计-基于java三框架的电子相册毕业设计.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

有要全套的请联系我-豆丁主页:/zhangtaoakhk qq:625880526 i 本科毕业设计(论文) 电子相册系统 姓名 # 大 学 2009 年 6 月 燕山大学本科生毕业设计(论文) ii 本科毕业设计(论文) 电子相册系统 学院(系): #学院 专 业: 计算机科学与技术 学生 姓名: # 学 号: 05130401# 指导 教师: # 答辩 日期: 2009 年 6 月 17 日 #大学毕业设计(论文)任务书 学院:#学院 系级教学单位:电子工程系 有要全套的请联系我-豆丁主页:/zhangtaoakhk qq:625880526 iii 学 号 05130401# 学生 姓名 # 专 业 班 级 05 计算机科学与 技术 2 班 题目名称电子相册系统 题目类型网站开发类程序的设计 题目类别1.毕业设计( ) 2.论文( ) 题 目 题目来源虚拟项目 主 要 内 容 (1) 实现用户的注册与登录; (2) 实现登录用户上传修改照片等功能; (3) 支持登录用户的管理相册功能; (4) 未注册用户可以浏览照片发表评论等功能; (5) 管理员登陆可以添加相册分类; 基 本 要 求 (1) 网站应提供方便的访问形式; (2) 网站应具备安全性; (3) 网站布局合理,功能完善。 参 考 资 料 1 刘聪 等编著 零基础学 java web 开发 机械工业出版社 3 arnold doray 著 struts 基础教程 人民邮电出版社 4 刘斌 著 精通 java web 整合开发 电子工业出版社 5 梁立新 著 项目实战精解基于 struts+spring+hibernate 的 java 应用开 发 电子工业出版社 2006 年 11 月 周 次第 14 周第 58 周第 912 周 第 1316 周第 1718 周 应 完 成 的 内 容 熟悉开发工具 和编程环境, 并配置所需的 工作环境 设计数据库,确 定系统的总体功 能,构建 java 三框架结构 进行程序的 界面开发及 功能函数的 编码工作 完善框架中 的配置文件, 合成系统功 能 完善工程并撰写 论文 指导教师: 职称: 年 月 日 系级教学单位审批: 年 月 日 摘要 随着人们生活水平的逐步提高,旅游照相成了大家必不可少放松项目。 虽然照片最后会存入到自己的电脑里,但是时间一长、照片一多,这些有 着勾起回忆的“资料”,就会显得杂乱无章,即不方便欣赏,也不方便管理。 燕山大学本科生毕业设计(论文) iv 而电子相册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存 入的照片,不失为最佳欣赏、保存照片的相册工具。电子相册系统平台也 就应此应运而生。 本系统是一种基于 b/s 架构的电子相册管理系统,它采用目前最流行 的 java 语言编写,用到了当今先进的技术如 jsp 技术、 hibernate、spring、struts 框架等来实现该系统。 系统分为五大模块、相册列表模块、新建相册模块、修改资料模块、 修改密码模块、添加相册分类模块。注:前四大模块是根据注册用户的提 供的,注册用户登陆后可以进行添加相册,上传,删除照片,修改资料等 一系列操作,最后一项是管理员登陆所进行的操作。而如果是未注册用户 只能查看相册中的内容,没有权力进行相应的修改。 关键词:关键词:java;电子相册;三框架;mvc 燕山大学本科生毕业设计(论文) ii abstract as people gradually increase the standard of living, travel photography has become essential to relax the project everyone. while the photos will eventually be deposited to your computer, but over time, more than one photo, which has brought back memories of the “data“, will be very chaotic, that is inconvenient to enjoy, not to facilitate management. electronic album with appreciation, the spread of convenience, the interface appearance characteristics such as good management can be deposited in the photos, after all, enjoy the best, save a photo album tool. electronic photo album will be the platform came into being. the system is based on b / s structure of the electronic photo album management system, it uses the most popular languages java, using todays advanced technologies such as jsp technologies, hibernate, spring, struts framework to achieve the system. system is divided into five modules, the album list module, new album module, modify the module, modify the password module, add the album classification module. note: before the four modules are based on the provision of registered users, registered users can add after landing albums, upload, delete photos, edit information, such as a series of operations, the last one is carried out by the administrator landing operation. and if it is unregistered users can only view the content of the album, does not have the authority to amend accordingly. keywords: java; electron photo album; three frames; mvc 目 录 i 目 录 摘要i abstractii 第 1 章 绪论1 1.1 系统开发的背景和意义 1 1.2 国内外发展状况 2 1.3 研究内容 2 第 2 章 程序技术相关知识4 2.1 java 简介 4 2.2 java ee 平台相关介绍 .4 2.3 所采用数据库及原因 .5 2.4 mvc 设计模式的原理6 2.4.1 mvc 设计思想 .7 2.4.2 mvc 的优点 .8 2.5 三框架相关知识简介9 2.5.1 struts 框架9 2.5.2 hibernate 框架9 2.5.3 spring 框架10 2.6 jsp 技术.10 2.7 关于 javascript 脚本语言的应用.12 2.8 myeclipse开发工具的简要介绍.13 2.9 web 服务器 tomcat6.0 14 2.9.1 tomcat server 的组成部分.14 2.9.2 tomcat server 处理一个 http 请求的过程.16 2.10 本章小结 .16 第 3 章 电子相册系统需求分析17 3.1 可行性分析17 3.1.1 系统总体目标17 3.1.2 技术可行性分析17 3.1.3 功能需求17 3.1.4 性能需求17 3.2 系统总体结构17 3.2.1 系统总体结构.18 3.2.2 用例图18 3.3 系统功能模块结构19 燕山大学本科生毕业设计(论文) ii 3.3.1 相册列表模块19 3.3.2 新建相册模块20 3.3.3 修改资料模块21 3.3.4 修改密码模块21 3.3.5 添加相册模块22 3.4 数据库设计 .22 3.5 本章小结 .24 第 4 章 系统实现25 4.1 管理员登陆设计25 4.1.1 管理员登陆主页面的创建25 4.1.2 实现过程.25 4.2 注册用户登陆设计 .26 4.2.1 注册用户登陆界面的创建.27 4.2.2 注册用户登陆界面.27 4.2.3 实现过程.28 4.3 未注册用户注册设计 .28 4.4 添加相册分类的实现 .29 4.5 管理员添加相册界面 .29 4.5.1 实现过程.30 4.6 数据库设计 .32 4.6.1 使用 show 语句找数据库32 4.6.2 创建一个数据库 abccs.33 4.6.3 选择你所创建的数据库.33 4.6.4 创建一个数据库表.33 4.6.5 往表中加入记录.34 4.6.6 装入数据库表34 4.7 系统测试34 4.7.1 测试目标.34 4.7.2 各模块测试.35 4.8 本章小结 .36 结论37 参考文献39 致谢40 附录 1 开题报告.41 附录 2 文献综述.45 附录 3 外文翻译.48 第 1 章 绪 论 1 第 1 章 绪论 随着数码摄影时代的到来,不论是专业摄影师建立图片档案或是向他人 展示自己的摄影作品,还是家庭生活摄影,都需要电子相册来保管摄影作品。 如同传统的照相簿,电子相册既有展示功能也有存储和管理功能。 电子相册是现在时下最流行的一种网络元素,它可以应该在很多的领域, 例如时下最流行的空间及博客就是大量的应该这一技术,而且受到大多数网 友的认可及追捧,其以静态照片为素材(获得源方式为扫描仪扫描、数码相机 所拍等),配合动感的背景、前景和字幕等视频处理的特殊效果,配上音乐就 可制作成电子相册。制作好的电子相册可以在电脑上,各类影碟机上,以及 手机和 mp4 里都能观看,这是电子相册技术发展到今天的一个新的突破,即 不再像传统那样,只能在电脑上或在影碟机上观看了,并且还可以通过手机 将自己的个性化 mtv 发送给远方的亲朋好友们分享。当然,如果考虑到长 期保存的话,制作成电子相册光盘那是最好的选择啦,金碟可保存 100 多年 之久,标准 vcd、svcd、dvd 格式,兼容性好,通过影牒机即可与家人、 朋友、客户观赏。若保存在硬盘上,也便于随时调阅、欣赏,永久保存。 1.1 系统开发的背景和意义 随着人们生活水平的逐步提高,旅游成了大家必不可少放松项目,每当笔 者走到一个美丽的景点,就会忍不住拿起数码相机照上几张留做回忆。虽然 照片最后会存入到自己的电脑里,但是时间一长、照片一多,这些有着勾起 回忆的资料,就会显得杂乱无章,即不方便欣赏,也不方便管理。而电子相 册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存入的照片, 不失为最佳欣赏、保存照片的相册工具。 另外随着数码相机、手机照相等功能的普及,想必每个人手上都储存了 大量的电子相片,但这此照片如果不进行处理,仅仅以一张张图片的形式放 置在电脑上,不仅 不易观赏,也不方便分类管理,是否有软件能将这些照片 整理成一本本的相册呢?电子相册系统平台就是一款集相册制作、生成、浏 览专业软件,有了它的帮助,制用相册再也不需要专业的技术,普通用户也 燕山大学本科生毕业设计(论文) 2 可以在五分钟内制作出精美的电子相册,支持 170 余种照片显示特技,可以 为相片加入文件注释及说明。 1.2 国内外发展状况 电子相册是现在时下最流行的一种网络元素,它可以应该在很多的领域, 例如时下最流行的空间及博客就是大量的应该这一技术,而且受到大多数网 友的认可及追捧,其以静态照片为素材(获得源方式为扫描仪扫描、数码相机 所拍等),配合动感的背景、前景和字幕等视频处理的特殊效果,配上音乐就 可制作成电子相册。制作好的电子相册可以在电脑上,各类影碟机上,以及 手机和 mp4 里都能观看,这是电子相册技术发展到今天的一个新的突破,即 不再象传统那样,只能在电脑上或在影碟机上观看了。并且还可以通过手机 将自己的个性化 mtv 发送给远方的亲朋好友们分享。当然,如果考虑到长 期保存的话,制作成电子相册光盘那是最好的选择啦,金碟可保存 100 多年 之久,标准 vcd、svcd、dvd 格式,兼容性好,通过影牒机即可与家人、 朋友、客户观赏;若保存在硬盘上,也便于随时调阅、欣赏,永久保存。 1.3 研究内容 电子相册系统是一种基于 b/s 架构的管理系统,它采用目前最流行的 java 语言编写,用到了当今先进的技术如 jsp 技术、 hibernate、spring、struts 框架等来实现该系统。采用 mvc 框架技术提高了 系统的可维护性。 本系统所研究的是从电子相册的管理到相册的生成等一系列的问题,大 致分为:前台包括相册列表、新建相册、修改资料、修改密码、技术支持, 后台包括相册管理, 本文共分 5 章,第 1 章是绪论,第 2 章介绍开发本系统所用到的相关技 术,第 3 章是系统的需求分析及结构图,第 4 章是相册系统的系统实现,第 5 章是总结。各章节的研究内容如下: (1) 第 1 章主要介绍了选题的背景和意义,论述了系统的国内发展状况。 (2) 第 2 章主要介绍了实现电子相册系统所用的软件和系统建设过程中 第 1 章 绪 论 3 使用的相关技术。 (3) 第 3 章主要是电子相册系统的需求分析。 (4) 第 4 章是系统的编码实现,从三框架的实现,数据库的创建等方面 介绍了系统的实现。 (5) 第 5 章主要是此系统的的总结。 燕山大学本科生毕业设计(论文) 4 第 2 章 程序技术相关知识 2.1 java 简介 java 是 sun 公司开发的编程语言,使用它可以在各式各样不同的机器、 不同操作平台的网络开发环境中开发软件。不论用户使用的是哪一种 www 浏览器、哪一种计算机、哪一种操作系统,只要 www 浏览器上面注明了 “支持 java”,就可以看到生动的页面。java 正在逐步成为 internet 应用的主 要开发语言。它彻底改变了应用软件的开发模式,带来了自个人计算机以来 又一次技术革命,为迅速发展的信息世界增添了新的活力。 java 是一种语法简介、清晰的语言,它的程序运行需要一个解释器,也 就是所谓的“虚拟机” 。虚拟机以某种高速算法执行 java 的面相对象语言代 码。从 java2.0 开始,java 分为 3 个版本 j2me(微机版本)、j2se(标准版本) 和 j2ee(企业级版本),分别用于支持消费类电子设备、标准 pc 以及企业级 应用的开发,版本之间的区别不仅在于所支持的类库的大小不同,也在于个 版本都对应着不同的 java 虚拟机。 java 的主要特性是可移植性,安全性,网络移动性,其中网络移动性是 java 的最主要的一个特性。而如果没有安全性,可移植性的支持,就无法实 现网络移动性。java 的网络移动性带来了一次 web 革命。随着 internet 的发 展,java 技术本身在不断得进步,jdk(java development kit,java 开发包, java 开发工具)是一个写 java 的 applet 和应用程序的程序开发平台。它由一 个处于操作系统层之上的运行环境还有开发者编译,调试和运行用 java 语言 写的 applet 和应用程序所需的工具组成。 2.2 java ee 平台相关介绍 j2ee,java2 平台企业版(java 2 platform enterprise edition), 是 sun 公 司为企业级应用推出的标准平台。java 平台共分为三个主要版本 java ee、java se 和 java me。 sun 公司在 1998 年发表 jdk1.2 版本的时候,使用了新名称 java 2 platform,即“java2 平台”,修改后的 jdk 称为 java 2 platform software 第 2 章 程序技术相关知识 5 develping kit,即 j2sdk。并分为标准版(standard edition,j2se), 企业版 (enterprise edition,j2ee),微型版(microedition,j2me)。j2ee 便由此诞生。 2005 年 6 月,javaone 大会召开,sun 公司公开 java se 6。此时,java 的各种版本已经更名以取消其中的数字“2”:j2ee 更名为 java ee, j2se 更 名为 java se,j2me 更名为 java me。 随着 java 技术的发展,j2ee 平台得到了迅速的发展,成为 java 语言中 最活跃的体系之一。现如今,j2ee 不仅仅是指一种标准平台(platform),它更 多的表达着一种软件架构和设计思想。 从整体上讲,j2ee 是使用 java 技术开发企业级应用的一种事实上的工 业标准(sun 公司出于其自身利益的考虑,至今没有将 java 及其相关技术纳入 标准化组织的体系),它是 java 技术不断适应和促进企业级应用过程中的产 物。目前,java 平台有三个版本:适用于小型设备和智能卡的 j2me(java 2 platform micro edition)、适用于桌面系统的 j2se 和适用于企业 级应用的 j2ee。sun 推出 j2ee 的目的是为了克服传统 client/server 模式的 弊病,迎合 browser/server 架构的潮流,为应用 java 技术开发服务器端应用 提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平 台,从而简化企业应用的开发、管理和部署。j2ee 是一个标准,而不是一个 现成的产品。各个平台开发商按照 j2ee 规范分别开发了不同的 j2ee 应用服 务器,j2ee 应用服务器是 j2ee 企业级应用的部署平台。由于它们都遵循了 j2ee 规范,因此,使用 j2ee 技术开发的企业级应用可以部署在各种 j2ee 应用服务器上。 2.3 所采用数据库及原因 本系统采用的是目前比较流行的小型数据库系统 mysql。 mysql 是瑞典的 mysql ab 公司开发的一个可用于各种流行操作系统 平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理 系统。mysql 完全适用于网络,用其建造的数据库可在因特网上的任何地 方访问,因此,可以和网络上任何地方的任何人共享数据库。mysql 具有功 能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点。 燕山大学本科生毕业设计(论文) 6 mysql 用 c 和 c+编写,它可以工作在许多平台(unix,linux,windows) 上,提供了针对不同编程语言(c,c+,java 等)的 api 函数;使用核心线 程实现多线程,能够很好的支持多 cpu;提供事务和非事务的存储机制;快 速的基于线程的内存分配系统;mysql 采用双重许可,用户可以在 gnu 许 可条款下以免费软件或开放源码软件的方式使用 mysql 软件,也可以从 mysql ab 公司获得正式的商业许可。 除了以上特点,mysql 还有一个最大的特点,那就是在诸如 unix 这 样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件。 并且还能从因特网上得到许多与其相配的第三方软件或工具。而在 windows 系统上,其客户机程序和客户机程序库是免费的。 有些软件开发人员可能会认为 mysql 数据库属于那个小型的数据库, 但是在我看来不同的数据库要根据你不同的需要还进行选择的,在我看来时 下小的程序例如电子相册系统它不会产生大量的数据,只需要一些数据的查 询和相应的插入没有太复杂的表与表这间的结构,而且对于小系统来说性能 是相当重要的。相比 mysql 来说 oracle 数据确实可以看作是相当大的而 且功能相当全的数据库,但是同是 oracle 数据库对于系统的要求也是相当 的苛刻。它要求系统要有较高的性能才能带得起整个程序的发布。 mysql 包含有下列工具: (1) sql 服务器。这是 mysql 的引擎,它提供对数据库的访问。 (2) 访问服务器的客户机程序。包括一个允许直接录入查询并查看结果的 交互式程序,以及几个帮助操纵站点的管理程序和实用程序。其中有一个实 用程序允许控制服务器。其他的实用程序导入或导出数据,检查访问许可等。 (3) 帮助用户编写自己的程序的客户机库。mysql 提供众多的 api ( c, c+, eiffel, java, perl, php, python, ruby, and tcl) (4) mysql 除了提供内嵌软件外,它还被许多很有才能的人使用。这些 人喜欢编写软件以提高其产品效率,或愿意将自己编写的软件提供给他人使 用。因此,使用 mysql 能得到各种各样的第三方工具,这些工具令 mysql 使用更方便,或者扩展了 mysql,使其进入诸如 web 站点开发这 样的领域。 第 2 章 程序技术相关知识 7 2.4 mvc 设计模式的原理 在这里简要的介绍一下关于上一章中反复提到的 mvc 结构,其实 mvc 可以说是模型层-视图层控制层的简称,即 model-view-controller 的 简称。它强制性地把应用程序的输入、处理和输出分开,大大提高了代码的 重用性。如图 2-1 所示。 (控制器) 调用模型响应客户请求 选择视图显示响应结果 (视图) 显示模型状态 接受数据更新请求 把用户输入的数据 传给控制器 (模型) 代表应用程序状态 响应状态查询 处理业务流程 通知视图业务状态更新 状态查询 通知数据更新 用户请求 方法调用事件 图 2-1 mvc 示图 2.4.1 mvc 设计思想 mvc 英文即 model-view-controller,即把一个应用的输入、处理、输出 流程按照 model、view、controller 的方式进行分离,这样一个应用被分成三 个层模型层、视图层、控制层。 视图(view)代表用户交互界面,对于 web 应用来说,可以概括为 html 界面,但有可能为 xhtml、xml 和 applet。随着应用的复杂性和规模性, 界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,mvc 设计 模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而 不包括在视图上的业务流程的处理。业务流程的处理交予模型(model)处理。 比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面 燕山大学本科生毕业设计(论文) 8 的输入数据和请求传递给控制和模型。 模型(model):就是业务流程/状态的处理以及业务规则的制定。业务流 程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回 最终的处理结果。业务模型的设计可以说是 mvc 最主要的核心。目前流行 的 ejb 模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了 进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框 架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技 术上的困难。对一个开发者来说,就可以专注于业务模型的设计。mvc 设计 模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要, 这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不 能太近。mvc 并没有提供模型的设计方法,而只告诉你应该组织管理这些模 型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,mvc 定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。 这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体 对象的数据保存(持续化持续化)。比如将一张订单保存到数据库,从数据库获取订 单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型 中。 控制(controller)可以理解为从用户接收请求, 将模型与视图匹配在一起, 共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就 是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的 用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制 层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模 型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个 视图,一个视图可能对应多个模型。 2.4.2 mvc 的优点 大部分用过程语言比如 asp、php 开发出来的 web 应用,初始的开发 模板就是混合层的数据编程。例如,直接向数据库发送请求并用 html 显示, 开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出 第 2 章 程序技术相关知识 9 业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户 的变化性需求。mvc 要求对应用分层,虽然要花费额外的工作,但产品的结 构清晰,产品的应用通过模型可以得到更好地体现。 首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需 求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有 本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都 是一样,也就是说订单的处理是一致的。按 mvc 设计模式,一个订单模型 以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护 量,一旦模型发生改变,也易于维护。 2.5 三框架相关知识简介 本系统是基于 j2ee 的三种框架的集成性开发,其中包括 struts 框架 spring 框架 hibernate 框架等,它们在整个模块的开发过程中起着不同 的作用。 2.5.1 struts 框架 其中 struts 框架主要是 mvc 结构,而 mvc 把交互系统的组成分解 成模型、视图、控制器三部分。模型(model)是软件所处理问题逻辑在独立于 外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功 能的计算关系,独立于具体的界面表达和 i/o 操作。视图(view)把表示模型 数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信 息,对于相同的信息可以有多个不同的显示形式或视图。控制器(controller) 是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播, 确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型, 进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视 图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多 个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它 依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数 据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是 一种模型的变化-传播机制。 燕山大学本科生毕业设计(论文) 10 2.5.2 hibernate 框架 hibernate 框架是一个数据持久层框架,是一种实现对象和关系之间 映射(o/r mapping)的工具,它对 jdbc 进行了轻量级的对象封装,使程序员 可以使用对象编程思想来操作数据库。它不仅提供了从 java 类到数据表的映 射,也提供了数据查询和恢复机制。相对于使用 jdbc 和 sql 来操作数据库, 使用 hibernate 能大大的提高实现的效率。hibernate 框架用配置文件的形式 来定义 java 对象和数据表之间的映射关系,同时在更深的层面将数据表之间 的关系解释为 java 对象之间的继承及包含等关系。通过使用 hql 语句将复 杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快 了开发的效率。在 hibernate 中有一个简单而直观的 api,用于对数据库所表 示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互, 然后告诉 hibernate 保存即可。这样,大量封装持久化操作的业务逻辑不再需 要编写烦琐的 jdbc 语句,从而使数据持久层得到了极大的简化。 2.5.3 spring 框架 而 spring 是一个开源框架主要有两大特性包括:依赖注入(ioc)和切面 (aop)在我的这个设计中基本上只体现了其中的一部分也就是 ioc 依赖注入, 所谓的依赖注入就是 spring 通过一种称作控制反转(ioc)的技术促进了松耦 合。当应用了 ioc,一个对象依赖的其它对象会通过被动的方式传递进来, 而不是这个对象自己创建或者查找依赖对象。你可以认为 ioc 与 jndi 相反 不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就 主动将依赖传递给它。 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创 建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪 一个组件需要哪一项服务。容器 (在 spring 框架中是 ioc 容器) 负责将这 些联系在一起。在典型的 ioc 场景中,容器创建了所有对象,并设置必要 的属性将它们连接在一起,决定什么时间调用方法。下表列出了 ioc 的一 个实现模式。 第 2 章 程序技术相关知识 11 2.6 jsp 技术 随着 web 应用的飞速发展,传统的静态 html 语言已经越来越不适应 需要,由此导致了人们在传统的静态 html 上增添新的功能,这一切功能最 终导致了动态 html 的产生,web 已经从一个大部分显示静态信息的网络演 化成能够进行股票交易和购书操作等的一种基础设施网络。静态 html 对于 显示静态内容是不错的选择,新的挑战在于创建交互的基于 web 的应用程序, 用户在浏览信息的同时也需要向服务器反馈一些信息,在这些程序中,页面 的内容是基于用户的请求或系统的状态,而不是预先定义的文字。 某些 web 服务器供应商已经尝试通过为他们的服务器提供“插件”和 api 来简化 web 应用程序的开发难度。但这些解决方案是与特定的 web 服务器 相关的,例如,微软的 asp 技术使得在 web 页面上创建动态内容更加容易, 但是也只能工作在微软的 iis 和 personal web server 上。还存在其他的解决 方案,但不能使一个普通的页面设计者更加容易掌握。例如像 java servlets 技术,就可以使得用 java 语言编写交互应用程序的服务器端代码变得很容易, 开发人员能够编写出这样的 servlets,以接受来自 web 浏览器的 http 请求, 动态地生成响应,然后发送包含 html 或 xml 文档的响应到浏览器。 采 用这种方法,整个网页必须都在 java servlets 中制作,如果开发人员或者 web 管理人员想要调整页面显示,就不得不编辑并重新编译该 java servlets,即使在逻辑上已经能够运行了。采用这种办法,生成有动态内容的 页面仍然需要应用程序的开发技巧。 很显然,目前需要的是一个业界范围内的创建动态内容的解决方案。这 个方案将解决当前方案所受到的限制,即使在任何 web 的交互程序服务器上 运行、将应用程序逻辑和页面显示分离、能够快速地开发和测试、简化开发 基于 web 的交互式应用程序的过程。 jsp 技术就是被设计用来满足这样的要求的。 jsp 规范是 web 服务器、应用服务器、交易系统以及开发工具供应间广 泛合作的结果,sun 公司开发出这个规范来整合和平衡已经存在的规范对 java 编程环境进行支持的技术和工具,其结果是产生了一种新的、开发基于 web 应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功 燕山大学本科生毕业设计(论文) 12 能支持。 jsp 网页包含以下的组件: (1) jsp 指示 jsp 页面使用 jsp 指示将指令传递到 jsp 容器,其中包括:jsp 页面指示 传递与页面相关的信息,例如缓冲区和线程信息或者出错信息;语言指示指 定脚本语言以及所有的扩展;包含指示可以被用来在页面中包含一个外部文 件,被包含的文件可能是另一个 jsp 文件,标识库指示指出页面可以调用的 客户标识库类型。 (2) jsp 标识 绝大数 jsp 处理将通过与 jsp 相关的基于 xml 的标识完成,这些标识 包括: jsp:usebean 这个标识声明对一个 javabean 组件实例的使用; jsp;setproperty 这个标识在组件的实例中设置一个属性的值; jsp:getproperty 这个标识获取一个组件的实例的属性值,将其转化为字 符串,并且将它放入隐含对象 out 中; jsp:include 和 jsp:forward 标识的好处在于它们易于在应用程序中使用和共享基于标识的语法的真 正威力来自标识库的开发,使得工具供应商或其他人员能够为特定的要求创 建和分派标识。 (3) jsp 指示指示 jsp 页面可以在页面中包含小的脚本,小脚本是一个代码片段,在请求 的出处理过程中被执行,小脚本可以和页面中的静态元件组合起来创建动态 生 成的页面。脚本在标志中被描述,在这对标志中的所有的东西都会被脚本描 述 语言容器执行,jsp 规范支持所有常用的脚本元件,包括声明和表达式。 (4) jsp 页面应用模型 jsp 页面由 jsp 容器执行,容器安装在 web 服务器或者 jsp 的引用服务 器上,jsp 容器接受客户端的请求,并且生成 jsp 页面给客户端的响应。 第 2 章 程序技术相关知识 13 2.7 关于 javascript 脚本语言的应用 javascript 语言是 web 增强型技术,当在客户计算机上使用时,该语言 有助于把内容的静态页面转换为动人的、交互式的、智能的体验。应用程序 可以做得非常微妙,例如如果客户计算机所在的时区是早晨,即使此时服务 器处在晚饭时间,应用程序也将会向网站访问音问候“早上好”;或者还可实 现更加显眼的效果,比如在页面下载时传递幻灯片内容,而在整个演示过程 中 javascript 控制隐藏、显示和幻灯片的转换。 应用 javascript,可以弥补程序运行速度上的缺陷(尽可能在客户端完成, 不一定每次都提交给服务器),同时它也扩展了 web 页面的功能。 使用 javascript 可以完成表单的验证,不用强迫服务器或数据库来进行 数据的确认,直接在客户端就完成了任务,大大提高了运行效率。利用用户 的计算机去处理一些问题,分担了数据库的工作量。随着新的 w3c 标准出 台,利用内置对象的 document.getelementbyid(id)方法可以取到页面中的任意 元素(前提是各个元素的属性 id 已经设置初值)。利用这种方法可以获得表单 中文本框或按钮上的值,然后再对它们加以分析、对比、判断数据格式。通 过返回的真假值来决定是否提交给应用服务器。 其次,使用 javascript 可以提供用户更为丰富的使用体验,不用刷新就 可以改变页面上的内容,和 jsp 技术相互配合,符合当今 it 技术中的 web 方向发展的潮流。 在本次的程序中使用了一些 javascript 脚本语言作为一些特效的应用, 其实在 js 脚本来说就是在做一些前台的验证和特效的功能。 2.8 myeclipse 开发工具的简要介绍 计算机软件编程行业已经逐步走入成熟对于编程人员的要求就越来越高 了,当然作为一名软件开发人员选择一个合适的开发工具也就能够帮助其更 快更好更稳定地进行开发,这一点在时下显得越来越重要。myeclipse 绝对 就是一个不错的选择,不论是单机应用还是网络开发,它都提供了很好的支 持,特别是对 jsp 和 tomcat 服务器的支持,使软件开发人员在开发过程中 感觉便于操作,可以很好的实现功能很快的看到效果,节省了开发人员很多 的时间。 燕山大学本科生毕业设计(论文) 14 myeclipse 6.0 以后有了很大的革新,在原来的版本中一般是用到的 eclipse 然后在其中安装相应的 myeclipse 一些相应的插件,在很大程序上, 这样的一种组合形式对开发人员来讲过于复杂,不便于操作。针对这一原因 在 myeclipse 在版本的研发上着重了解决了这一点缺陷,他们以 myeclipse 完全整合了 ecplise,换句话也就是说开发人员只需要安装 myeclipse 它其中 就会自动给你安装 eclipse,无须你再说安装在这一点上就我本人来讲是相当 的感受到了便利。从专业上来讲它是替代 ibm visual age for java(以下简称 ivj)的下一代 ide 开发环境,但它未来的目标不仅仅是成为专门开发 java 程 序的 ide 环境,根据 eclipse 的体系结构,通过开发插件,它能扩展到任何 语言的开发,甚至能成为图片绘制的工具。目前,myeclipse 已经开始提供 一些语言开发的功能插件,例如 c 语言等。更值得一提的是,myeclipse 是 一个开放源代码的项目,任何人都可以下载 myeclipse 的源代码,并且在此 基础上开发一些自己的功能插件。也就是说未来只要有人需要,就会有建立 在 myeclipse 之上的 cobol,perl,python 等语言的开发插件出现。同时可 以通过开发新的插件扩展现有插件的功能,比如在现有的 java 开发环境中加 入 tomcat 服务器插件。可以无限扩展,而且有着统一的外观,操作和系统 资源管理,这也正是 myeclipse 的潜力所在。 利用它可以更好地掌握软件开发周期,进一步提升了 web services 的开 发效率。它支持包括 soap、wsdl、uddi 和 wsil 等最新的 web services 技术,并且可以通过拖放方式更快捷地实现创建、验证、输入和输出 web 服 务,同时利用 myeclipse 提供的多种可视化插件,可以快速地开发 web 应用 程序。myeclipse 允许将现在的 html 或是 jsp 转换为特有的 structs 标签, 并且提供了 jsp 标签函数库功能,大大提高了编码的效率。通过它提供的实 时代码语法检查,我可以随时找到语法上的编写错误,以不同颜色标注代码 的变量和语句,使程序变得很清晰,可读性也提高了。本系统采用的是 myeclipse7.0。 2.9 web 服务器 tomcat6.0 在 web 工具的选择上我所选择的是 tomcat6.0, tomcat 是一个免费的开源的 serlvet 容器,它是 apache 基金会的 jakarta 第 2 章 程序技术相关知识 15 项目中的一个核心项目,由 apache,sun 和其它一些公司及个人共同开发而 成。由于有了 sun 的参与和支持,最新的 servlet 和 jsp 规范总能在 tomcat 中得到体现。tomcat 被 javaworld 杂志的编辑选为 2001 年度最具创新的 java 产品,可见其在业界的地位。 tomcat 的介绍是 web 服务器一种,是开源的 web 服务器。 2.9.1 tomcat server 的组成部分 (1) server :a server element represents the entire catalina servlet container. (singleton) (2) service :a service element represents the combination of o-ne or more connector components that share a single engine。service 是这样一个集合:它 由一个或者多个 connector 组成,以及一个 engine,负责处理所有 connector 所获得的客户请求 (3) connector 一个 connector 将在某个指定端口上侦听客户请求,并将获得的请求交 给 engine 来处理,从 engine 处获得回应并返回客户。tomcat 有两个典型 的 connector,一个直接侦听来自 browser 的 http 请求,一个侦听来自其它 webserver 的请求。coyote http/1.1 connector 在端口 8080 处侦听来自客户 browser 的 http 请求。coyote jk2 connector 在端口 8009 处侦听来自其它 webserver(apache)的 servlet/jsp 代理请求 (4) engine engine 下可以配置多个虚拟主机 virtual host,每个虚拟主机都有一个 域名。当 engine 获得一个请求时,它把该请求匹配到某个 host 上,然后把 该请求交给该 host 来处理。engine 有一个默认虚拟主机,当请求无法匹配到 任何一个 host 上的时候,将交给该默认 host 来处理 (5) host 代表一个 virtual host,虚拟主机,每个虚拟主机和某个网络域名 domain name 相匹配。每个虚拟主机下都可以部署(deploy)一个或者多个 web app,每个 web app 对应于一个 context,有一个 context path。当 host 获得一个请求时,将把该请求匹配到某个 context 上,然后把该请求交给该 燕山大学本科生毕业设计(论文) 16 context 来处理。匹配的方法是“最长匹配”,所以一个 path=“的 context 将 成为该 host 的默认 context 所有无法和其它 context 的路径名匹配的请求都 将最终和该默认 context 匹配 (6) context 一个 context 对应于一个 web application,一个 web application 由一个 或者多个 servlet 组成。context 在创建的时候将根据配置文件 $catalina_home/conf/web.xml 和$webapp_home

温馨提示

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

评论

0/150

提交评论