个人Blog设计与实现

目录

 

摘 要... 1

Abstract. 2

1 概 述... 3

1.1 个人BLOG的概念... 3

1.2 个人BLOG的发展现状... 3

1.3 个人BLOG具有的特点和主要功能... 5

2 需求分析... 7

2.1 开发背景... 7

2.2 系统开发环境需求... 7

2.3 系统目标... 8

2.4 系统需求... 9

2.4.1 系统性能需求... 9

2.4.2 系统功能需求... 9

3 系统总体设计... 12

3.1 系统体系结构... 12

3.1.1 终端层... 13

3.1.2 接入服务器... 13

3.2 主要功能设计... 13

3.2.1 系统模块介绍... 14

3.2.2 系统的物理结构... 14

3.4 信息安全设计... 16

3.4.1 系统安全... 18

3.4.2环境安全... 18

3.4.3 物理安全... 18

3.4.4 网络安全... 18

3.5 数据库概要设计... 18

4 系统详细设计... 20

4.1首页面及主要页面设计... 20

4.2 系统交易处理流程... 20

4.3 数据库设计... 20

4.4 功能模块设计... 23

5 系统实现... 28

5.1 首页设计... 28

5.2 日志显示模块... 30

5.3 游客留言显示模块... 31

5.4 系统管理模块... 32

5.5 样式表... 39

6 结束语... 42

参考文献... 43

致谢... 44


个人Blog设计与实现

 

 

 

 

 

 

摘 要越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与人互动交流,在传统的WEB1.0时代,无论是论坛、社区还是个人网站,都试图在这些方面进行努力,随着WEB2.0时代的到来,一个新的概念出现了----博客。随着计算机网络的飞速发展,博客已经成为写网络日志必不可少的一种工具,也是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过其可以结交更多的朋友,表达更多的想法,它随时可以发布日志,方便快捷。个人博客的发展,也已经成为广告商业务拓展的重要领域。

因此本文主要论述了BLOG的概念、发展前景、特点和功能等。分析了个人博客系统的总体设计模式和系统的实现过程。最后,文章还论述了本系统在今后的发展方向。

本文的研究在一定程度上借鉴了51QQ空间的发展经验成果,系统的最终目的是通过为博客提供优质的互动交流平台,提高网站的知名度和访问量,从而获得为企业提供更多的产品介绍及发展的机会,提升自己的网络价值。

 

关键词: WEB2.0;访问量;价值


 

Personal Blog Design and Implementation

 

Software Technology  duandong  Director  yangfang

 

 

 

Abstract: More and more network users hoped that can more unfold own individuality in the network platform, interacts conveniently with the human the exchange, in traditional WEB1.0 time, regardless of being the forum, community individual website, attempts in these aspects to carry on diligently, along with WEB2.0 the time arrival, a new concept appeared----Blog. Along with computer network's swift development, the blog already became writes the network diary essential one kind of tool, is also one kind simple effective provides between the network user to carry on the online exchange the network platform, through its may become friends with more friends, expresses more ideas, it momentarily may issue the diary, facilitates quickly Individual blog development, also already became the advertising agent service development the important domain

Therefore this article mainly elaborated the BLOG concept, the prospects for development, the characteristic and the function and so on. Has analyzed individual blog system's system design pattern and the system realizes the process. Finally, the article also elaborated this system in present's development direction.

The this article's research has profited from 51, QQ space development experience achievement, system's final goal is to a certain extent through provides the high quality interaction for the blog to exchange the platform, enhances the website the popularity and the visit quantity, thus obtains for the enterprise provides the more product introductions and the development opportunity, promotes own network value.

Key word: Web 2.0; Visits; value


 

1 概 述

 

对个人而言,博客可以调动个人的积极性,充分发挥个人的创造性。从2002年开始,国内博客开始迅猛发展起来,从最初的几千个尝鲜者到2005年底的1600多万人,在这三年的发展过程中,主要呈现出如下几个特点:1.博客是可以将个人信息完整呈现在互联网上的载体。2.博客具有“准实名制”趋势,有助于信任机制的建立。本文就此探讨了我国博客发展的几个要素。

1.1个人BLOG的概念

BLOGWEB LOG的缩写,简单来说就是网络日记。它是199712月由美国的Jorn Barger最早提出的,这些年全球博客获得了突飞猛进的发展。据博客搜索Technorati统计,目前全球平均每5.8秒钟诞生一个博客。它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。

1.2 个人BLOG的发展现状

2006113,全球中文博客站点数量达到5230万,博客(Blogger)用户数达到1987,平均每个博客(Blogger)用户拥有大约2.6个博客,博客站点数和博客用户数均比去年有一定程度的增长,人均拥有博客数与去年相比也略有上升。

在近二千万的中国博客用户中,每个用户平均每7.6天更新一次博客,活跃的博客用户数(一周内有更新的博客)达到302万,约15.2%的用户每周更新博客,同时,只有大约4.6%的用户每天更新博客。在用户更新的博客中,约42%的博客文章在500个汉字(1000个字节)之内,500~1000个汉字(1000~2000个字节)的博客文章占约16.5%,越是长篇大论的文章在博客中所占比例则越少。

