1、asp个人博客网站的开发毕业设计论文目 录摘 要 1ABSTRACT2第 1 章 绪论 .31.1 开发背景及意义 .31.2 系统开发软件简介 .41.2.1 J2EE 41.2.2 JSP 51.2.3 SQL Server 2005 .7第 2 章 系统分析 102.1 系统功能需求 .102.1.1 访客 102.1.2 注册用户 .112.1.3 管理员 122.2 系统流程 13第 3 章 系统设计 143.1 系统 B/S 结构 143.2 数据库设计 153.2.1 数据库概念结构设计 .153.2.2 数据库逻辑结构设计 .163.3 存储过程 17第 4 章 系统实现 18
2、4.1 系统主界面 184.2 注册模块 184.3 发表评论模块 .194.4 日志管理模块 .21结 论 24参考文献 .25键入文字 键入文字 键入文字第 1 页摘 要随着互联网技术的高速发展,生活节奏的加快,博客被越来越多的人选择作为学习和交流的工具。博客的内容丰富多彩,有对其他网站的超链接和评论,有个人构思,还有新闻日志、照片、诗歌和散文等。博客具有自主性、开放性、互动性和共享性的特点,是一个很好的交流的渠道,思想展现的舞台和学术探讨的园地。本系统是一个实用的个人博客网站,集博客、留言板、链接于一身。未注册用户( 访客)可以浏览文章,发表评论及留言。也可以通过注册成为该系统的注册用户
3、,注册用户可以管理自己的博客、留言板、友情链接等,同时还可以发表新日志,上传附件等。关键词 博客,日志,评论,留言键入文字 键入文字 键入文字第 2 页ABSTRACTWith the rapid development of Internet technology and high speed of life rhythm, Blog has being chosen by more and more people as the tool of study and communication. The content of Blog is very rich and colourful: s
4、ome has hyperlink and comment of other website, some about personal thinking, news, music, article and so on. Because of the character of independence, open, interaction and share of Blog, it is regarded as an outlet of good exchange channel, the stage of personal thought displaying, and the garden
5、area of knowledge studying.This system is a practical Blog website which has Blog, photo album, message board and link. Visitor can browse articles, post comments and leave messages. The visitor can register in the Blog website, after that they can manage the Blog, photo album, message board, link o
6、f friendship etc. At the same time, they can also post new log, picture etc.Keywords Blog,log ,comment,message键入文字 键入文字 键入文字第 3 页第 1 章 绪论互联网技术的发展使得博客及博客文化成为热点。博客以其自主性、开放性、共享性的特点,是满足了人们个人自由表达和出版,知识过滤与积累,深度交流沟通的网络新方式。本章主要介绍该系统的开发背景及意义、系统的开发软件。1.1 开发背景及意义 近几年来,博客及博客文化正成为互联网的热点,并被视为继email 、bbs 和 icq 之后出
7、现的第四种网络交流方式。在网络上发表 Blog 的构想始于 1998 年,但到了 2000 年才真正开始流行。而 2000 年博客开始进入中国,并迅速发展,但都业绩平平。直到 2004 年木子美事件,才让中国民众了解到了博客,并运用博客。2005 年,国内各门户网站,如新浪、搜狐,原不看好博客业务,也加入博客阵营,开始进入博客春秋战国时代。起初,Bloggers 将其每天浏览网站的心得和意见记录下来,并予以公开,来给其他人参考和遵循。但随着 Blogging 快速扩张,它的目的与最初已相去甚远。目前网络上数以千计的 Bloggers 发表和张贴 Blog 的目的有很大的差异。不过,由于沟通方式
8、比电子邮件、讨论群组更简单和容易,Blog 已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet) 。博客正在改变社会交流方式。目前,全球参与博客的人数已经达到千万之众,而且每几秒钟,都有一名新的博客用户加盟进来。很多记者、律师、教授、学者、专家,甚至法官和议员都有了自己的博客网站,形成了独特的博客文化。美国总统候选人乐于开设博客站点,作为竞选的重要手段。企业界也正在把博客方式引入企业内部网和公司网站,用于非正式的知识管理和网络营销等。政府部门和教育领域都在尝试利用博客构建内部知识管理和沟通交流的新体系,可以让职员发表评论,积累知识,链接有意
9、思的网络资源,促进彼此的交流沟通。显然,博客的发展对应了全球范围内知识社会来临的背景。对于中国,这样一个组织机构信息化仍处于初级阶段的国家,博客这种充分发挥个人主导性和积极性的非正式知识管理工具和其深度沟通交流的功能,对于我们国家的知键入文字 键入文字 键入文字第 4 页识传播、知识扩散和有效提升组织的学习和创新能力,具有更特殊的意义。博客用户的快速增长以及组织机构对它的广泛应用,有助于推动中国向学习型社会演进。本系统根据现实的情况以及博客互动性的特点进行设计开发,旨在为用户提供一个交流的平台,促进用户间的深度沟通;并根据博客共享性的特点,促进用户之间的知识交流,使其成为一个学习的园地。1.2
10、 系统开发软件简介1.2.1 J2EE本系统主要运用 J2EE 技术开发。J2EE 是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 J2EE 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循 J2EE 架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。这种基于组件,具有平台无关性的 J2EE 结构使得 J2EE 程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且 J2EE 服务器以容器的
11、形式为所有的组件类型提供后台服务. 因为你不用自己开发这种服务 , 所以你可以集中精力解决手头的业务问题。J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:保留现存的 IT 资产: 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE 架构可以充分利用用户原有的投资,如一些公司使用的 BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及 Netscape Ap
12、plication Server。这之所以成为可能是因为 J2EE 拥有广泛的业界支持和一些重要的 企业计算 领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的 J2EE 领域的升级途径。由于基于 J2EE 平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。高效的开发: J2EE 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: 状态管理服务让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地
13、键入文字 键入文字 键入文字第 5 页完成程序开发。持续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共享数据对象 CACHE 服务 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。支持异构环境: J2EE 能够开发部署在异构环境中的可移植程序。基于 J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE 标准也允许客户订购与 J2EE 兼容的第三方的现成的组件,把他们部署到异构环境中
14、,节省了由自己制订整个方案所需的费用。可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 J2EE 平台的应用程序可被部署到各种操作系统上。例如可被部署到高端 UNIX 与大型机系统,这种系统单机可支持 64 至 256 个处理器。 (这是 NT 服务器所望尘莫及的)J2EE 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为 I
15、NTERNET 是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE 部署到可靠的操作环境中,他们支持长期的可用性。一些 J2EE 部署在 WINDOWS 环境中,客户也可选择健壮性能更好的操作系统如 Sun Solaris、IBM OS/390。最健壮的操作系统可达到 99.999%的可用性或每年只需 5 分钟停机时间。这是实时性很强商业系统理想的选择。1.2.2 JSP本系统主要用 JSP 开发的。JSP(JavaServer Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP
16、 技术有点类似ASP 技术,它是在传统的网页 HTML 文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag) ,从而形成 JSP 文件(*.jsp) 。 用 JSP 开发的 Web 应用是跨平台的,即能在 Linux 下运行,也能在其他操作系统上运行。JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于 Web 的应用
17、程序的开发变得迅速和容易。 Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 键入文字 键入文字 键入文字第 6 页JSP 与 Java Servlet 一样,是在服务器端执行的,通常返回该客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。 JSP 的 1.0 规范的最后版本是 1999 年 9 月推出的,12 月又推出了 1.1 规范。目前较新的是 JSP1.2 规范,JSP2.0 规范的征求意见稿也
18、已出台。JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成。服务器在页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。Java Servlet 是 JSP 的技术基础,而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成。 JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自 JSP 推出后,众多大公司都支持 JSP 技术的服务器,如IBM、Oracle、Bea 公司等,所以 JSP 迅速成为商业应用的服务器端语言。为了快速方便地
19、进行动态网站的开发,JSP 在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。 1.将内容的生成和显示进行分离 用 JSP 技术, Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式化最终页面,并使用 JSP 标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等) 。生成内容的逻辑被封装在标识和 JavaBeans 组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和 JavaBeans 中,所以 Web 管理人员和页面设计者,能够编辑和使用 JSP 页面,而不影响内容的生成。 在服
20、务器端,JSP 引擎解释 JSP 标识和脚本,生成所请求的内容(例如,通过访问 JavaBeans 组件,使用 JDBC 技术访问数据库或者包含文件) ,并且将结果以 HTML(或者 XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于 HTML 的 Web 浏览器的完全可用性。 2.可重用组件 绝大多数 JSP 页面依赖于可重用的、跨平台的组件(JavaBeans 或者Enterprise JavaBeans 组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发
21、过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 3.采用标识 Web 页面开发人员不会都是熟悉脚本语言的编程人员。JSP 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标识中进行动态内容生成所需要的。标准的 JSP 标识能够访问和实例化 JavaBeans 组件,设置或者检索组件属性,下载 Applet,以及执行用其他方法更难于编码和耗时的功能。 4.适应平台 几乎所有平台都支持 Java,JSP JavaBeans 几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP 和 JavaBeans 甚至不用重新编译,因键入文字 键入文字
22、键入文字第 7 页为 Java 字节码都是标准的与平台无关的。 5.数据库连接 Java 中连接数据库的技术是 JDBC,Java 程序通过 JDBC 驱动程序与数据库相连,执行查询、提取数据等操作。Sun 公司还开发了 JDBCODBC bridge,利用此技术 Java 程序可以访问带有 ODBC 驱动程序的数据库,目前大多数数据库系统都带有 ODBC 驱动程序,所以 Java 程序能访问诸如Oracle、Sybase 、MS SQL Server 和 MS Access 等数据库。 此外,通过开发标识库,JSP 技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。
23、这使得 Web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。 JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用 Java 技术家族的一部分,以及 Java 2(企业版体系结构)的一个组成部分,JSP 技术能够支持高度复杂的基于 Web 的应用。 由于 JSP 页面的内置脚本语言是基于 Java 的,而且所有的JSP 页面都被编译成为 Java Servlets,所以 JSP 页面具有 Java 技术的所有好处,包括健壮的存储管理和安全性。作为 Java 平台的一部分, JSP 拥有 Java 编程
24、语言“一次编写,各处运行 ”的特点。1.2.3 SQL Server 2005 本系统的数据库采用 SQL server 2005。SQL Server 2005 的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。SQL Server 2005 引进了一套集成的管理工具和管理应用编程接口(APIs ) ,以提供易用性、可管理性、及对大型 SQL Server 配置的支持。 SQL Server 2005旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。SQL Server 200
25、5 可伸缩性的先进性包括表格分区、复制能力的增强和 64 位支持。SQL Server 2005 引入了使用 Microsoft .NET 语言来开发数据库目标的性能。SQL Server 2005 提供一种新的 XML 数据类型,使在 SQL Server 数据库中存储 XML 片段或文件成为可能。新的查询类型和在交易过程中使用错误处理的功能,为开发人员在 SQL Server 查询开发方面提供了更高的灵活性和控制力。SQL 服务代理为各个级别的可伸缩性提供一种创新的、分发的、异步的应用系统体系结构。分析服务对数据仓库、商务智能和 line-of-business 解决方案的可伸缩性、可管理
26、性、可靠性、可用性和可规划性提供扩展。对 DTS 结构合工具的全部重新设计为开发人员和数据库管理员提供了增强的灵活性和可管理性。报表服务是一种新的报表服务器和工具箱,用于创建、管理和配置企业报键入文字 键入文字 键入文字第 8 页告。数据挖掘的功能得以增强,主要归功于四种新的运算法则、改进的数据模型和处理工具。通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL 服务器系统的可用性。使用 SQL2005 版服务器,数据库管理人员将可以在 SQL 服务器运行的情况下,执行恢复操作。在线恢复改进了 SQL 服务器的可用性,
27、因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,您可以对基底数据继续进行更新、并且对数据进行查询。新的、速度更快的恢复选项可以改进 SQL 服务器数据库的可用性。管理人员将能够在事务日志向前滚动之后,重新连接到正在恢复的数据库。SQL Server 2005 包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。SQL Server 2005 引入了 S
28、QL Server Management Studio,这是一个新型的统一的管理工具组。这个工具组将包括一些新的功能,以开发、配置 SQL Server 数据库,发现并修理其中的故障,同时这个工具组还对从前的功能进行了一些改进。SQL Server 2005 将引进一个专门的管理员连接,即使在一个服务器被锁住,或者因为其他原因不能使用的时候,管理员可以通过这个连接,接通这个正在运行的服务器,这一功能将能让管理员,通过操作诊断功能、或 TransactSQL 指令,找到并解决发现的问题。我们将在数据库层面上提供一个新的快照隔离(SI)标准。通过快照隔离,使用者将能够使用与传统一致的视野观看数据库
29、,存取最后执行的一行数据。这一功能将为服务器提供更大的可升级性。数据分割,将加强本地表检索分割,这使得大型表和索引可以得到高效的管理。对于分布式数据库而言,SQL Server 2005 提供了全面的方案修改(DDL )复制、下一代监控性能、从甲骨文(Oracle)到 SQL Server 的内置复制功能、对多个超文本传输协议(http)进行合并复制,以及就合并复制的可升级性和运行,进行了重大的改良。另外,新的对等交易式复制性能,通过使用复制,改进了其对数据向外扩展的支持。键入文字 键入文字 键入文字第 9 页第 2 章 系统分析本章将详细介绍该系统的分析过程,包括系统的各类用户的功能需求以及
30、系统流程。2.1 系统功能需求系统涉及到的用户角色分三种:访客、注册用户和管理员。下面分别介绍各类用户角色的主要功能。2.1.1 访客访客无须注册,即可浏览注册用户发表的日志、上传的附件,并且还可对自己感兴趣的日志发表评论,给注册用户留言。其功能结构如图 2-1 所示:博 客 访 问 者浏览日志 浏览图片 发表留言发表评论图2-1 访客功能图2.1.2 注册用户注册用户可以通过登录,对自己的博客空间进行管理。主要包括以下几个模块:日志管理模块:包括日志分类管理(添加新分类、删除分类) ,个人日志管理(个人日志的添加、删除、编辑) ,日志评论管理(查看评论、删除评论) 。留言板管理模块:包括查看
31、所有留言,删除留言。键入文字 键入文字 键入文字第 10 页相册管理模块:此模块包括上传新照片,删除照片。友情链接管理模块:包括添加新的友情链接,编辑友情链接,删除友情链接。功能结构如图 2-2 所示: 注 册 用 户日志管理 分类管理 评论管理 相册管理 友情链接 添加日志 编辑日志 删除日志 添加分类 删除分类 查看评论 删除评论 上传照片 删除照片 添加链接 删除链接 留言管理 删除留言查看留言 编辑链接图2-2 注册用户功能图键入文字 键入文字 键入文字第 11 页2.1.3 管理员管理员要对系统的注册用户的基本资料进行维护,并管理注册用户的日志以及留言。另外,管理员还可以修改该系统的
32、常规设置,如:修改系统公告,修改用户注册条款等。功能结构如图 2-3 所示:管 理 员 常规设置 留言 管理 用户 日志管理 用户管理修改系统公告 修改注册条款 查询用户信息 添加新用户图2-3 管理员功能图 键入文字 键入文字 键入文字第 12 页2.2 系统流程根据以上的需求分析,以及各类用户的功能要求,得到系统的流程如图 2-4 所示:浏览日志发 表 评 论登 录后 台 管 理 评论管理 分类管理 个人日志 相册管理 友情链接访 客日 志 链 接照 片注 册用 户注 册 发表留言 留 言 留 言 管 理图2-4 系统流程图键入文字 键入文字 键入文字第 13 页第 3 章 系统设计本章主
33、要介绍该系统采用的结构以及数据库的详细设计过程。3.1 系统 B/S 结构B/S 结构为三层结构,建立在广域网的基础之上,客户端只需要安装浏览器,通过 http 协议向 Web Server 提出请求,Web Server 站点收到请求后,通过 CGI(ISAPI)得到相关数据,然后以 HTML 文档的形式返回给浏览器。结构如图 3-1 所示: Web浏 览 器数 据 库 服 务 器Web服 务 器htphtmlCGI/SPA图3-1 B/S结构原理B/S 建立在广域网之上,不必是专门的网络硬件环境,有比 C/S 更强的适应范围,一般只要有操作系统和浏览器即可。在 B/S 结构的系统中,用户可
34、以通过浏览器向分布在网络上的许多服务器发出请求。B/S 结构极大地简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。B/S 体系的优点是:系统安装维护简便、数据集中管理;便于分散用户使用,适应互联网时代软件的发展趋势。根据 B/S 结构的特点和本系统的性能特点,采用 B/S结构进行开发更合适。键入文字 键入文字 键入文字第 14 页3.2 数据库设计本系统采用微软公司的大型数据库 MS SQL Server 2005,数据库结构设计如下:3.2.1 数据库概念结构设计概念结构设计就是将需求分析得到的用户需求抽
35、象为信息结构,即概念模型。在这里采用 E-R 模型。概念结构的 E-R 模型设计如图 3-2 所示:图3-2 E-R模型键入文字 键入文字 键入文字第 15 页3.2.2 数据库逻辑结构设计概念结构设计阶段得到的 E-R 模型是用户的模型,它独立于任何一种数据模型,独立于任何一种具体的 DBMS。为了建立用户所需求的数据库,需要把上述概念模型转换为某个具体的 DBMS 所支持的数据模型。数据库逻辑结构设计的任务就是将概念结构转换为特定 DBMS 的所支持的数据模型的过程。该系统数据库的逻辑结构设计如图 3-3 所示:blog_cmentPKcID log_I cmtile o_cont aut
36、hr pos_time blog_lPKlID blog_I tile ca_nam logte pst_i blog_categoryPKcteID cate_name blogIDblog_userPKsername user_pwdblogID user_x mailblog_uestbokPKID author _IP gbconte pst_im logIDblog_picturePKimaeID blog_I iaesubject mg_rl blog_linkPKliID ling_ameboID lik_url图3-3 数据库逻辑关系图键入文字 键入文字 键入文字第 16 页3
37、.3 存储过程简单的说,存储过程是由一些 SQL 语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用。它的参数可以被传递和返回。与应用程序中的函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数。根据返回值类型的不同,我们可以将存储过程分为三类:返回记录集的存储过程, 返回数值的存储过程(也可以称为标量存储过程) ,以及行为存储过程。相对于直接使用 SQL 语句,在应用程序中直接调用存储过程有以下好处:(1)减少网络通信量 (2)执行速度更快 (3)更强的适应性。(4)可用于增强安全性。由于存储过程具有以上的优点
38、,该系统也多次使用。例如:在发表日志时,存储过程 InsertLog 用于保存新发表的日志的信息。在日志管理时,存储过程updateLog 用于及时更新日志信息。在用户注册时,存储过程 checkUser 用于验证数据库中是否已经存在该用户名,以保证用户名不能重复。键入文字 键入文字 键入文字第 17 页第 4 章 系统实现本章主要介绍该系统主要部分的具体实现。4.1 系统主界面该界面为该系统的首页,显示出最新日志,最热日志等。访客只要一进入该网站,就可以看到该页面。并通过该页面进入留言板、日志、发表评论等其他感兴趣的页面。系统主界面如图 4-1 所示:图4-1 系统主界面4.2 注册模块访客
39、可以通过该界面注册成为该系统的注册用户,拥有自己的博客空间。界面如图 4-2 所示:键入文字 键入文字 键入文字第 18 页图4-2 用户注册界面protected void Button1_Click(object sender, EventArgs e)/连接数据库,使用存储过程 CheckUser,查看该用户名是否已经存在SqlCommand command = new SqlCommand(“CheckUser”, conn);SqlDataReader dr=command.ExecuteReader();if (CheckBox1.Checked) /如果同意注册条款,则可以进行注
40、册 if (dr.Read() /如果用户名已经存在,则注册失败Response.Write(“window.alert(注册失败:已有该用户名! );”);else /如果用户名不存在,则在数据库中保存新注册用户的信息 command = new SqlCommand(“InsertUser”, conn);SqlParameter RegisterName = command.Parameters.Add(“name”, SqlDbType.NVarChar, 30); /传递各个参数的值RegisterName.Value = TextBoxName.Text;Session”usern
41、ame” = TextBoxName.Text.Trim();else /如果不同意注册条款,则不能进行注册Response.Write(“window.alert(不同意注册协议不能注册! );”);4.3 发表评论模块在该模块中主要使用了存储过程。SQL 存储过程执行起来比 SQL 命令快得多,当一个 SQL 语句包含在存储过程中时,服务器不必每次都要分析和编译它。而且存储过程使程序易于维护。如果程序需要做某些修改,只要改动存储键入文字 键入文字 键入文字第 19 页过程即可。数据库建立表之后,根据系统的功能,也多次用到存储过程。创建存储过程如下: Creat Procedure Inse
42、rtComment(log_ID int, /日志编号comm_subject varchar(30), /评论主题comm_content ntext, /评论内容comm_author varchar(30), /评论作者post_time datetime /评论时间)AS Insert into blog_comment(log_ID,comm._subject,comm._content,comm._author,post_time)Values(log_ID,comm_subject,comm_content,comm_author,post_time)RETURN发表评论的界面如
43、图 4-3 所示:图4-3 发表评论界面以下为点击提交按钮时触发的事件:protected void ButtonOk_Click(object sender, EventArgs e)if (TextBox1.Text=”)author = “匿名”; /如果作者没填,则默认为匿名elseauthor = TextBox1.Text; /获取评论的作者键入文字 键入文字 键入文字第 20 页SqlCommand command = new SqlCommand(“insertComment”, conn);/添加参数SqlParameter log_ID = command.Paramete
44、rs.Add(“log_ID”,SqlDbType.Int);/传递参数的值log_ID.Value =Session”log_ID”;SqlParameter comm_subject = command.Parameters.Add(“comm_subject”, SqlDbType.VarChar, 30);comm_subject.Value=this.labSubject.Text;SqlParameter comm_content = command.Parameters.Add(“comm_content”, SqlDbType.NText);comm_content.Value
45、 =TextBox2.Text;SqlParameter comm_author = command.Parameters.Add(“comm_author”, SqlDbType.VarChar,30);comm_author.Value = author;int number = command.ExecuteNonQuery();if (number window.alert(发表评论失败!);”);elseResponse.Write(“window.alert(发表评论成功!);”);4.4 日志管理模块该模块用到的控件是 DataList 以及用户自定义控件。DataList 控件
46、是一种以自定义格式显示绑定数据源信息的控件,使数据的显示外观更加多样化,操作更加简单。(1) DataList 任务菜单中选择 编辑模板命令,DataList 控件进入模板编辑状态,在下拉列表框中选择”ItemTemplate” ,布局如图 4-4 所示:图4-4 项模板(2) 编辑模板的设计,布局如图 4-5 所示:键入文字 键入文字 键入文字第 21 页图4-5 编辑项模板(3) 各事件代码如下:protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)DataList1.EditIte
47、mIndex = -1; /编辑结束DataList1.DataBind();protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)DataList1.EditItemIndex = e.Item.ItemIndex; DataList1.DataBind(); /数据绑定protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)/获取要编辑的记录的主键号string ID = DataL
48、ist1.DataKeyse.Item.ItemIndex.ToString();/获取参数的值string title = (TextBox)e.Item.FindControl(“textBox1”).Text;string cate_name = (DropDownList)e.Item.FindControl(“dropDownList1”).SelectedItem.Text;string log_content = (TextBox)e.Item.FindControl(“textBox2”).Text;SqlDataSource1.UpdateParameters”id”.Def
49、aultValue= ID;/传递参数的值SqlDataSource1.UpdateParameters”cate_name”.DefaultValue = cate_name;SqlDataSource1.UpdateParameters”log_title”.DefaultValue = title;键入文字 键入文字 键入文字第 22 页SqlDataSource1.Update(); /更新数据源DataList1.EditItemIndex = -1; /编辑结束DataList1.DataBind();键入文字 键入文字 键入文字第 23 页结 论经过一个多月的努力,博客网站的基本功能已经实现。本系统主要是为用户提供一个交流的平台、学习的园地,达到自主性和共享性相结合的目的。该系统的特点是