个人博客系统毕业论文.doc

上传人:good****022 文档编号:116785027 上传时间:2022-07-06 格式:DOC 页数:40 大小:1.56MB
返回 下载 相关 举报
个人博客系统毕业论文.doc_第1页
第1页 / 共40页
个人博客系统毕业论文.doc_第2页
第2页 / 共40页
个人博客系统毕业论文.doc_第3页
第3页 / 共40页
点击查看更多>>
资源描述
J JI IA AN NG GX XI I N NO OR RM MA AL L U UN NI IV VE ER RS SI IT TY Y 学学 士士 学学 位位 论论 文文 THESIS OF BACHELOR (2008 2012 年) 博客网站的设计与实现博客网站的设计与实现 Design And Implementation of Blog Website 姓 名: 张勇军 学 号: 0867010453 学 院: 软件学院 专 业: 软件工程 完成时间: 2012 年 4 月 1 号 指导老师: 刘媛春 摘 要 摘摘 要要 博客信息管理系统致力于为广大用户提供优质的互动交流平台,提高网站的 知名度和访问量,从而获得为企业提供更多产品介绍及展示的机会,提升自己 网站的价值。为了满足博客信息管理系统的要求,实现系统静态与动态页面的 相互分离,系统采用 JSP+JavaBean+Servlet 和 SQL Server2005 数据库相结合 的开发模式。 论文首先论述了系统的开发背景和设计目标,并对系统开发所采用的技术 进行相应的简单介绍。在系统分析中,对系统的模型进行简单分析,明确系统 的操作流程,并对系统进行可行性分析,确定在目前的条件下,开发博客信息 管理系统是可行的。在需求分析结果的基础上,对系统的功能模块进行划分。 接着对系统中的数据库进行模型设计,包括数据流图、实体联系图及数据表结 构。在系统的设计与实现中,确定系统的开发思想以及开发环境,并对系统中 的 JavaBean 和 Servlet 代码进行设计。最后给出了系统中模块的详细设计与实 现,并对系统模块涉及到的关键源代码进行了详细的分析。 经过调试运行后表明,系统可以满足用户创建个人博客的各项要求。 关键词关键词:MVC;JSP;JAVABEAN;博客 Abstract I Abstract The blog information management system is concentrates on high-quality interactive exchanges platform for a large number of users, increasing the visits and making the website more and more famous, thereby can acquiring for the opportunity that business enterprise providing more introductions and shows of products, promoting the value of the website.Satisfy for the functions of blog information management system, achieving the systems static page separate with dynamic page mutually, using JSP+ JavaBean+ Servlet with the mode of development that the database of SQL Server2005 combine together. The paper discusses the background of development of the system and the design of the target first, and introduces the tecknique which used to develop simply.In the analyse of system, proceeded the simple analysis to the model of the system, made sure the operation process of the system, proceed the analyse to the system, ensure that under the current term, developing blog information management system is feasible. At the foundation of requirement with the analyse result, proceeding the providing of the function module of the system. Follow, designing the database model, including the data flow diagram, entity relation diagram and data tables. during the design and realization of the system, making sure the development thought of the system and install the environment of development,at last show the design details with realize finally an a key for of detailed design with realization, and analyzed the program which relate to the system module. After debugging and running ,it shows that the system can satisfy with users to create personal blog. Key Words:MVC;JSP; JAVABEAN;Blog 目 录 II 目目 录录 第 1 章 绪论1 1.1 系统的开发背景 .1 1.2 系统开发的目标及意义 .1 1.3 本文的主要内容 .2 第 2 章 开发技术3 2.1 JSP 的基础SERVLET 技术 .4 2.2 JAVABEAN原理和机制 4 2.3 开发平台:ECLIPSE+DREAMWEAVER6 2.4 SQL SERVER 2005.6 第 3 章 分析与设计8 3.1 业务流分析及流程图 .8 3.2 数据流图分析 .8 3.3 功能模块设计 .9 3.3.1 博客注册登录管理模块.9 3.3.2 博客及文章检索查询模块10 3.3.3 博客页面显示模块10 3.3.4 博客个人管理维护模块10 3.4 数据库设计 E-R 图 11 3.5 系统数据表设计 13 第 4 章 系统实现.16 4.1 系统主界面 16 4.1.1 注册模块的实现16 4.1.2 发表评论模块18 4.1.3 删除日志模块19 4.2 修改个人资料界面 20 4.3 上传图片界面 21 III 4.4 系统主要功能模块的实现 22 4.4.1 身份验证22 4.4.2 后台文章添加管理23 4.4.3 后台文章类别管理25 4.4.4 撰写日志模块25 4.4.5 修改用户信息27 4.5 公共核心类的设计 27 4.5.1 数据库相关27 4.5.2 编写 JavaBean 类.28 4.5.3 管理类设计29 第 5 章 结束语.32 参考文献.33 致 谢34 第 1 章 绪论 0 第第 1 章章 绪论绪论 1.1 系统的开发背景系统的开发背景 博客的精神是:自由表达,开放宽容,个性张扬,专业精神。在没有自己 的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来 表达自己的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不 断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每 次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛, 没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的 一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考 得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至 是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观 点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样 就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自 己的每一天上留下了一道浅浅的思考和划痕。 不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的: (1)记录生活,在自己的每一天上留下思考的划痕。 (2)整理思路,固化知识,获得更多更好的想法。 (3)分享,将自己的想法、经验与人分享。 (4)交流、提高,通过交流产生更多的思维火花,相互提高。 (5)交友,互相鼓励,一路同行。 如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有 价值的真实的一面展示在网络世界中,相互交流沟通;如果博客仅仅为了写日 志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由 媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享。 1.2 系统开发的目标及意义系统开发的目标及意义 本系统是用 JSP 实现的一个完全基于浏览器的博客系统,任何注册个 人博客的人都拥有以下功能: (1)登录博客系统的后台管理平台。 (2)更改博客账号的基本信息。 第 1 章 绪论 1 (3)撰写日志。 (4)日志管理。 (5)评论管理。 (6)留言管理。 博客访问者具有以下功能: (1)浏览博客系统中的日志、留言、评论。 (2)发表评论及留言。 (3)检索日志。 随着 Blog 人数的增加,Blog 作为一种新的生活方式、新的工作方式和新的 学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它 使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更 加有效;个人出版变成人人都可以实现的梦想。Blog 正在影响和改变着我们的 生活。 本系统采用 MVC 模式设计实现了一个简单的博客系统。MVC 模式极大地提高 了系统的灵活性、复用性、开发效率、适应性和可维护性,充分发挥了 JSP、Servlet 等 J2EE 组件的特点3。从而,使更多的人们通过文字、图片、 声音、视频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。 Show you, share me,人人都可以博客,人人都需要博客。 1.3 本文的主要内容本文的主要内容 本系统是用 JSP 实现的一个完全基于浏览器的博客系统,任何注册个人博 客的人都拥有以下功能: (1)登录博客系统的后台管理平台。 (2)更改博客账号的基本信息。 (3)撰写日志。 (4)日志管理。 (5)评论管理。 (6)留言管理。 博客访问者具有以下功能:浏览博客系统中的日志、留言、评论。 第 2 章 开发技术 2 第第 2 2 章章 开发技术开发技术 一些人可能已经对微软的 Active Server Pages(ASP)很熟悉了;JSP 在多 数方面与 ASP 功能相同但是具有平台无关特性。他们都用来帮助 Web 内容的开 发者们使用相对少的代码创建动态的网页。一个 JSP 页面包含掺杂着 Java 代码 的 HTML 代码。 下面主要介绍下 JSP 的特点: (1)将内容的生成和显示进行分离使用 JSP 技术,Web 页面开发人员可以使 用 HTML 或者 XML 标识来设计和格式化最终页面。 (2)JSP 技术源于 Java 语言。Java 语言是体系结构中立的。这使 JSP 技术 可以在实现这个 JSP 平台的任何系统中运行。这种途径适合于异构的网络环境 和软件的分发。 (3)JSP 系统是可移植的。这种可移植性来源于体系结构中立性。 (4)强调可重用的组件。绝大多数 JSP 页面依赖于可重用的,跨平台的组件 (JavaBeans 或者 Enterprise JavaBeansTM 组件)来执行应用程序所要求的更 为复杂的处理。 (5)采用标识简化页面开发 Web 页面开发人员不会都是熟悉脚本语言的编程 人员。JSP 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标 识中进行动态内容生成所需要的。 (6)使用 JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被 封装在标识和 JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器 端运行。 (7)由于 JSP 页面的内置脚本语言是基于 Java 编程语言的,而且所有的 JSP 页面都被编译成为 Java Servlet,JSP 页面就具有 Java 技术的所有好处,包括 健壮的存储管理和安全性; (8)作为 Java 平台的一部分,JSP 拥有 Java 编程语言“一次编写,各处运 行”的特点。 当客户端请求一个 JSP 网页时,JSP Engine 会检查所请求的 JSP 网页是否 已经处于被载入执行的状态,如果没有,它会先读取 JSP 程序文件,将它换成 Servlet 程序代码编译载入,然后才执行请求的服务。也是就说,只有当客户 端第一次请求 JSP 网页时,才需要被转换、编译和载入,做到了一次执行,处 处执行。JSP 的 Servlet Class 是 JSP Engine 自动帮我们编译产生的,不像 Servlet 需要手动编译,另外,在 JSP 程序中建立新的对象和 Java Bean 非常 第 2 章 开发技术 3 方便容易。 2.1 JSP 的基础的基础Servlet 技术技术 Java Servlet 是 JSP 技术的基础,JSP 本身就是预先被编译成 Servlet,然 后再运行的,而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才 能完成,Servlet 这个名称大概源于 Applet,现在国内的翻译方式很多,本文 为了避免误会,本文直接采用 Servlet 这个名称而不做任何翻译,读者如果愿 意,可以称之为“小服务程序” 。Servlet 其实和传统的 CGI 程序和 ISAPI、NSAPI 等 Web 程序开发工具的作用是相同的,在使用 Java Servlet 以 后,用户不必再使用效率低下的 CGI 方式,也不必使用只能在某个固定 Web 服 务器平台运行的 API 方式来动态生成 Web 页面。许多 Web 服务器都支持 Servlet,即使不直接支持 Servlet 的 Web 服务器也可以通过附加的应用服务器 和模块来支持 Servlet。得益于 Java 的跨平台的特性,Servlet 也是平台无关 的,实际上,只要符合 Java Servlet 规范,Servlet 是完全平台无关且是 Web 服务器无关的。由于 Java Servlet 内部是以线程方式提供服务,不必对于每个 请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此 Java Servlet 效率非常高。但 Java Servlet 也不是没有缺点,和传统的 CGI、ISAPI、NSAPI 方式相同,Java Servlet 是利用输出 HTML 语句来实现动态 网页的,如果用 Java Servlet 来开发整个网站,动态部分和静态页面的整合过 程简直就是一场噩梦。这就是为什么 SUN 还要推出 Java Server Pages 的原因。 2.2 JavaBean 原理和机制原理和机制 JSP 的一大特点就是与 JavaBeans 的结合,而 JSP 与 JavaBeans 结合的一个 突出的优点是页面显示和业务逻辑的分离。这可以使团队协作的更好,开发出 更高质量的站点。 JavaBean 是一种可以重用的 Java 组件,它类似于 COM,在 JSP 程序中常用 来封装事物逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离, 使得系统具有更好的健壮性和灵活性。 事件处理是 JavaBeans 体系结构的核心之一。通过事件处理机智,可以让 一些组件作为事件源,发出可被描述环境或其他组件接受的事件。这样,不同 的组件就可在构造工具内组合在一起,组件之间通过事件的传递进行通信,构 成一个应用。从概念上讲,事件是一种在“源对象”和“监听对象”之间、某 第 2 章 开发技术 4 种状态发生变化的传递机智。事件有许多不同的用途,如:鼠标事件、窗口边 界改变事件、键盘事件等。在 Java 和 JavaBeans 中则是定义了一个一般的、可 扩充的事件机制,它能够: (1)对事件类型和传递模型的定义和扩充提供一个公共框架,并适合于广泛 的应用。 (2)与 Java 语言和环境有较高的集成度。 事件能描述环境捕获和被激发。能使其他构造工具采取某种技术在设计时 直接控制事件,遗迹控制事件源和事件监听者之间的联系。事件本身不依赖于 复杂的开发工具。 特别的,事件机制还应当: (1)能够发现制定的对象类可以生成的事件。 (2)能够发现制定的对象类可以观察监听到的事件。 (3)提供一个常规的注册机制,允许动态操纵事件源与事件监听者之间的关 系。 (4)不需要其他的虚拟机和语言即可实现。 (5)事件源与监听者之间可进行高效的事件传递。 (6)能完成 JavaBean 事件模型与相关的其他组件体系结构事件模型的中立 映射。 JSP 和 ASP.NET 同样是网站开发中常用的开发工具。但是,ASP 是微软的产 品,其应用只能是在 Windows 平台上,移植性差,而且以源代码的形式存放在 服务器端,安全性差。每次由服务器解释运行,运行效率不高。Jsp 页面文件 执行时被编译成字节代码,由客户端流览的 Java 虚拟机解释执行,不再是源代 码,因此执行效率和安全性高。将数据库连接的重要信息存放在 JavaBean 文件 后,可以编译成虚拟机才能解释的字节代码,确保了数据库的安全。 在 ASP 技术里,通过 Web 页面要实现一些特定的功能比较困难,比如基于 网页的报表,打印实现起来就比较麻烦。ASP 提供的解决方案是自己开发组件, 通过在服务器端注册组件,成为独立的可以重复利用的模块供读者调用。因此 要求读者需要掌握比较复杂的变成语言的开发技术。在 JSP 开发技术里,可以 通过开发 JavaBean 文件实现同样的功能,JavaBean 不需要注册,只要放置在 相应的目录下就可以运行。可以实现 ASP 的 COM 组件同样的功能。此外 JSP 推 出主要就是考虑到平台的无关性。JSP 代码可以在 APACHE、IIS 等服务器上执 行,支持大部分操作系统。JSP 继承 JAVA 技术的优点:一次运行,处处运行。 鉴于此,本系统决定使用 JSP 作为开发工具。下面简单介绍一下相关的其他 工具: 第 2 章 开发技术 5 2.3 开发平台:开发平台:Eclipse+dreamweaver Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发 提供一个全功能的、具有商业品质的工业平台。它主要由 Eclipse 项目、 Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具体包括四个部分组成 Eclipse Platform、JDT、CDT 和 PDE.JDT 支持 Java 开发、CDT 支持 C 开发、 PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供 了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。 Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无 须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 Dreamweaver MX 是一款专业的 HTML 编辑器,用于对 Web 站点、Web 页 和 Web 应用程序进行设计、编码和开发。无论您喜欢直接编写 HTML 代码的驾 驭感还是偏爱在可视化编辑环境中工作,Dreamweaver 都会为您提供帮助良多 的工具,丰富您的 Web 创作体验。 利用 Dreamweaver 中的可视化编辑功能,您可以快速地创建页面而无需编 写任何代码。不过,如果您更喜欢用手工直接编码,Dreamweaver 还包括许多 与编码相关的工具和功能。并且,借助 Dreamweaver,您还可以使用服务器语 言(例如 ASP、ASP.NET、ColdFusion 标记语言 (CFML) 、JSP 和 PHP)生成 支持动态数据库的 Web 应用程序。 2.42.4 SQLSQL SERVERSERVER 2002005 5 SQL Server 2005 作为 Microsoft 家庭的重要成员,是基于客户机/服务器 的大型关系数据库系统。SQL Server 2005 这种关系型数据库系统能够满足各 种类型的企业客户和独立软件供应商构建商业应用程序的需求,根据客户的反 映和需求,是大规模联机事务处理(OLTP) 、数据仓库和电子商务应用程序的优 秀数据库平台。SQL Server 2005 具有以下特点8: (1)强大可伸缩性; (2)支持大型 Web 站点或企业信息处理系统; (3)客户机/服务器体系结构; 而数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接 的抽象。各部件之间的关系如图 2.1 所示: 第 2 章 开发技术 6 应用程序 ODBC 管理器ODBC API sql 驱动程序管理器 数据源名 (DSN) ODBC 驱动程序 数据源 ODBC 层 数据层 应用层 图 2.1 数据关系图 第 3 章 分析与设计 7 第第 3 3 章章 分析与设计分析与设计 3.13.1 业务流分析业务流分析及流程图及流程图 用户首先需要登录该系统得到权限后才能对系统进行操作,为注册用户可 以直接进入注册模块进行注册。登录系统后确定权限,只有管理员权限,才能 对系统进行维护。普通用户可以对个人主页进行管理,管理的板块包括:日记、 相册、留言、好友、公告以及群。 个人博客系统业务流程图,如图 3.1 所示: 登录 是否登录 是否管理员 个人主页 文章管理相册管理留言管理好友管理友情链接 N 后台管理 Y Y 系统注册 N 图 3.1 博客业务流程图 3.2 数据流图数据流图分析分析 系统运行过程中,主要涉及到两部分的数据流向,一部分是管理员在系统 后台管理界面上发出的对数据库操作的数据流,另一部分是用户在应用前台使 用系统时所产生的数据流。如图 3.2 所示: 第 3 章 分析与设计 8 用用户户 注注册册用用户户信信息息表表有有效效信信息息 发发表表 日日志志 发发表表 评评论论 注注册册 有有效效 信信息息 无无效效 信信息息 有有效效日日志志 无无效效 日日志志 有有效效评评论论 无无效效评评论论 有有效效图图片片 无无效效图图片片 管管理理员员注注册册 有有效效信信息息 管管理理员员信信息息表表 无无效效信信息息 有有效效 信信息息 管管理理 用用户户 用用户户信信息息表表 用用户户信信息息表表 用用户户信信息息表表 管管理理 日日志志 管管理理 评评论论 管管理理 评评论论 图 3.2 数据流图 3.3 功能模块设计功能模块设计 博客信息管理系统分为面向网络用户的前台及面向个人博客维护管理的后 台,依据博客网站中所要实现的基本功能的设定,将所有功能分解为如下四个 主要的功能模块来加以实现。用户以合法的用户名及密码登录,系统即可按该 登录用户的权限分配操作模块。 3.3.13.3.1 博客注册登录管理模块博客注册登录管理模块 博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应 的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库 将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。 该功能模块实现了以下几个子功能。 (1)新博客在线注册。 (2)博客登录管理。 (3)跳转到博客主页。 只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志, 并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证 的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理 维护。 该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户 输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性, 例如,用户名被占用时将及时给出提示。注册成功的博客登录时,会随时根据 博客输入的登录信息进行提示,如用户名错误或者密码错误。 第 3 章 分析与设计 9 3.3.23.3.2 博客及文章检索查询模块博客及文章检索查询模块 博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览 等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。 该功能模块实现了以下几个子功能。 (1)热门博客页面推荐。 (2)最新博客日志推荐。 (3)日志信息关键字搜索。 该模块能够在网页中随时提供在线的最新日志信息。该信息需要定期更新, 网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了某个博 客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读, 并和博客进行交流互动。 为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜 索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户 浏览多个页面来寻找所需的日志信息。 3.3.33.3.3 博客页面显示模块博客页面显示模块 当网络用户进入某个人博客主页后,在该页面中将提供博客日志列表的显 示,同时为了方便用户浏览,在该模块中提供根据分类名进行日志列表的显示, 也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。 该功能模块实现了如下几个子功能。 (1)用户可以分页查看对应的日志内容及评论信息。 (2)用户可以针对日志内容发表评论。 (3)用户可以针对博客进行留言。 (4)用户可以分类查看日志内容。 在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示 等方便用户的显示效果。 3.3.43.3.4 博客个人管理维护模块博客个人管理维护模块 博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管 理。该功能模块实现了如下几个子功能: (1)日志及日志分类管理。 第 3 章 分析与设计 10 (2)评论及留言管理。 (3)个人基本信息维护管理。 借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包 括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信 息进行维护及其管理。如图 3.3 所示: 博客信息管理系统前台 博客展示日志展示评论展示留言展示用户管理 热 点 博 客 最 新 日 志 日 志 列 表 最 新 留 言 用 户 登 陆 用 户 注 册 查询管理 日 志 查 询 发 表 留 言 博 客 列 表 最 新 博 客 精 华 日 志 最 新 评 论 发 表 评 论 博 客 查 询 图 3.3 博客信息系统前台功能结构图 后台模块功能结构如图 3.4 所示。 博客管理员 个人信息管理日志管理评论管理留言管理分类管理 登 陆 注 册 修 改 个 人 信 息 撰 写 日 志 删 除 日 志 修 改 日 志 删 除 评 论 回 复 评 论 删 除 留 言 回 复 留 言 添 加 分 类 删 除 分 类 修 改 分 类 图 3.4 博客信息系统后台功能结构图 3.43.4 数据库设计数据库设计 E-RE-R 图图 为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数 据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对 数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。 第 3 章 分析与设计 11 最常用的表示概念性数据模型的方法,是实体联系方法(Entity Relationship Approach) 。这种方法用 ER 图描述现实世界中的实体,而不涉及 这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为 ER 模 型。ER 模型中包含“实体” , “联系”和“属性” 。 博客信息管理系统涉及的实体包括: (1)用户:用户 ID、用户名称、用户密码、博客主题、说明、E-mail、注 册日期、发表日志数。 (2)类别:类别编号、类别名、类别描述、用户 ID。 (3)日志:日志编号、日志标题、日志内容、类别编号、发表日期、最后 修改日期、用户 ID、浏览次数、评论数。 (4)评论:评论编号、评论标题、评论内容、发表日期、最后回复日期、 评论人、日志编号。 (5)留言:留言编号、留言标题、留言内容、发表日期、最后回复日期、 留言人、用户 ID。 综合本系统各子模块要实现的功能,通过前面对博客信息系统数据的分析 可以得到:用户表、类别表、日志表、日志评论表、留言表的数据库概念模型 (E-R 图)。 用户实体属性图如图 3.5 所示。 ID 用户名 密码 主题说明 E-mail 注册日期 发表日志数 博客管理员 图 3.5 用户实体属性图 日志类别实体属性图如图 3.6 所示。 ID 类别名类别描述 所属博客ID 日志类别 图 3.6 日志类别实体属性图 第 3 章 分析与设计 12 日志实体属性图如图 3.7 所示。 ID 日志标题 日志内容 类别ID 发表时间 最后修改时间 所属博客ID 评论数 浏览次数 日志 图 3.7 日志实体属性图 日志评论实体属性图如图 4.4 所示。 ID 评论标题 评论内容 发表时间 最后回复时间 评论者名字 评论日志ID 日志评论 图 3.8 日志评论实体属性图 留言实体属性图如图 3.8 所示。 ID 留言标题 留言内容 发表时间 最后回复时间 留言者名字 博客ID 日志评论 图 3.9 留言实体属性图 3.53.5 系统数据表设计系统数据表设计 (1)用户表,此表主要用于保存用户的基本信息。其结构如表 3.1 所示。 第 3 章 分析与设计 13 表 3.1 用户表 列名含义类型长度缺省值允许空 BlogID 用户编号 Int4 无否 UserName 用户名 Varchar20 无否 Password 用户密码 Varchar20 无否 NickName 博客主题 Varchar50 无否 Description 博客描述 Varchar100 无是 Email 电子邮件 Email50 无否 RegisterTime 注册日期 Datetime8 无否 ArticleNum 发表的日志数 Int40 否 (2)日志表,此表主要用于保存日志的基本信息。其结构如表 3.2 所示。 表 3.2 日志表 列名含义类型长度缺省值允许空 ArticleID 日志编号 Int4 无否 Title 日志标题 Varchar50 无否 Content 日志内容 text8 无否 CategoryID 类别 ID int4 无否 PublishTime 日志发表时间 Datetime8 无否 LastModifyTime 日志最后修改时间 Datetime8 无否 BlogID 用户 ID Int4 无否 ReadTimes日志浏览次数Int40否 FeedBackNum日志评论数Int40否 (3)日志评论表,此表主要用于保存日志评论的基本信息。其结构如表 3.3 所示。 第 3 章 分析与设计 14 表 3.3 日志评论表 列名含义类型长度缺省值允许空 FeedBackID 评论编号 Int4 无否 Title 评论标题 Varchar20 无否 Content 评论内容 Text8 无否 PublishTime 发表时间 Datetime8 无否 UserName 用户名 Varchar20 无否 ArticleID 日志 ID Int4 无否 (4)留言表,此表主要用于保存留言的基本信息。其结构如表 3.4 所示。 表 3.4 留言表 列名含义类型长度缺省值允许空 MessageID 留言编号 Int4 无否 Title 留言标题 Varchar20 无否 Content 留言内容 text8 无否 PublishTime 发表时间 Datetime8 无否 LastModifyTime 最后回复时间 Datetime8 无否 UserName 用户名 Varchar20 无否 BlogID 用户 ID Int4 无否 (5)类别表,此表用于保存日志类别的基本信息。其结构如表 3.5 所示。 表 3.5 类别表 列名含义类型长度缺省值允许空 CategoryID 类别编号 Int4 无否 Name 类别名 Varchar20 无否 Description 类别描述 Varchar100 无是 BlogID 用户编号 Int4 无否 第 4 章 系统实现 15 第第 4 4 章章 系统实现系统实现 4.1 系统主界面系统主界面 该界面为该系统的首页,显示出最新日志,最热日志等。访客只要一进入 该网站,就可以看到该页面。并通过该页面进入留言板、日志、发表评论等其 他感兴趣的页面。系统主界面如图 4.1 所示: 图 4.1 系统主界面 4.1.14.1.1 注册模块注册模块的实现的实现 访客可以通过该界面注册成为该系统的注册用户,拥有自己的博客空间。 界面如图 4.2 所示: 第 4 章 系统实现 16 图 4.2 用户注册界面 部分代码如下: protected void Button1_Click(object sender, EventArgs e) /连接数据库,使用存储过程 CheckUser,查看该用户名是否已经存在 SqlCommand command = new SqlCommand(“CheckUser”, conn); SqlDataReader dr=command.ExecuteReader(); if (CheckBox1.Checked) /如果同意注册条款,则可以进行注册 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”username” = TextBoxName.Text.Trim(); 第 4 章 系统实现 17 else /如果不同意注册条款,则不能进行注册 Response.Write(“window.alert(不同意注册协议不能注册! ); ”); 4.1.24.1.2 发表评论模块发表评论模块 发表评论的界面如图 4.3 所示: 图 4.3 发表评论界面 部分代码如下: protected void ButtonOk_Click(object sender, EventArgs e) if (TextBox1.Text=” ”) author = “匿名”; /如果作者没填,则默认为匿名 else author = TextBox1.Text; /获取评论的作者 SqlCommand command = new SqlCommand(“insertComment”, conn); /添加参数 SqlParameter log_ID = command.Parameters.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 =TextBox2.Text; 第 4 章 系统实现 18 SqlParameter comm_author = command.Parameters.Add(“comm_author”, SqlDbType.VarChar,30); comm_author.Value = author; int number = command.ExecuteNonQuery(); if (number window.alert(发表评论失败!);”); else Response.Write(“window.alert(发表评论成功!);”); 4.1.34.1.3 删除日志模块删除日志模块 如果需要删除已发表的日志,可单击日志管理显示界面中的删除日志链接, 将弹出删除日志确认对话框图如图4.4所示。 图 4.4 删除日志确认对话框图 再次确认用户是否真的要进行该日志的删除操作,而不是误操作。点击确 定按钮完成日志删除操作,点击取消按钮取消该删除操作。 完成日志删除操作的核心代码如下: try conn=DB.getConnetion(); /禁止自动提交,设置回滚点 conn.setAutoCommit(false); stmt=conn.createStatement(); /删除该日志的所有评论 stmt.prepareStatement(“delete from feedback where articleid=?”); stmt.setInt(1,articleid); stmt.executeUpdate(); /删除该日志 stmt.prepareStatement(“delete from article where articleid=?”); stmt.setInt(1,articleid); stmt.executeUpdate(); mit(); /事务提交 catch(Exception ex) ex.printStackTrace(); 第 4 章 系统实现 19 try conn.rollback(); /操作不成功则回滚 catrch(Exception e) e.printStackTrace(); finally try stmt.close(); conn.close(); catch(Exception e) e.printStackTrace(); 4.24.2 修改个人资料界面修改个人资料界面 图 4.5 个人资料修改界面 博主登陆后点击个人信息,查看个人信息点击修改出现图4.5界面进行修改, 其核心代码是: protected void btn_Click(object sender, EventArgs e) TbBoZhu item = new TbBoZhu(); item.AdminID = Convert.ToInt32(Request.QueryString“id“); item.Birthday = txtbirthday.Text; item.Hobby = txthobby.Text; item.NickName = txtnickname.Text; item.Sex = txtsex.Text; 第 4 章 系统实现 20 item.SuoZaiDi = txtsuozaidi.Text; item.XingZuo = txtxingzuo.Text; if (flPicPath.FileName=“) item.Photo = imgphoto.ImageUrl.Replace(“Pics/“,“); else DateTime now = DateTime.Now; item.Photo = now.ToFileTime().ToString(“) + flPicPath.FileName; if (BoZhuManage.Update(item) if (flPicPath.FileName != “) flPicPath.SaveAs(Server.MapPath(“) + “Pics“ +item.Photo); Response.Write(“alert(修改成功!);“); else Response.Write(“alert(修改失败,请稍后重试!);“); Response.Write(“location.href=UserInfo.aspx;“); 4.34.3 上传图片界面上传图片界面 上传图片包括图片名称,路径,介绍信息通过提交按钮录入数据库中17如图4.6 所示: 图 4.6 图片上传界面 第 4 章 系统实现 21 核心代码: protected void btnAdd_Click(object sender, EventArgs e) /生成存入的图片名称 DateTime now = DateTime.Now; string imageName = now.ToFileTime().ToString(“) + flPicPath.FileName; /通过相对获取物理路径 string path = Server.MapPath(“) + “Pics“ + imageName; /创建对象,并赋值 TbPics item = new TbPics(); item.PicName = txtPicName.Text; item.PicPath = imageName; item.PicDesc = txtPicDesc.Text; /执行添加操作 if (PicsManage.Add(item) /如果成功,则上传图片 flPicPath.SaveAs(path); Response.Write(“alert(添加成功!);“); else Response.Write(“alert(添加失败,请稍后重试!);“); Response.Write(“location.href=Pics.aspx;“); 4.44.4 系统主要功能模块系统主要功能模块的实现的实现 4.4.4 4.1.1 身份验证身份验证 管理员通过此登陆入口进入管理界面,此入口需要填写正确的 ID 才能够登 陆,非法 ID 不能够登陆,其界面如图 4.7 所示: 第 4 章 系统实现 22 图 4.7 管理员登录界面 一个系统能正常使用,安全性是非常重要的一个部分。安全性是对用户的生 份进行验证并通过验证的用户按照为其授予的访问权限来确定用户是否可以访 问某资源的一个过程。为了保证系统的安全,为了保证应用程序的安全,本系 统采用了身份验证技术。 该代码表示系统禁止对ST_login目录下的ST_admin进行匿名访问.如果存在 匿名用户,系统将自动验证用户名,提示错误信息。保证了系统的安全.关键代码 如下: 实现此功能的关键代码为: protected void Button1_Click(object sender, System.EventArgs e) OleDbCommand ST_myCmd = new OleDbCommand(“select * from ST_admin where ST_admin_user=“ + adminname.Text.Trim() + “ and ST_admin_psw=“ + adminpsw.Text.Trim() + “, ST_myConn); ST_myConn.Open(); OleDbDataReader ST_read = ST_myCmd.ExecuteReader(); if (ST_read.Read() Session“UserName“ = ST_read0.ToString(); Response.Redirect(“ST_admin.aspx“); else Response.Write(“alert(用户名和密码不对)“); 4.4.24.4.2 后台文章添加管理后台文章添加管理 管理员可以在此页面操作管理功能,这些功能可以对主页进行添加、删除、 第 4 章 系统实现 23 修改等操作,如图 4.8 所示: 图 4.8 管理员操作界面 实现此功能的关键代码为: public void ST_Save_Add() string ST_n_title = HtmlEncode(Request.Form“n_title“); string ST_n_author = HtmlEncode(Request.Form“n_author“); string ST_n_key = HtmlEncode(Request.Form“n_key“); string ST_n_content = Request.Form“n_content“.Replace(“, “); int ST_cmd; if (Request.Form“n_iscmd“ != null) ST_cmd = 1; else ST_cmd = 0; if (ST_n_title = “ | ST_n_key = “ | ST_n_content = “) Response.Write(“标题,摘要,内容不能为空! 点此返回“); Response.End(); else string ST_sql = “insert into ST_news (ST_n_author,ST_n_title,ST_n_key,ST_n_content,ST_c_id,ST_n_iscmd) values (“ + ST_n_author + “,“ + ST_n_title + “,“ + ST_n_key + “,“ + ST_n_content + “,“ + Request.Form“listtype“ + “,“ + ST_cmd + “)“; OleDbCommand ST_myCmd = new OleDbCommand(ST_sql, ST_myConn); ST_myConn.Open(); ST_myCmd.ExecuteNonQuery(); ST_myConn.Close(); Response.Redirect(“ST_main.aspx“); 第 4 章 系统实现 24 4.4.34.4.3 后台文章类别管理后台文章类别管理 图 4.9 类别管理界面 protected void Page_Load(object sender, System.EventArgs e) string ST_dns = ConfigurationSettings.AppSettings“conn“; ST_myConn = new OleDbConnection(ST_dns); ST_Type_List_Bind(); private
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 外文翻译


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!