用户更新博客的时间大部分集中在白天,约48.5%的用户选择在工作时间(上午10~下午6点)更新自己的博客,其中,在临近下班前(下午4~6点)博客更新数达12.4%,而约16.3%的用户选择在晚上7~10点更新博客,为全日最高峰,晚上10点之后时间更新博客的数量逐渐减少。

2006年,拥有独立域名的博客站点,在博客站点总数中占约0.43%,这表明,绝大多数的用户将博客服务商作为他们的博客站点首选。而这一年,中国大陆博客服务商(BSP)持续大幅增长,博客服务商数量达到1460家,与去年同期相比增长近55%;大型网络公司如搜狐、百度纷纷推出相应的博客服务,而新兴的博客服务站点如51.com也开始崭露头角。过去一年中,中国博客发展速度整体趋缓,博客用户增长数较之去年有小幅上升,博客服务商之间的市场竞争日趋激烈,与早期提供博客服务的运营商相比,传统门户及大型公司的博客服务已占据市场主导地位。总体而言,2006年中国博客发展呈现5大特点:专业博客如医药类、教育类等增长较快,博客圈成为社区发展新方向;博客服务商(BSP)死亡比例逐渐增高,2005Top100服务商中,20%的站点已经关闭或终止服务;博客服务商(BSP)开始逐渐支持手机访问和发贴,发展迅速;综合博客服务商(BSP)增长很快,越来越多的服务商开始提供音频、视频博客等功能;利用博客进行排名作弊的站点越来越多,06年出现爆炸性增长,其中小型博客服务商(BSP)尤为突出。

个人BLOG目前面临的主要问题:由于文化市场监督的不利,势必会造成一些淫秽的内容广泛传播于网路,这就需要文化部门的有力监督。

1.3 个人BLOG具有的特点和主要功能

1)        零机制:博客属于个人所有,是自发建立和非正式的建设。BSP不能对博客发号施令。

2)        零技术:博客不需要作网站的专业知识,可以像发邮件一样简单地实现博客网页的呈现。技术的极度简化,包括架构和申请博客网站、编辑、上传和修改内容等。

3)        零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不需要注册域名的成本,不需要租用服务器空间的成本,不需要许多软件工具的成本。

4)        零编辑:博客用户就是编辑,即时写作、即时发布、自我检查。这形成了与传统写作截然不同的“体验”,真正实现了作者“零磨损”的开放式写作。

5)        零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。

6)        与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBSICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS公共匿名性很强,而个人性很弱,因此缺乏约束。电子邮件和ICQ则是多用于个人间的通讯,而博客是个人性和公共性的结合。博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比BBS简单的多。

BLOG的主要功能

1)博主发布日志
 
博主通过登陆,可以发布日志。

2) 会员对日志的评论

普通用户可以通过注册成为blog的会员,可以对日志进行评论。
    3)
游客留言
   
普通用户可以在留言面板对本系统发表意见或看法。
    4)
日志显示
    
博主发布日志之后可以在日志显示面板显示所写日志,方便用户查看,通过店家查看可以对日志进行评论。
    5)
信息搜索
   
本系统设置了对留言和日志内容的搜索,并采用了高亮显示的效果对搜索结果进行显示。  


 

2 需求分析

 

2.1 开发背景

随着时代的发展,信息技术、Internet/Intranet技术、数据库技术的不断发展完善,网络进程的加快个人BLOG系统已经成为写网络日志必不可少的一种工具。个人BLOG系统是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过个人BLOG可以结交更多的朋友,表达更多的想法,它随时可以发布日志,方便快捷。 访客可以直接在个人BLOG上留言,如提出问题或意见。我的毕业设计也就正是一个BLOG系统的开发——冷月枫林Blog系统。

2.2 系统开发环境需求

1)开发语言:JSP

作为完全解决了目前ASP,PHP的一个通病--脚本级执行,.Sun 公司借助自己在Java 上的不凡造诣,将Java Java 应用程序  Java Applet 之外,又有新的硕果,这就是Jsp--Java Server Page。下面主要介绍下JSP的特点:

l         将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。

l         强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。

l         采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。

l         使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。。

l         由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java ServletJSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性;

l         作为Java平台的一部分,JSP拥有Java编程语言一次编写,各处运行的特点。

2)开发平台:Eclipse+dreamweaver

    Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse PlatformJDTCDTPDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

Dreamweaver MX 是一款专业的 HTML 编辑器,用于对 Web 站点、Web 页和 Web 应用程序进行设计、编码和开发。无论您喜欢直接编写 HTML 代码的驾驭感还是偏爱在可视化编辑环境中工作,Dreamweaver 都会为您提供帮助良多的工具,丰富您的 Web 创作体验。

