基于Java网络相册系统的设计与实现含源文件毕业设计Word文档格式.docx
《基于Java网络相册系统的设计与实现含源文件毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Java网络相册系统的设计与实现含源文件毕业设计Word文档格式.docx(61页珍藏版)》请在冰豆网上搜索。
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
导师签名:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
1引言
1.1选题背景
随着时代的进步,社会生产力高速发展,新技术层出不穷信息量急剧膨胀,整个社会已成为信息化的社会人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。
如在查找情报资料、处理银行账目、仓库管理、科研生产等方面,无不需要利用大量的信息资源。
因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。
随着数码产品的普及,传统的相册已经退出了市场,现在人们一般都用数码相机,照片都存在电脑上,电子相册就是把照片通过扫描仪扫描到电脑里,它具有传统相册无法比拟的优越性:
图形、文字、声音、图文并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的手段。
网络相册是电子相册的一种表现形式,它是网站为用户提供的个人相片展示及存放平台。
一般的网络相册可以选择“公开”或“私人”的属性,如果相册是设为公开属性,那么其他用户可以查看和分享。
因此,为一些中小型网站设计动人的网络相册系统从而给广大用户提供更多的资源,给自己设计一个自己喜欢的网络相册,满足自己的个性需求。
1.2目的和意义
网络相册系统是网站为用户提供的个人相片展示和存放平台,浏览查看他人相册并给予支持。
随着互联网的普及和发展,越来越多的人选择了网络,利用网络相册来保存自己的照片,这让网络相册行业迅速的红火起来。
1.3基于Java网络相册系统的研究意义
Java语言是定位于网络应用的程序设计语言。
Java是一种简单的、面向对象的、强壮的、安全的、可移植的、高性能的、体系结构中立的、解释型的、多线索的、动态的语言。
一个Java类文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨。
这使得代码更通用,更不易受修改的影响,而仍具高效。
网络相册是网站为用户提供的个人相片展示、存放的平台。
在网络相册系统中,用户可以上传图片,建立分类相册,设定相册隐私权限,也可以观看、评论其他人的相册与照片,有些相册也支持照片外链,方便用户在其他网站、社区、讨论区分享他们的照片。
1.4网络相册的发展现状
网络相册服务也是种很重要的在线存储服务,存储的数据是单一的图象数据。
因此,好的存储服务质量依然也是做好在线存储服务的关键,提高存储服务质量是需要有较高的资本投入的,国外的网上服务,多数是付费的,他们依靠忠实的用户和广告商一起来支持网站的运营,尤其对于用户而言,付多少费用直接和享受的服务成正比。
2方案论证
2.1WEB建站思想
JavaWeb应用有一组静态HTML页、Servlet、JSP和其他相关的class组成。
每种组件在Web应用中都有固定的存放目录。
Web应用的配置信息存放在web.xml文件中。
在发布某些组件(如Servlet)时,必须在web.xml文件中添加相应的配置信息。
2.1.1JavaWEB应用简介
Tomcat服务器最主要的功能就是充当JavaWeb应用的容器。
在Sun的JavaServlet规范中,对JavaWeb应用做了这样的定义:
“JavaWeb应用由一组Servlet、HTML页、类,以及其他可以绑定的资源构成。
它可以在各种供应商提供的实现Servlet规范的Web应用中运行。
”
JavaWeb应用的主要特征之一就是它与Context的关系。
每个Web应用有惟一的Context。
当JavaWeb应用运行时,Servlet容器为每个Web应用创建惟一的ServletContext对象,它被同一个Web应用中所有的组件共享。
2.1.2Web工程过程
Web工程过程活动贯穿Web生命周期,从应用概念的生成到开发、发布、不断的精化和升级系统。
为了降低开发基于Web的应用系统的复杂性,需要一个描述开发基于Web的应用系统阶段的过程模型[4]。
(1)Web分析
基于Web的应用系统的需求分析是很重要的活动,需要一个系统而严密的方法。
根据Web特性和Web应用的特定需求,需要采用更为开放、灵活的需求分析方法。
(2)Web设计
Web设计不但包括功能设计和性能设计,还要包括页面风格设计,包括页面的主色调、页面框架结构、文字颜色搭配、动画和图片的放置等。
有效的Web站点设计需要注意可用性,要把基于Web的系统设计成易于导航,吸引人和有用。
现在,比较流行的Web设计方法是以用户为中心的设计。
(3)Web开发
Web开发过程包括后台数据库程序的开发、页面程序的编写和所有网页的制作。
在设计阶段决定的Web框架基础上,进行具体的页面设计和制作。
把内容提供人员的内容连接到具体的页面。
(4)Web测试
基于Web的应用系统的测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器的显示是否合适。
重要的是,还要从最终用户的角度进行安全性和可用性测试。
(5)Web发布
Web发布阶段主要是把开发完成,经过初步测试的Web应用系统传送到Web站点上,供用户浏览和使用。
2.2WEB系统实现技术
2.2.1WEB服务实现技术
目前比较成熟的技术主要有ASP、PHP和JSP。
现对它们做一些说明[5]:
PHP是一种跨平台的服务器端的嵌入式脚本语言。
它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。
它支持目前绝大多数数据库。
JSP是Sun公司推出的新一代网站开发语言JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。
JSP技术特点:
JSP是JavaServerPagedd的缩写,它是Servlet的扩展,其目的是简化建立和管理动态网站的工作。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页。
Java程序片段可以操纵数据库,重新定向网页以及发送E-mail等,实现建立动态网站所需的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了多客户浏览的要求,即使客户浏览不支持Java,也可以访问JSP网页。
在JSP的众多优点之中,其中之一的是它能把HTML编码和业务逻辑有效地分离。
通常,JSP负责生成动态HTML页面,业务逻辑由其它可重用的组件(如Servlet、JavaBean)和其他Java程序来实现,JSP可以通过Java程序片段访问这些组件。
2.2.2数据库技术
SQLServer具有单进程愈多线索的体系结构,及SQLServer只有一个服务器进程,所有的客户都连接在这个进程上[13]。
但是,该进程又细分为多个并发的线索,他们共享数据缓冲区和CPU时间,能及时捕捉各用户进程发出的存取数据的请求,然后,按一定的调度算法处理这些请求,比操作系统直接对这些请求进行调度高效的多。
SQLServer的事务处理量大,响应速度快,并能为数百或更多用户维持这种高性能。
SQLServer在核心层实现了数据完整性控制,包括建表时申明完整性和用触发器机制定义与应用有关的完整性。
支持分布式查询与更新。
2.3Tomcat的工作模式
Tomcat作为Servlet容器,有以下几种工作模式。
(1)独立的Servlet容器
在这种模式下,Tomcat可以作为独立的JavaWeb服务器,Servlet容器作为构成Web服务器的一部分而存在。
独立的Servlet容器是Tomcat的默认模式。
(2)进程内的Servlet容器
Servlet容器分为Web服务器插件和Java容器两部分。
Web服务器插件在其他Web服务器内部地址空间打开一个Java虚拟机(JVM,JavaVirtualMachine),Java容器在此JVM中运行Servlet。
如有客户端发出调用Servlet的请求,插件获得对此请求的控制并将它传递(使用JNI通信机制)给Java容器。
进程内Servlet容器对于单进程、多线程的服务器非常适合,可以提供较高的运行速度,但缺乏伸缩性。
(3)进程外的Servlet容器
Web服务器插件在其他Web服务器的外部地址空间打开一个JVM,Java容器在此JVM中运行Servlet,如有客户端发出调用Servlet的请求,插件获得对此请求的控制并将它传递(采用IPC通信机制)给Java容器。
进程外Servlet容器对客户请求的响应速度不如进程内容器,但进程外容器具有更好的伸缩性和稳定性。
2.4运行环境和开发工具的选择
Java应用程序(Applications)能在网路上开启及连结使用物件,就如同透过URLs连结使用一个本地文件系统(LocalFileSystem)。
健壮的(Robust):
由Java所编写出的程序能在多种情况下执行而具有其稳定性。
Java与C/C++最大不同点是Java有一个指针模型(PointerModel)来排除内存被覆盖(OverwritingMemory)和毁损数据(CorruptingData)的可能性。
安全的(Secure):
Java是被设计用于网络及分布式的环境中,安全性自必是一个很重要的考虑。
Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止病毒的侵入和破坏行为的发生。
结构中立的(ArchitectureNeutral):
一般而言,网络是由很多不同机型的机器所组合而成的,CPU和作业系统体系结构均有所不同;
因此,如何使一个应用程序可以在每一种机器上执行,是一个难题。
所幸,Java的编译器产生一种结构中立的目标文件格式(ObjectFileFormat);
这使得编译码得以在很多种处理器中执行。
可移植的(Portable):
原始资料型式的大小是被指定的,例如"
float"
一直是表示一个32位元IEEE754浮点运算数字,因绝大多数的CPU都具有此共同特征。
程序库属于系统的一部份,它定义了一些可移植的程序接口,Java本身具备有很好的可移植性。
解释的(Interpreted):
Java解释器能直接地在任何机器上执行Java位元码(Bytecodes),因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,有极大的帮助。
高效能的(HighPerformance):
Java位元码迅速地能被转换成机器码(MachineCode),从位元码转换到机器码的效能几乎与C与C++没有分别。
多线程的(Multithreaded):
Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。
动态的(Dynamic):
Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新,而必须重新编译程序。
2.3.1运行环境
所必须具备的开发环境:
(1)JDK1.6.0
(2)SQLServer2000
(3)操作系统为WindowXP
(4)Eclipse
(5)Dreamweaver
(6)Tomcat5.0
2.3.2开发工具
Dreamweaver是建立Web站点和应用程序的专业工具。
它将可视布局工具、应用程序开发功能和代码编辑支持组合为一个功能强大的工具,使每个级别的开发人员和设计人员都可利用它快速创建界面吸引人并且基于标准的站点和应用程序。
3过程论述
3.1需求分析
3.1.1主界面设计
访问网络相册程序时首先进入网络相册的主界面,如图1所示。
在该页面中共包括功能导航区域、图片展示区域、用户操作区域及版权信息区域4个部分。
其中,功能导航区域、用户操作区域及版权信息区域是固定的内容,用来进行其他操作,而图片展示区域是按类别显示图片信息。
在图片展示区域只显示3种类别的信息,而每一种类别显示3组图片,图片类别按每组最多的图片种类信息进行显示,这些操作需要与数据库存在一定关联。
当运行程序时,首先执行index.jsp页面,在该页面中访问Servlet实现类,通过该实现类转发到另一个页面。
图1主界面布局图
3.1.2功能描述
网络相册系统是网站为用户提供的个人相片展示和存放平台,浏览查看他人相册并给予支持。
网络相册系统主要由三大主要模块组成,分别为用户注册操作、相册浏览操作及相片操作,网络相册系统功能结构图如图1所示。
图2网络相册系统功能结构图
该系统的三大模块细分为八个部分,分别如下:
(1)用户注册
用户注册了相关信息才能用此相册系统。
(2)用户登录
用户登录时需要输入用户名和密码。
若用户登录成功,则用户可以进入相册系统;
若用户登录失败,则需重新登录。
(3)分栏显示相册
分栏显示相片类别操作时用户登录后才能进行的操作,分别显示图片的类别。
(4)滚动浏览相片
用户可以对滚动的图片进行放大或缩小显示,方便用户更清晰的浏览相片。
(5)幻灯片浏览相册
将页面中的图片交替显示,并在两张图片切换时插入变换效果。
(6)批量上传相片
用户在相片上传表单中输入完整的信息后,单击“上传”按钮即可。
(7)相片加水印
用户登录成功后可以将自己上传的图片增加透明文字,形成水印的效果。
(8)相片删除
用户登陆成功后,可以将当前的图片删除,单击“删除此相片”即可删除当前相片。
3.1.3系统流程图
网络相册系统流程图如图3所示。
图3系统流程图
3.2关键技术
3.2.1对相片上传格式的设置
在计算机文件中,相片的格式多种多样,通常情况下相片可以是“JPG”、“jpg”、“gif”、“bmp”、“BMP”等格式。
因此,用户需要保证上传的图片就是相片所需的图片格式,可以通过Java源代码解决这一问题,具体如下:
(1)将系统中所允许上传的相片格式存储在String类型的数据中,并设置这个数组的对象,该对象的名称为type。
(2)设置相片的固定格式存储在String类型的fileType对象,调用java.util.Arrays类中的binarySearch()方法,该方法的参数分别为type和fileType,主要查询fileType对象内容在type数组对象中的位置并将返回结果赋予int类型变量,该变量的名称为place。
(3)判断place变量值,如果该变量值为正数,则说明fileType在type数组对象中存在,其中正数为具体位置;
如果该变量值为负数,则说明fileType在type数组对象中不存在,其负数值为-1。
3.2.2动态操作上传表单
动态操作上传表单指的就是用户可以在网页中随意增加或减少表单的个数。
如果增加上传表单的数量,则单击“增加…”按钮即可,如果要减少表单的数量,则单击“移除…”按钮将相应的表单进行移除。
现实动态表单主要是通过JavaSrcipt脚本语言实现的,当用户单击“增加…”按钮时触发addMore()方法。
3.2.3缩略图的生成
在相册管理模块中,相片资料的上传是必不可少的功能,但随着高分辨率相片的普及,上传图片的容量会很大,例如300万像素的相片文件大小基本上是大于600KB。
在很多图片的网页中,图片容量越大打开网页的速度越慢。
为了解决这个问题,用户上传图片时可以在类中处理一张大相片并缩小它。
3.2.4相片水印效果
给图片加水印就是在图片加入指定文字。
网页中的图片上面写着网站的名称和地址,添加文字的作用就是可以最大限度防止盗用,同时也起到标识相片的功能。
3.2.5图片显示特效
在相册管理模块中,图片的显示特效主要的无间断图片滚动效果和幻灯片浏览图片。
4数据库设计和连接实现
4.1数据库设计
本系统数据库采用SQLServer2000数据库,数据库名称为db_photo,在该数据库中只存在一个数据表tb_photo,该数据表的结构如下表
tb_photo数据表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
varchar(50)
NULL
系统自动编号
photoName
相片名称
photoSize
相片大小
photoType
相片类型
photoTime
相片上传时间
photoAddress
相片地址
username