利用 Dreamweaver 中的可视化编辑功能,您可以快速地创建页面而无需编写任何代码。不过,如果您更喜欢用手工直接编码,Dreamweaver 还包括许多与编码相关的工具和功能。并且,借助 Dreamweaver,您还可以使用服务器语言(例如 ASPASP.NETColdFusion 标记语言 CFML)、JSP PHP)生成支持动态数据库的 Web 应用程序。

3) 所使用的数据库:SQL SERVER 2005

SQL Server 2005作为Microsoft家庭的重要成员,是新一代基于客户机/服务器的大型关系数据库系统。SQL Server 2005这种关系型数据库系统能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需求,根据客户的反映和需求,是大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。SQL Server 2005 具有以下特点:

Ø        强大可伸缩性;

Ø         支持大型Web站点或企业信息处理系统;

Ø         客户机/服务器体系结构;

而数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图2-1所示:

 

应用程序

ODBC管理器

ODBC API sql

驱动程序管理器

数据源名(DSN

ODBC驱动程序

数据源

ODBC

数据层

应用层

 

2-1 数据关系图

 

2.3 系统目标

博客系统开发的目标是提供网络用户之间进行在线交流的网络平台,通过个人BLOG可以结交更多的朋友,表达更多的想法,它随时可以发布日志。具体的要求如下:

1) 博主可以简单的添加和删除日志;

2) 独立于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性;

4) 容易在原先基础上进行二次开发;

5) 中间基础平台的无型性。尽量采用开放的标准技术,达到跨平台运行的效果;

为达到以下的开发目的。应遵循一定的设计和开发与原则:

1) 模块接口定义清晰;

2) 基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类;

3) 数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度;

4) 采用开放的标准和工具等;

2.4 系统需求

2.4.1 系统性能需求

银行业务的行业特性要求网上银行系统需要具备以下几个主要特性:

1) 实用性:网上银行在设计时必须遵循的一个重要原则,就是以用户为系统设计的中心。网络的发展大大降低了信息咨询的成本,用户面临更多的选择,所以,网上银行除了降低成本以外,还必须能够得到用户的认可,才能在实际运作中产生效益,避免客户流失。具体来说,应用系统应能实现用户特定的需求,操作界面友好、方便,功能设置符合用户的习惯和要求。

2) 易维护:管理员能够简单方便地管理系统,定义新的应用,并对系统进行日常维护;随着银行系统信息的变更或增加、数据规模的增大,系统升级、维护应易于操作;各子系统、功能模块的设计应具有良好的灵活性,保证在网上银行系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功能。

3) 安全性:系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证网上银行系统与后台综合业务卞机、支付系统等之间的可靠信息传输和安全数据交换。

4) 可扩展:银行业务的电子化是一项长期的任务,系统在设计时应充分考虑到业务开发不断推进的需要,降低系统在扩展新的业务功能时的复杂度。

5) 开放性:系统在体系结构和数据交换协议等方面应遵循标准和开放的原则,以确保具有良好的互操作性、可移植和可扩充性;提供开放的标准集成接口,利于不同部门之间实现集成。

2.4.2 系统功能需求

几个主要功能模块

1)博客注册登陆管理模块:

2)博客即文章检索查询模块

3)博客页面显示模块

4)博客管理模块

5)留言显示检索模块

模块包含以下页面:

1index.html

2diary.jsp

3messeage.jsp

4photo.html;

5home.html

6showrizhi.jsp

7adminmanage.jsp

系统各模块的关系如图2-2所示:

Index.html

Diary.jsp

Messeage.jsp

Photo.html

Home.html

Showrizhi.jsp

2-2 系统各模块关系图

博客系统通常提供三类服务:

1)信息服务,它可分为:日志显示,热点日志推荐,博主风采

2) 查询服务:可以根据日志内容,日志标题,留言内容,留言标题等进行模糊查询

3) 留言服务:游客可以对系统进行留言或发表看法意见

由于网上银行访问量最大的的服务为:帐户余额查询、交易历史查询和即时转帐。因此,网上银行系统将重点实现上述二项服务的功能。


 

3 系统总体设计

 

90年代以来,伴随着金融服务现象的出现和银行中介地位的削弱,银行业务经营出现了较大的变化,目前国内银行新型业务的不断增长,尤其是建立在现代通信和国际互联网技术基础上的网上银行正日趋完善,银行利用Internet不断延伸金融服务,客户利用一个Internet帐号,一台电脑,一个浏览器软件就可以在任意时间、任意地域进行网上交易,改变了过去面对面的服务方式,时空距离不再是约束银行业务发展的主要因素同时,电话银行、自助银行、理财中心等电子工具,为客户提供形式多样的咨询、理则等服务。因而传统的银行业务及新型业务通过Internet媒体的重新整合,谓之网上银行。网上银行很可能将成为未来银行业务的主流。网上银行作为未来业务的一种,并兼容未来手机银行、呼叫中心等新型银行接入渠道,此次开发进行总体规划,充分考虑网上银行业务未来发展的需要。合理规划网上银行前置机系统的系统构架,统一规划后台主机接口设计,为未来银行业务的渠道扩展奠定良好的基础。网上银行系统总结现有系统的开发始用过程中的经验与教训的基础上,调整了系统总体设计思路,并且对现有与分行的报文接入系统进行了比较大的优化。

3.1 系统体系结构

基于B/S结构的网上银行业务系统,应由终端、接入服务器、应用服务器和银行交易系统及相应的数据系统构成。网上银行系统的核心是中问的接入服务器和应用服务器部分,但系统建设中需建立所有的模拟环境,因此整个系统的建设包含相应的测试环境建设。网上银行系统总体结构图如图3所示:

银行DB

DB

3 网上银行系统总体结构

 

PC

browser

文本框: 接入服务器(web Server)

文本框: 应 用 服 务 器

文本框: 银 行 业 务 系 统

根据系统日标和需求,校园网上银行系统设计采用开放的技术体系,以ASPHTML技术作为基本技术方案。系统的整体架构是基于Server端的,这是由客户端的多样性和复杂性所决定的。对于网上银行客户端和服务器端的安全机制,可采用成熟的安全认证等技术。系统涉及到以下技术和环境:

1) asp环境

2) XML, HTML

3) Web服务器

4) SSLSecure Sockets Layer,是Internet数据安全协议)技术

5) CACertification Authority,承担网上银行中安全电子交易认证服务)环境

系统包括上面总体框架中的各部分。对于每一部分在此进行详细描述。

3.1.1 终端层

终端层是最终用户接触的设备,是原始数据的来源和最终处理结果的信息返回终点终端层的设备多样化,网上银行系统中仅考虑PC Browser。在安全性要求比较高的应用中,Browser端要下载证书,对数据进行加密,保证数据在传输过程中即使被截获也无法阅读明文。在安全要求不高的情况下,用户提交数据可以用明文提交。

3.1.2 接入服务器

根据不同的终端设备,必然会有不同的接入方式和接入服务器,同时也会有不同的协议和数据格式。对于计算机浏览器来说是Web Server和相关的动态页面服务器。接入服务器的作用是获取终端用户请求信息提交给应用服务器、将应用服务器返回的应答按一定的形式呈现给终端。它决定系统的表示形态。

3.2 主要功能设计
3.2.1 系统模块介绍

1.         博客注册登陆管理

    本模块实现新用户注册,登陆功能。其中,注册新用户时会对用户输入的注册信息进行有效的验证,包括基本数据格式的有效性,以及逻辑有效性,例如:用户名被占用时给出提示。注册成功登陆时会对博客输入的信息进行提示,如用户名、密码错误。同时在注册时还用到了验证码技术,防止恶意注册!

2.         博客文章查询显示管理

本模块用于帮助网络用户快速定位到自己关注的博客页面及对应的文章信息中。在本模块中提供了最新文章推荐,还提供了按内容或标题等关键字快速查询所需文章信息

3.         发表文章管理

该模块实现了博主发辫新文章的功能。博主发表文章时,可以选择文章所属类别,此外只有是博主才能发表文章,对此进行了严格的身份验证。

4.         发表及显示评论管理

该模块实现了与文章相关的评论管理。只有注册成本站会员才能对文章进行发表评论。

5.         留言显示及查询管理

 该模块

 

3.2.2 系统的物理结构

系统实现的物理结构如图5所示:

浏览器

浏览器

WEB服务器

数据服务器

浏览器

 

 

 

 

 

 

 


 

5 系统物理结构图

 

3.4 信息安全设计

网络的开放性导致网络技术的全面开放,任何团体和个人都可以获得网络资源,囚而网络所面临的破坏和攻击将会是多方而的,例如:可能是来自物理传V线路的攻击,也可能是对网络通信协议实施攻击;可以是对软件环境实施攻出,也可以是对硬件环境实施攻击。网络的国际性还意味着网络的攻击将不仅仅来自本地网络用户,它可能来自Internet上的任何一台机器。即,发起攻击的节点可以位于世界上任何地方。因此可以说,网络安全所面临的将是一个国际性全球化的挑战。网络的自由性意味着网络最初对用户的使用并没有提供任何的技术约束,用户可以自由地访问网络,自由地使用和发布各种类型的信息"。用户只对自己的行为负责,而没有受到任何的法律限制。尽管,Internet的发展给金融业带来了革命性的改革和开放,使得它们能够利用internet提高办事效率和增强市场反应能力,使金融服务更句竞争力。通过Internet,我们可以从异地取回重要资料,同时也要面对Internet开故给信息资料安全带来的新桃战和新危险。如何保护金融的机密信息不受黑客和工业间谍的入侵,己成为信息安全化健康发展所要考虑的重要事情之一


 

3.4.1 系统安全

网络银行CA系统的安全问题是至关重要的,制定切实可行的安全策略和实施有力的防范手段是非常必要的。系统的安全体系由下述结构组成,如图6所示。

环境安全

主机系统安全     CA产品安全

 

操作安全规则     人员管理安全

 

 

          安全策略

物理安全

网络安全

                            6 系统的安全体系结构

3.4.2 环境安全

环境安全是整个系统安全的基础,要把CA系统的危险减至最低限度,需要选择适当的设施位置,要充分考虑水灾、地震、电磁干扰与辐射以及其他等人为威胁,保证净化电源等等。

3.4.3物理安全

物理安全也是整个系统安全的基础设置之一,物理安全涉及以系统中微机和主机、服务器等资源的房间,必须进行严格的管理,对这些部门的访问要严格控制,并经过授权和进行监控。

3.4.4 网络安全

CA与第二层CA 要离线操作,与其他部分隔离开来,不与internet连接。在以系统中,与外界进行信息通信最多的是第三层CA,它既要为用户签发证书,又要支持用户对CRL, CPS等的查询,并且很多工作要求实时完成

3.5 数据库概要设计

一个设计良好的数据库,可以使系统的实现变得非常的简单,同时,也可以使系统的执行速度变得很快。反之,一个设计混乱的数据库,不仅增加了吸引的管理实现过程,同时在系统的执行过程中,使得检索变得很慢,降低效率。所以数据库的设计是一个系统设计很重要的步骤。

根据系统功能设计要求和模块划分,本站的数据库主要有用户信息、日志信息、管理员信息、留言信息、回复留言信息、评论信息、回复评论视图

数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有AccessSQL ServerOracleMy SQL等。根据用户需求和系统分析,本系统采用SQL Server2005数据库管理系统。在SQL Server2005数据库管理系统中建立名称为blog的数据库。


 

4 系统详细设计

 

 

详细设计是整个系统设计中,最重要的一个步骤。下面对系统得主要模块进行详细的介绍。

4.1首页面及主要页面设计

                               1   主要页面清单表

    

      

Index. html

首页面

CustomerLogin.jsp

普通用户登陆页面,用户只要输入已注册的帐号和密码

Diary.jsp

日志显示界面(包含日志搜索)

zhucebiao.jsp

新用户注册页面

message.jsp

游客留言页面

photo.html

相册页面

adminmanager.jsp

系统管理页面

home.html

我们的小屋页面

adminLogin.jsp

管理员登陆页面

 

4.3 数据库设计

根据系统功能设计要求和模块划分,本站的数据库主要包括日志管理员信息、日志信息、游客信息、留言信息、回复留言信息、评论信息。

根据需求和系统分析,本系统采用SQL Server2005数据库管理系统。在SQL Server2005数据库管理系统中建立名称为blog的数据库。

1)        管理员信息表如图4-1

4-1  管理员表

 

2)        日志信息表如图4-2

4-2  日志表

3)        留言信息表如图4-3

4-3  留言表

4)        回复留言信息表如图4-4

4-4  回复留言表

5)        评论信息表如图4-5

4-5  评论表

6)        回复评论信息表如图4-6所示:

4-6   回复评论视图

4.4 功能模块设计

功能的详细划分如表2所示。

5  功能详细划分表

功能设计划分

具体功能

备注

首页(Index. html

通过点击不同的导航进入不同的页面

日志(diary.jsp)

日志列表

通过点击查看全文进入全文显示页面

日志分页

一页显示5篇文章

发表留言

点进进入留言页面

加好友

本功能暂未实现

写日志

只有管理员才能发表日志

全文显示(showrizhi.jsp)

阅读数

 

评论数

 

发表评论

只有注册为会员才能发表评论

留言(message.jsp)

留言显示

 

留言发表

 

后台管理(adminmanager.jsp)

用户管理

可查看、删除用户

日志管理

可修改、删除日志

留言管理

进入留言页面进行留言管理

相册(photo.html)

小屋(home.html

管理员风采介绍

 

功能详细划分表2


 

1) 用户查看日志流程如图4-7所示:

    

验证身份

登陆

查看日志,发表评论

返回登陆或注册

Y

N

结束

                                    4-7 用户查看日志流程图

2) 管理员操作流程如图4-8所示:

    

验证身份

登陆

执行管理员操作

Y

N

结束

                                      4-8  管理员操作流程图

 


 

5 系统实现

 

本系统主要包括用户登陆、用户注册、日志显示、日志搜索、留言显示、留言搜索、相册、小屋、系统管理(包括日志管理,留言管理)、九大模块。以下是各功能模块的具体实现过程。整个系统的框架如图5-1所示。

                          主要功能模块

 

 

 

 

左模块

顶模块

                            底模块

5-1 系统框架图

5.1 首页设计

整个BLOG系统的首页采用Flash制作,如下图5-2所示

5-2 冷月枫林博客系统首页

主要代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>冷月枫林博客</title>

<style type="text/css">

<!--

body {

       background-image: url(image/1.jpg);//插入背景图片

}

-->

</style>

</head>

<body>

<!—导入FLASH插件开始-->

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="390" align="middle">

  <param name="movie" value="liuyan/image/index.swf" />

  <param name="quality" value="high" />

  <embed src="liuyan/image/index.swf" width="800" height="390" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>

</object>

<!—导入FLASH插件结束-->

</body>

</html>

 

5.2 日志显示模块

日志显示模块是显示日志的,通过从数据库调用日志编号,显示在页面上,每篇日志截取10个字符串,点击查看全文可以查看全部内容和发表评论,页面如5-2图所示:

5-2 日志显示

主要代码实现如下:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="java.io.*" %>

<jsp:useBean id="db" class="cn.DBconn" scope="application"/><!—导入JAVABEAN-->

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>冷月枫林博客</title>

</head>

<body>

<div class="top">

<!-- 左部布局开始 -->

<div class="right">

   <div class="rt-1">  

      <div class="title">

        <ul>

          <%

                   ///显示日志

                  

                   String sql="select * from rizhi where del=0 order by uptime desc";

                   ResultSet rs=db.query(sql);

                   int intPageSize; //一页显示的记录数

                   int intRowCount; //记录总数

                   int intPageCount; //总页数

                   int intPage; //待显示页码

                   String  strPage;

                   int i;

                  

                 //设置一页显示的记录数

                  intPageSize = 15;

 

                 //取得待显示页码

                 strPage = request.getParameter("page");

                 if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据

                   intPage = 1;

                   } else{//将字符串转换成整型

                 intPage = java.lang.Integer.parseInt(strPage);

                 if(intPage< 1) intPage = 1;

                 }

                 //获取记录总数

                 rs.last();

                 intRowCount = rs.getRow();

                 //记算总页数

                 intPageCount = (intRowCount+intPageSize-1) / intPageSize;

                 //调整待显示的页码

                 if(intPage >intPageCount) intPage = intPageCount;

                 if(intPageCount >0)

                 {

                 //将记录指针定位到待显示页的第一条记录上

                 rs.absolute((intPage-1) * intPageSize+1);

                 //显示数据

                 i = 0;

 

                 while(i<intPageSize && !rs.isAfterLast())

                 {

                   String choose=rs.getString("choose");

                   String idrizhi=rs.getString("idrizhi");

                   String title=rs.getString("title");

                   String uptime=rs.getString("uptime");

                   String content=rs.getString("content");

                  //content.length();            

                 String  cnt=content.substring(0,10);

                 %>

                 <div class="title2">

                      <li> <div align="left"><font color=red><%=choose %></font><%=title%></div></li>

                      <li class="tle2"><a><%=cnt%>。。。</a><a href="../showrizhi.jsp?idrizhi=<%=idrizhi%>">查看全文</a></li> 

               <%=uptime %>

              

            </div>

                  <% rs.next();

                    i++;}

                   %>

                 <%}%>

             

        </ul>

    </div>

5.3 游客留言显示模块

主要是游客的留言显示模块,游客可以不用通过注册直接在本页面留下自己对本系统的意见或者是建议。页面如图5-3所示:

5-3留言显示

主要代码实现如下:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>留言</title>

</head>

<%

String sqlh="";

ResultSet rsh=null;

String sql="select * from liuyan where isdel=0 order by lid desc ";

ResultSet rs=db.query(sql);

int intPageSize;

int intRowCount;

int intPageCount;

int intPage;

String strPage;

int i;

intPageSize = 10;

strPage = request.getParameter("page");

if(strPage==null){

intPage = 1;

} else{

intPage =Integer.parseInt(strPage);

if(intPage<1) intPage = 1;

}

rs.last();

intRowCount = rs.getRow();

intPageCount = (intRowCount+intPageSize-1) / intPageSize;

if(intPage>intPageCount)

intPage = intPageCount;

if(intPageCount>0)

{

rs.absolute((intPage-1) * intPageSize + 1);

i = 0;

while(i<intPageSize && !rs.isAfterLast()){

String lid=rs.getString("lid");

%>

<div class="box1">

<li><span class="STYLE1">编号:<%=lid%></span>

<span class="STYLE1">昵称:<%=rs.getString("name")%></span>

<span class="STYLE1">标题:<%=rs.getString("bt")%></span>

<span class="STYLE1">时间:<%=rs.getString("time")%></span>

<%

if(username!=null)

{

%>

<a href="hfliuyan.jsp?hid=<%=rs.getString("lid")%>"><img src="image/reply.gif" alt="回复" border="0" /></a>

<a href="../liuyan/sc.jsp?id=<%=rs.getString("lid")%>" ><img src="image/trash.gif" alt="删除" border="0" /></a>

<%

}

%>

</div>

<div class="box2">

<span class="STYLE1">留言内容:</span><span class="STYLE3"><%=rs.getString("nei")%></span></p>

</div>

<div class="box3">

<%

sqlh="select * from hf where hid="+rs.getString("lid");

rsh=db.query(sqlh);

while(rsh.next())

{ %>

<span class="STYLE1">博主<font color=red>[<%=rsh.getString("relname")%>]</font>回复:</span><span class="STYLE4"><%=rsh.getString("hnei")%>

<%=rsh.getString("time")%></span><br/>

<%}

rsh.close();

%>

</div><p>

<%

rs.next();

i++;

} %>

<%rs.close();

%>

<span class="STYLE1 b"><%=intPageCount%> <%=intPage%>

<a href="message.jsp"?page=1>首页</a>

<%if(intPage<intPageCount){%>

<a href="message.jsp?page=<%=intPage+1%>">下一页>></a>

<%}%>

<%if(intPage>1){%>

<a href="message.jsp?page=<%=intPage-1%>"> <<上一页</a>

<%}%>

<a href="message.jsp?page=<%=intPageCount%>">尾页</a> </span>

<%}

else{out.println("<span class='STYLE1 b'>暂无留言,赶快抢沙发吧!<a href='#top'>留言</a></span>");}

%>

<span class='STYLE1 b'><a href='#top'>留言</a></span>

</p>

</div>

5.4 系统管理模块

本模块是系统后台管理模块,管理员通过登陆进入管理页面,可对日志、留言的修改、删除等操作。如图5-4所示:

5-4 系统管理页面

主要代码实现如下所示:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title> 系统管理</title>

</head>

<body bgcolor="#C7C7C7" onLoad="init()" topmargin="0" leftmargin="0" rightmargin="0">

<%

String adminusername=(String)session.getAttribute("adminusername");

String realname=(String)session.getAttribute("realname");

if(adminusername==null)

{

out.println("<script language='javascript'>window.alert('对不起请登陆!');window.location.href=('adminLogin.jsp');</script>");

}

else

{

%>

<div class="ziti">

<div align="left">欢迎你,管理员<font color="#FF0000"><%=realname%> </font>|<a href="adminLogin.jsp"> 注销</a> </div>

</div>

<%

}

%>

<div class="box">

<div class="left">

<div class="level1">

<a class=OUTDENT href="../rizhi/diary.jsp" ><img border=0 name=imEx  src="../images/arrowUp.gif" id=ttt>返回首页</a>

</div>

<div class="level1" id='head2Parent'>

<a class=OUTDENT href="" οnclick='return expandIt("head2");' id=ttt><img border=0 name=imEx  src="../images/arrowUp.gif" id=ttt> 用户管理</a>

</div>

<div class="level2" id='head2Child'>

<a href="userList.jsp" id=ttt target="box"><li>用户列表</li></a>

<a href="adminRole.jsp" id=ttt target="box"><li>系统角色</li></a>

<a href="delCutomer.jsp" id=ttt target="box"><li>用户删除</li></a>

</div>

<div class="level1" id='head3Parent'>

<a class=OUTDENT href="" οnclick='return expandIt("head3");' id=ttt><img border=0 height=13 name=imEx  src="../images/arrowUp.gif" width=17> 日志管理</a>

</div>

<div class="level2" id='head3Child'>

<a href="../admin/diaryManager/diaryList.jsp" id=ttt target="box"><li>日志操作</li></a>

</div>

<div class="level1" id='head4Parent'>

<a class=OUTDENT href="" οnclick='return expandIt("head4");' id=ttt><img border=0 height=13 name=imEx  src="../images/arrowUp.gif" width=17> 留言管理</a>

</div>

<div class="level2" id='head4Child'>

<a href="../liuyan/message.jsp" id=ttt target="box"><li>留言操作</li></a>

</div>

</div>

<!-- 右边布局开始 -->

<div class="right">

<iframe height="858px" width="550px" scrolling="auto" name="box" src="adminDefult.jsp"></iframe>

</div>

</div>

本系统还有用户登陆、注册等模块在此就不一一介绍了。

 

5.5 样式表

除以上功能模块的设计外,本系统还定义了样式表。样式表具有如下特点:

1) 可以将格式和结构分离

2) 可以以前所未有的能力控制页面的布局

3) 可以制作出体积更小下载更快的网页

4) 可以更快更容易地维护及更新大量的网页

5) 浏览器将成为你更友好的界面

代码如下:

<!—主体字体设置-->

body{font-size:12px;}     

<!—主体布局样式样式设置开始-->

.by{ width:955px; height:auto;}

.bod{ width:980px; height:auto;}

.box{

width:750px;

height:auto;

margin-top:1px;

overflow:hidden;

 color:#FFFFFF;

 float:left;

}

.top{

width:980px;

height:auto;

float:left;

}

.left{

width:210px;

height:auto;

float:left;

}

.right{

width:770px;

height:auto;

float:left;

}

.flash{

width:200px;

height:200px;

float:left;

margin-top:28px;

margin-left:275px;

}

.xs{

width:670px;

height:580px;

float:left;

background-color:#999999;

margin-left:28px;

}

.head{

width:980px;

height:25px;

margin-top:3px;

float:left; color:#FFFFFF}

<!—主体布局样式样式设置结束-->

<!—导航条样式设置-->

.banner{ width:200px; height:auto;  float:right;}

.diary-banner1{ width:980px; height:20px; float:left; text-align:left;}     <!—日志导航条样式设置-->

.diary-banner2{ width:980px; height:50px; float:left;}

.left-1{ width:194px;height:auto;}

<!--头像设置-->

.left-1-1{ width:154px; height:150px;}

.left-1-2{ width:154px; height:30px;}

.l1 { font-size:12px; color:#999999; line-height:30px;}

<!--日志控制区设置-->

.left-2{ width:194px;height:auto;}

.lft2{ width:194px;height:auto;}

.l2{ font-size:12px; float:left; color:#FF0000; padding-left:20px;}

.l3{ font-size:12px; color:#FFFFFF;}

.l3 ul{ list-style:none;}

.l3 li{ list-style:none; padding-top:30px;}

.rt1{ width:769px;height:auto;}

.rt2{ width:769px;height:auto;}

.r1{ font-size:14px; line-height:30px; float:left; color:#FF0000;}

.rt-1{ width:770px; height:auto; float:left; padding-top:50px;}

.title{font-size:12px;  color:#FFFFFF}

.title ul{ list-style:none;display:block;}

.title li{ list-style:none; padding-left:110px;width:180px;float:left; line-height:20px;}

.title2 ul{ list-style:none;display:block;}

.title2 li{list-style:none; padding-left:110px;width:600px;float:left; line-height:20px; }

.tle2 li{ list-style:none; padding-left:0px;float:left; line-height:20px;}

.title2-ziti{  font-style:italic; color:#FFFFFF;}

.rt-fy{ widows:770px; height:auto; float:left;}

.pl{font-size:12px; list-style:none;}

.pl ul li{ font-size:12px; list-style:none; padding-left:1px;}

.rt-2{ width:770px; height:38px; float:left;text-align:center;}

.fy{ font-size:12px; text-align:center;float:left; color:#FFFFFF}

.fy ul{ list-style:none; display:block;float:left;}

.fy li{ list-style:none; padding-left:1px;line-height:20px;float:left;width:80px;}

.rizhi{ line-height:20px; list-style:none;}

.rizhi-title{ font-size:18px; color:#FFFFFF}

.next{ font-size:12px; float:right;}

.ziti{ font-size:12px; background-color:#996600; color:#FFFFFF}

<!—连接样式设置-->

a:link{color: #0000FF;text-decoration:none;}

a:hover{color:#FFF; font-weight:bold;text-decoration:none;background: #F00 ;} a:visited{color:#0000FF;text-decoration:none;}


 

6 结束语

1.本文总结

Blog被中国的“blog”先行者们称为是继E—mailBBSIM之后的第四种网络交流方式,是网络时代的自媒体------作为一种全新的互联网信息发布工具和人际沟通工具,Blog的优势在于它不拘泥于一对一一对多的信息展示,而是开辟出了一个由此及彼(由人际圈的相交而来的广域交流)的多对多的舆论时代。与其他信息平台相比,Blog传播更具个性化和立体化,且交互性更强。本文针对如何设计一个结构灵活的个人blog系统进行了研究,主要日标是能使该系统最大限度地切合客户的需求,具有良好的移植性、可扩展性且易于维护。

2.进一步的研究方向

由于时间关系,本系统在实施中有诸多考虑不足的地方。但作为一个极富发展潜力的项目,博客系统是值得继续个面完善的。在下一阶段,将针对以下几个方面进一步开展研究、升级和实践工作:

1)实现在本次开发中尚未完成的功能,争取制作成一个像51类型的博客系统;

2)在技术上进一步更新

3)在系统各个层次上加强安全性能;

 

 


 

参考文献

 

[1] 王国辉,王毅等.JSP程序开发宝典.人民邮电出版社,2007

[2] 刘彬.JSP数据库高级教程.清华大学出版社,2006

[3] 蒋文容.JSP程序设计.高等教育出版社,2004

[4] 赛奎春.JSP工程应用与项目实践.机械工业出版社,2004

[5]杨磊,陈凌云.精通EclipseWeb开发----JAVA体系结构、工具、框架及整合应用.人民邮电出版社,2006

[6] 陆昌辉,吴晓华.SQL Server 2000核心技术揭秘[M].北京希望电子出版社,2002


 

致谢

 

通过这次毕业设计,我对自己大学几年的学习有了一个总结和检验,我积累的知识有了用武之地,而且我的动手能力也大大提高了。在这段时间里,所有的工作都得靠自己努力尝试才能有所进展,而且对于整个开发过程,需要合理的进度安排和很好的逻辑协调能力,这种解决问题的能力锻炼和思考问题的模式都使我受益匪浅,所有这些都构成了我不能忘怀这一段时间之旅的原因。

这里,我衷心感谢老师的悉心指导,还有同学的帮助,感谢他们对我的支持。

我的设计还有许多漏洞和不足之处,我的论文也有值得完善之处,恳请各位老师批评指正。

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值