版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 指导教师职称: 2012 年 5 月 目录 摘 要.4 abstract.5 3 系统分析 .10 3.1 需求分析.10 3.2 可行性研究.11 3.2.1 经济可行性 .11 3.2.2 技术可行性 .11 4 系统设计 .12 4.1 系统目标.13 4.2 系统功能结构.13 4.3 系统流程图.13 4.4 开发环境.15 5 数据库设计 .16 5.1 数据库需求设计.16 5.1.1 采集信息 .16 5.1.2 表示对象 .16 5.1.3 建立对象实体 .16 5.1.4 标识每个对象的信息类型 .16 5.1.5 标识对象之间的关系 .16 5.2 数据库概念的设计.1
2、6 5.3 数据库逻辑结构设计.18 6 公共模块设计.20 6.1 数据库连接及操作类的编写.20 6.2 字符串处理类的编写.22 6.3 系统配置.23 7 前台页面设计.24 7.1 前台首页概述.24 7.2 前台首页技术分析.25 7.3 前台首页的布局.26 8 用户登录模块设计.27 8.1 用户登录模块概述.27 8.2 用户登录模块技术分析.28 8.3 用户登录模块的实现过程.28 8.3.1 设计用户登录页面.29 8.3.2 编写用户登录的 servlet实现类 .29 8.3.3 编写用户登录的 consumerdao类的方法.29 8.3.4 判断登录用户是否为博
3、主.29 9 文章查询模块.30 9.1 文章查询模块概述.30 9.2 文章分类查询实现过程.30 9.3 文章详细查询的实现过程.31 10 后台设计.31 10.1 后面页面设计.31 10.2 后台相册设计.32 总结.33 致谢.33 参考文献.33 博客网设计与实现 摘摘 要要 博客网致力于为广大用户提供优质的互动交流平台,提高网站的知名度和访问量,从 而获得为企业提供更多产品介绍及展示的机会,提升自己网站的价值。为了满足博客网的 要求,实现系统静态与动态页面的相互分离,系统采用 jsp+javabean+servlet 和 sql server2000 数据库相结合 博客网致力于
4、为广大用户提供优质的互动交流平台,提高网站的知名度和访问量,从 而获得为企业提供更多产品介绍及展示的机会,提升自己网站的价值。为了满足博客网的 要求,实现系统静态与动态页面的相互分离,系统采用 jsp+javabean+servlet 和 sql server2000 数据库相结合 “博客” (blog 或 weblog)一词源于“web log(网络日 志) ”的缩写,是一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电 子邮件一样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利 用超文本链接、网络互动、动态更新等特点,在网络中,精选并链接全球互联网中最有价
5、值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、闪现的灵感等及 时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交 流沟通。 “博客”当然是个大家都陌生的名词,博客的英文名词就是“blog 或 weblog” (指人时对 应于 blogger) ,是一个典型的网络新事物,查阅最新的英文词典也不可能查到。该词来 源于“web log(网络日志) ”的缩写,特指一种特别的网络个人出版形式,内容按照时间 顺序排列,并且不断更新。 博客是一种零编辑、零技术、零成本、零形式的网上个人出版方式。 博客概念一般包含了三个要素: (1)网页主体内容由不断更新的、个性
6、化的众多日志组成。 (2)按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的放在最下面。 (3)内容可以是各种主题、各种外观布局和各种写作风格,但是文章内容以“超链接”作 为重要的表达方式。 因此,博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不是主要记 录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上 看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。 博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一种利他的共享 精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小我”,而博客表现的是 “大我”。也许形式上很
7、接近,但内在有着本质的差异。所有优秀博客网站中,真正表达作 者个人的内容非常有限,最多只是点缀,而不像个人网站那样是核心。 1.2 博客发展趋势 趋势一:博客现在正在形成个人的信誉机制,有了博客之后就确立了一个个人虚拟身 份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民从流 浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间是不认 识的,但有了博客之后可以天天关注,而别的人也可以通过博客找到这个人。这样随着时 间的积累就会产生一个新的东西,概括叫做“个人的信誉” ,个人的信誉就是博客和博客 之间发展各种关系的组合,这种信誉对每个人来讲可能是不同的
8、,但对每个博客来讲就产 生了新的评价机制,这个机制将是博客商业化的一个前提条件。 趋势二:博客越来越呈现出富媒体化,早期的博客是以文字为主,但随着多媒体发展 博客相册、博客图片已经成为博客的基本配置,而现在许多博客网站已经提供了博客音频 和博客视频。 趋势三:博客现在正在形成并完善精选机制,博客作为自媒体和个人媒体,产生的信 息非常巨大。其中难免产生信息垃圾,随着博客的发展,博客通过精选机制精选出大家喜 闻乐见的信息,像国内网摘、博客的评价系统等。 1.3 系统开发的背景 博客的精神是:自由表达,开放宽容,个性张扬,专业精神。 在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信
9、软件聊天,来 表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己 以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可 能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写 的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一 种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会 引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的 想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样 就能督促自己每一天不要浑浑
10、噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天 上留下了一道浅浅的思考和划痕。 不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的: (1)记录生活,在自己的每一天上留下思考的划痕。 (2)整理思路,固化知识,获得更多更好的想法。 (3)分享,将自己的想法、经验与人分享。 (4)交流、提高,通过交流产生更多的思维火花,相互提高。 (5)交友,互相鼓励,一路同行。 如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真 实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,那么博客是一 面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把
11、自身感觉有价值 的信息通过博客这个工具发布,与网友共享。 1.4 技术路线 本系统的开发采用的是 jsp+javabean+servlet 模式,在该模式中,结合了 jsp 和 servlet 技术,充分利用了 jsp 和 servlet 两种技术原有的优点。在此模式中,javabean 作为模型的角色,充当 jsp 和 servlet 通信的中间工具,servlet 处理完后设置 javabean 的属性,jsp 读取此 javabean 的属性,然后进行显示。该模式更加明显地把显示和逻辑 分离,使得代码更容易管理,适合大型项目的开发。 1.5 系统设计目标分析 本系统是用 jsp 实现的一
12、个完全基于浏览器的博客系统,任何注册个人博客的人都 拥有以下功能: (1)登录博客系统的后台管理平台。 (2)更改博客账号的基本信息。 (3)撰写日志。 (4)日志管理。 (5)评论管理。 (6)留言管理。 博客访问者具有以下功能: (1)浏览博客系统中的日志、留言、评论。 (2)发表评论及留言。 (3)检索日志。 2 基本技术方案 2.1 jsp 中的各种技术 2.1.1 jsp 概述 jsp 即 java server pages,是由 sun microsystem 公司于 1996 年 6 月推出的新技术, 是基于 java servlet 以及整个 java 体系的 web 开发技术
13、。jsp 已经成为开发 web 动态网 页重要、快速和有效的工具,是全新的网络服务器编程环境。jsp 充分利用了 java 的强 大功能,是一种优秀的服务器端技术。随着 java 技术的日益成熟和流行,jsp 在网络编 程中也变得越来越重要。jsp 基于强大的 java 语言,具有极强的扩展能力,良好的缩收 性,以及与平台无关的开发特性,成为构建动态网站的主流技术之一,jsp 有着其他技术 所不具备的优势。其优势在于:可以将内容的生成和显示进行分离、生成可重用的组件、 采用标识简化页面开发。jsp 能提供所有 servlet 的功能。 2.1.2 servlet 概述 servlet 是 ja
14、va 编写的服务器端程序,是由服务器端执行和调用的 java 类。servlet 是采用 java 技术来实现 cgi 功能的一种技术,能够像 cgi 一样动态地扩展 web 服务器的 功能,并采用请求响应模式提供 web 服务。servlet 和 cgi 一样都是运行在 web 服务 器上,用来生成 web 页面。servlet 的主要功能在于交互式地浏览和修改数据,生成动态 web 内容。 servlet 工作流程: (1)客户端发送请求信息至服务器。 (2)服务器将请求信息发送至 servlet。 (3)servlet 生成响应内容并将其传给 servlet。响应内容动态生成,通常取决于
15、客户端 的请求。 (4)服务器将响应信息返回至客户端。 2.1.3 javabean 概述 javabean 是 sun 公司为了进入因特网、企业网以及万维网上进行分布式计算的组件结 构入口。按照 sun 公司的定义,javabean 是一个可重复使用的软件部件。javabean 体系 结构是第一个全面地基于组件的标准模型之一,该组件是 java 类,这些类遵循一个接口 格式,以便于使方法命名、底层行为以及继承或实现的行为能够把类看做标准的 javabean 组件的方式进行构造。 在 java 模型中,通过 javabean 可以无限扩充 java 程序的功能,通过 javabean 的组 合
16、可以快速生成新的应用程序。javabean 具有以下特点: (1)可以实现代码的重复利用。 (2)易维护性、易使用性、易编写性。 (3)可以在 java 的任何平台上工作,不需要重新编译。 (4)可以在内部网或者网络之间进行传输。 (5)可以以其它部件的模式进行工作。 javabean 在 jsp 程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务 逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。 2.2 基于 b/s 的 web 应用体系结构 2.2.1 传统的两层体系结构 在 web 发展的初期,web 应用主要是通过静态页面在 internet 上发布信息。用户通过 浏览
17、器向服务器发送请求,服务器接收用户端的请求,向客户端浏览器发送所请求的页面。 在这种结构下,网站上的页面是静态的,无法根据用户的实际使用情况做动态的变化。网 站的信息提供者通过更新服务器上的网页来向用户提供最新的信息。用户和浏览器之间只 有有限的交互,而网站和用户之间几乎没有交互。 2.2.2 三层体系结构 cgi,asp,php 等技术的出现,使得开发动态交互式的 web 应用得以实现。用户通过 浏览器向服务器发送请求,web 服务器接收客户端发送来的请求,对请求进行分析,如果 请求是静态页面,那么就将所请求的页面发送到客户端;如果请求的是动态页面,那么就 执行此动态页面,并将执行结果发送给
18、客户端。动态页面中的脚本程序可以和数据库服务 器进行交互。 web 服务器可以根据用户的请求动态更新页面上的信息,web 信息提供者可以通过改 变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户可以通过这些动态 页面向数据库中输入信息,从而增强了用户和服务器之间的交互性。 2.2.3 jsp 网站开发模式 目前,jsp 技术已经成为一种受大多数大型企业或中小型企业喜爱的动态网页开发技 术。越来越多的技术人员也逐步成为 jsp 技术的推崇者。jsp 技术正是利用了 java 的 “一次开发,处处使用”的性能,成为了网站开发技术人员的首选技术。当然,jsp 技术 的最大优势在于能够将页
19、面的表现形式和页面的商业逻辑分开。 jsp 网站开发技术标准提供了两种开发模式:一种是 jsp+javabean 开发模式;一种 是 jsp+servlet+javabean 开发模式。 jsp+javabean 在这种模型中,jsp 页面独自响应请求并将处理结果返回给客户,所有的数据通过 javabean 来处理,jsp 实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或 者 java 代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难。 jsp+servlet+javabean servlet 技术是一种采用 java 技术来实现 cgi 功能的一种技术。serv
20、let 是运行在 web 服务器上,用来生成 web 页面。servlet 技术非常适于服务器端的处理和编程。 在此种开发模式中,jsp 技术用来显示页面,该页面中没有任何的商业处理逻辑,通过 servlet 技术来完成大量的事物处理工作。servlet 用来处理事务的请求,充当着一个控 制者的角色,并负责向客户发送请求,创建 jsp 需要的 bean 和对象,根据用户的请求行 为,决定将哪个 jsp 页面发送给用户。 从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对较慢,但是 可维护性高。 2.3 eclipse 简介 eclipse 最初由 oti 和 ibm 两家公司
21、的 ide 产品开发组创建,起始于 1999 年 4 月。 ibm 提供了最初的 eclipse 代码基础,包括 platform、jdt 和 pde。 eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功 能的、具有商业品质的工业平台。由 eclipse 项目、eclipse 工具项目和 eclipse 技术项 目三个项目组成。 2.4 tomcat 简介 如今,基于 web 的应用越来越多,传统的 html 已经满足不了如今的需求。因此需要 一个交互式的 web,于是便诞生了各种 web 语言。如 asp,jsp,php 等。当然,这些语言 与传统的语言有
22、着密切的联系,如 php 基于 c 和 c+语言,jsp 基于 java 语言。tomcat 即是一个 jsp 和 servlet 的运行平台。 tomcat 是一个免费的开源的 serlvet 容器,是 apache 基金会的 jakarta 项目中的一个核 心项目,由 apache,sun 和其它一些公司及个人共同开发而成。 2.5 sql server 简介 microsoft sql server 2000 是微软所推出的一套在 windows 平台上执行的功能强大 的关系型数据库管理系统,用以作为应用程序的数据来源,存放各种数据,并可以让用户 很容易地达成所要进行的数据存取操作。同时
23、,也提供了一些可视化的管理工具,协助数 据库系统管理者更方便快速地管理及设计数据库的内容,以及对数据库进行维护。sql server 2000 不仅可以实现个人数据库的管理,更适合企业级数据库的应用。 2.6 mvc 设计模式 mvc(model-view-controller)模式并不是 j2ee 行业人士标新立异的。mvc 的核心就 是要做到三级甚至多级的松散耦合,mvc 模式将系统分为三个部分,分别是数据模型、视 图和控制器,并定义了这三个部分之间实现通信的一种模式,使每个部分不必卷入到其他 部分的状态表示和方法实现的细节中去。每个部分有自己的数据管理规则,各个对象之间 的通信只能使用自
24、己定义的一个受限连接集合进行。保持这种分离性通常是面向对象编程 和设计要追求的目标,让各个对象只需专注于自己的事务。 模型部分代表了商业数据的访问及修改数据的操作。当数据发生改变时,要负责通知视图 部分,并且提供视图查询状态的能力。另外,还向控制部分提供应用功能。 视图部分以自己的方式显示模型的内容。访问模型的数据,并且当模型的数据发生变 化时更新模型的显示。视图还把从用户那里得到的信息传给控制部分。 控制部分定义了应用的行为。分发用户请求和选择表现视图,还负责解释用户输入,进而 调用模型的功能。在 web 应用中,用户输入包括对 web 级资源的 http、get 和 post 请求。 控制
25、部分根据用户交互和模型的状态选择要显示的视图。一个应用程序一般为相关的功能 选择一个控制部分。 3 系统分析 3.1 需求分析 信息时代的今天,网络已经成为人们工作、学习的一部分,不断充实和改变着人们的 生活。在网络中,构建一个个个性化的博客,可以充分地表达自己的思想,通过发布文章 展示个人才能,舒服个人情感;网友则可以根据主题发表个人的意见,表达自己的想法, 与博主进行思想交流,乐在其中。 3.2 可行性研究 3.2.1 经济可行性 博客通过“我的文章”和“相册上传”等功能模块,吸引更多的浏览者,增加网站的 访问量,提升网站的影响力;不断更新网站信息内容,使网站信心更加多元化,适合不同 的访
26、问群体;通过网站展现个人魅力,愉悦身心;通过与来访者的交流,不断积累经验, 吸收新的知识,使网站始终充满新鲜活力。 3.2.2 技术可行性 本系统主要应用 servlet 技术开发。servlet 技术带给程序员最大的帮助是它可以处 理客户端传来的 http 请求,并返回一个响应。servlet 是一个 java 类,java 语言能够实 现的功能,servlet 基本上都可以实现(图形界面以外) 。总的来说,servlet 技术具有以 下特点。 (1)高效 在服务器上仅有一个 java 虚拟机在运行,它的优势在于当多个来自客户端的请求进 行访问时,servlet 为每个请求分配一个线程而不是
27、进程。 (2)方便 servlet 提供了大的实用工具例程,例如处理很难完成的 html 表单数据、读取和设 置 http 头、处理 cookie 和跟踪会话功能。 (3)跨平台 servlet 时用 java 类编写的,它可以在不通过的操作系统平台和不同的应用服务器 平台下运行。 (4)功能强大 在 servlet 中,许多使用传统 cgi 程序很难完成的任务都可以用 servlet 技术轻松完 成。例如,servlet 能够直接和 web 服务器交互,而普通的 cgi 程序则不能,servlet 还 能够在各个程序之间共享数据,使得数据库连接池之类的的功能很容易实现。 (5)灵活性和可扩展
28、性 采用 servlet 开放的 web 应用程序,由于 java 类的继承性、构造函数等特点,使得 应用灵活,可随意扩展。 (6)共享数据 servlet 之间可通过共享数据很容易的实现数据库连接池。它能方便的实现管理用户 的请求,简化 session 和获取前一页面信息的操作,而在 cgi 之间通信则很差。由于每个 cgi 程序的调用都开始一个新的进程,调用间通信要通过文件进行,因而相当缓慢。同一 台服务器上的不同 cgi 程序之间的通信业相当麻烦。 (7)安全 有些 cgi 版本存在明显的安全弱点,即使是使用最新的标准和 perl 等语言,系统也 没有基本安装框架。而 java 定义有完
29、整的安全机制,包括 sslca 认证、安全政策等规范。 4 系统设计 4.1 系统目标 本系统主要实现网站建设者与访问者之间的交流,展现网站建设者的思想。主要实现如下目标: 全面展示博客网站的主题思想 通过发表“我的文章” ,表达作者的想法和观点,实现与访问者的相互交流。 通过上传个人相册,使访问者对网站建设者有进一步的了解。 用户可以查看文章,并可以对文章发表意见。 展现最新的的博客列表,方便访问浏览。 提供网站统计信息,使访问者了解网站的基本信息。 对文章信息进行管理。通过选择文章类别名称添加文正内容,并可以查询、修改和删除文章内容。 对相册信息进行管理。通过选择相册类别名称上传相册图片信
30、息,并可以查看和删除相册内容。 可以修改管理员登陆信息。 4.2 系统功能结构 博客网站分为前台和后台。其中,根据博客前台的特点,可以将其分为博主信息、网络日历、文 章查询、公告查询及相册查询等 13 部分,其中各个部分及其包括的具体功能模块如图 3.1 所示。 博客网前台 查 看 博 主 信 息 查 看 网 站 说 明 网 络 日 历 邮 箱 联 系 文章查询朋 友 查 询 友 情 链 接 用 户 投 票 相 册 查 询 公告查询 文章详细查 询 文章留言 公告详细查 询 图 3.1 博客网前台功能结构 根据博客网站后台的特点,可以将其分为用户设置、公告管理、个人相册管理、博客文章管理、 投
31、票管理、朋友信息管理及博主信息修改 7 部分,其中各个部分及其包括的具体功能模块如图 3.2 所示。 博客网后台 博客文章管理个人相册管理公告管理投票管理朋友信息管理 公 告 添 加 相 册 添 加 相 册 设 置 发 表 博 客 文 章 朋 友 信 息 添 加 文 章 分 类 朋 友 信 息 设 置 博 主 信 息 修 改 投 票 内 容 设 置 设 置 内 容 添 加 公 告 设 置 用 户 设 置 博 客 文 章 设 置 图 3.2 博客网站后台功能结构 4.3 系统流程图 为了更加清晰的表达系统的业务功能模块,下面给出博客网的系统流程图。对于不同的角色,其 所承担的任务也各自不同,流程
32、图也不一样,包括面向用户的客户端流程图和面向系统管理员的的流 程图。面向用户的客户端流程图面向用户的客户端流程图 开 始 用户登录 用户登 录判断 用户注册 博客网站首 页 相册查看 邮件联系朋友查看 博客说明查看 博主信息查看 投票 投票结果查看 公告信息查看公告信息详细查 看 文章分 类 文章查 看 文章详 细查看 文章回 复 面向用户的客户端流程图面向用户的客户端流程图 面向系统管理员的流程图面向系统管理员的流程图 开 始 用户登录 用户登录判断 (是否为系统管 理员) 博客网前台页面 博客网后台页面 博客文章管理 个人相册管理 朋友信息管理 博主个人信息修改 公告管理 投票管理 用户管
33、理 面向系统管理员的流程图 4.4 开发环境 在开发博客网系统时,需要具备下面的软件环境。 服务器端: 操作系统:windows xp web 服务器:tomcat 5.0 java 开发包:jdk 1.6 数据库:sql server2000 浏览器:ie9.0 分辨率:最佳效果为 1024*768 像素 客户端: 浏览器:ie6.0 分辨率:最佳效果为 1024*768 像素 5 数据库设计 5.1 数据库需求设计 创建博客数据库的第一步是制定实施计划,该计划可以在实现数据库时做向导,也可 以在数据库实现完成后,用做数据库的功能说明。数据库设计的复杂性和细节由数据库的 应用程序的复杂性、大
34、小及用户使用情况确定。这里介绍的博客数据库是一个相对简单的 数据库,尽管如此,数据库设计还是需要经过如图 4.1 所示的基本步骤。 采集信息表示对象创建对象实体 表示每个对象的信息类型表示对象之间的关系 图 4.1 数据库设计的基本步骤 下面详细介绍将数据库设计的基本步骤。 5.1.1 采集信息 在创建博客数据库之前,必须对博客信息有一个透彻的理解。与博客网中所涉及的每 个人进行交流,以找出他们所作的工作及他们需要从数据库中获得的内容,这是很重要的。 另外,了解该博客系统是否符合实际要求及找出相关系统的问题、限制和屏蔽也很重要。 5.1.2 表示对象 在采集信息的过程中,必须标识将由博客数据库
35、管理的主要对象或实体。对象可以是 一个有形的实体(如用户) ,也可以是一个无形的项目(文章、相册等) 。通常会有几个主 要对象,在标识了这些对象之后,相关的项目就会变得清晰。数据库中每个不同的项目都 应有一个对应的表。 5.1.3 建立对象实体 标识了博客系统中的对象后,使用该博客系统的一种直观表示方式对这些对象进行记 录是很重要的。在数据库实现期间,可以使用数据库实体作为参考。 5.1.4 标识每个对象的信息类型 标识必须为各对象存储的信息类型,这些信息是对象的表中的列(实际上就是数据表 字段的类型) 。 5.1.5 标识对象之间的关系 关系数据库的一个优势是它具有联系或关联数据库中各种项目
36、有关信息的能力。可以 单独地存储独立的信息类型,但数据库可以在必要时组合数据。在设计过程中,表示对象 间的关系需要查看各种表,以确定它们逻辑相关的方式及添加管系列以建立表与另一个表 间的关系。 5.2 数据库概念的设计 根据以上对系统所作的需求分析和系统设计,规划出本系统中使用的数据库实体信息 分别为用户信息实体、公告信息实体、个人相册信息实体、朋友信息实体、投票信息实体、 博客文章信息实体及文章回复实体。下面将介绍几个关键实体的 e-r 图。 用户信息实体 用户信息实体包括用户名、密码、姓名、性别、qq 号码、主页、兴趣、e-mail 地址、 管理级别属性,用户信息实体的 e-r 图如图所示
37、。 用户 用户名 管理级别 qq 号码 性别 e-mail 地址 密码 主页兴趣 姓名 图 4.2 用户信息实体属性 e-r 图 个人相册信息实体 个人小相册信息实体包括相册存放服务器端地址、相册描述信息及相册上传时间属性, 个人相册信息实体的 e-r 图如图所示。 个人相册信息 相册存放服务 器端地址 相册描述信息 相册上传时间 图 4.3 个人相册信息实体属性 e-r 图 博客文章信息实体 博客文章信息实体包括文章题目、文章内容、文章发布时间及文章访问次数属性。博 客文章信息实体的 e-r 图如图 4.4 所示。 文章信息 文章题目 文章内容 文章发布时 间 文章访问次数 图 4.4 博客
38、文章信息实体属性 e-r 图 5.3 数据库逻辑结构设计 本实例包含 8 个数据表,分别为个人相册信息表,用户信息表,文章信息表,文章类 型信息表,公告信息表,朋友信息表,文章评语信息表,投票信息结果表。 photo 表 4.1 个人相册信息表 aritcle 表 4.2 文章信息表 aritcletype 表 4.3 文章类型信息表 consumer 表 4.4 用户信息表 discuss 表 4.5 公告信息 friend 表 4.6 朋友信息 restore 表 4.7 文章评语信息 vote 表 4.8 投票信息结果 6 公共模块设计 6.1 数据库连接及操作类的编写 本网站使用 sq
39、l server 2000 数据库系统。安装完成 sql server 2000 jdbc driver 就可以编写与数据库连接的类。jdbconnection.java 中不仅提供了数据库的连接,还有 根据数据库获取的 statement 和 resultset 等, com.my.tool.jdbconnection 类封装 了关于数据库的各项操作。代码如下: public class jdbconnection private final string url = jdbc:microsoft:sqlserver:/localhost:1433;databasename=db_blodm
40、ay; /设置数据库url驱动和数据库连接 private final string username = sa;/设置连接的用户名 private final string password = sa;/设置登陆密码 private connection con = null;/设置数据库连接类的对象 通过静态方法家在数据库驱动,方法代码如下: static try class.forname(com.microsoft.jdbc.sqlserver.sqlserverdriver).newinstance(); catch (exception ex) system.out.println
41、(数据库加载失败);/在控制台中输入异常信息 创建数据库连接,方法代码如下: public boolean creatconnection() try con = drivermanager.getconnection(url, username, password);/取得 数据库连接 con.setautocommit(true);/设置事务的自动提交的功能 catch (sqlexception e) system.out.println(e.getmessage(); system.out.println(creatconnectionerror!); return true; 对数据
42、库的增加、修改和删除的操作,方法代码如下: public boolean executeupdate(string sql) if (con = null) creatconnection();/取得数据库连接操作 try statement stmt = con.createstatement();/创建声明连接 int icount = stmt.executeupdate(sql);/执行sql语句 system.out.println(操作成功,所影响的记录数为 + string.valueof(icount); return true;/如果执行成功,则通过关键字return返回tr
43、ue catch (sqlexception e) system.out.println(e.getmessage(); return false;/如果执行失败,则通过关键字return返回false 对数据库的查询操纵,方法代码如下: public resultset executequery(string sql) resultset rs; try if (con = null) creatconnection();/取得数据库连接操作 statement stmt = con.createstatement();/执行声明对象连接 try rs = stmt.executequery
44、(sql);/执行查询的sql语句 catch (sqlexception e) system.out.println(e.getmessage(); return null; 6.2 字符串处理类的编写 在使用 jsp 开发网站经常要过滤一些特殊字符或转换一些字符,这些功能通常需要编 写一个独立的类来完成,本系统中通过以下代码实现字符的过滤和转换: public static string tochinese(string strvalue) try if (strvalue = null) return ;/如果参数strvalue的值为空,则返回空对象 else strvalue = n
45、ew string(strvalue.getbytes(iso8859_1), gbk);/将编码转换成gbk的格 式 return strvalue;/返回转码内容 catch (exception e) return ;/返回查询的resultset结果集 在 jsp 中输出中文时要考虑中文的乱码问题,本实例中是利用 string 类的 getbyte() 方法来解决这一问题。 6.3 系统配置 本网站采用 servlet 和 javabean 结合技术开发的。javabean 技术实现对数据库 的操作不需要在 xml 文件中进行任何的配置,而正常运行 servlet 程序还需要进行适当
46、的配置,配置文件为 web.xml。下面将通过本实例详细的介绍在 web.xml 文件中 servlet 的配置。关键代码如下: this is the description of my j2ee component this is the display name of my j2ee component consumerservlet com.wy.webiter.consumerservlet this is the description of my j2ee component this is the display name of my j2ee component friend
47、servlet com.wy.webiter.friendservlet this is the description of my j2ee component this is the display name of my j2ee component voteservlet com.wy.webiter.voteservlet 7 前台页面设计 7.1 前台首页概述 在博客网的前台首页设计中,首先管理员发布的最新文章展现给用户,然后再提供文章的 分类,显示博主的信息,最新公告及博客网导航区功能等功能。 图 6.1 博客网前台首页 7.2 前台首页技术分析 如图 6.2 所示首页中的显示博主
48、的基本信息,显示登录用户信息,显示博客的主要功 能,显示博主的朋友圈及版权信息等功能,并不是仅存于在首页中,其他功能模块的子页 面中也需要包括这些部分。因此,可以将这几个部分分别保存于单独的文件中,这样在需 要放置相应功能时只需包含这些文件即可,如下图所示。 在 jsp 页面中包含文件有两种方法:一种是应用指令实现,另一种是应 用动作元素实现。本系统使用的是动作元素,该动作元素用 于向当前页面中包含其他的文件,这个文件可以是动态文件也可以是静态文件。 指令用来在 jsp 页面中包含另一个文件。包含的过程是静态的,即在指 定文件属性值时,只能是一个包含相对路径的文件名,而不能是一个变量,也不可以
49、在所 指定的文件后面添加任何参数。其语法格式如下: 动作元素可以指定加载一个静态或动态的文件,但运行结果不同。如 果指定为静态文件,那么这种指定仅仅是把指定的文件内容加到 jsp 文件中去,则这个文 件不被编译。如果是动态文件,那么这个文件,那么这个文件将会被编译器执行。由于在 页面中包含查询模块时,只需要将文件内容添加到指定的 jsp 页面中即可,所以此处可以 使用加载静态文件的方法包含文件。应用动作元素加载静态文件的语法格 式如下: jsp:include page=”relativeurl | ”flush=”true”/ 使用指令和动作元素包含文件的区别是:使用 指令包含的页面,是在编
50、译阶段将该页面的代码插入到了主页面的代码中, 最终包含页面与被包含页面生成一个文件。因此,如果被包含页面的内容有改动,需重新 编译该文件。而使用动作元素包含的页面可以是动态改变的,它是在 jsp 文件运行过程中被确定的,程序执行的是两个不同的页面,即在主页面中声明的变量,在 被包含的页面中是不可见的。由此可见,当被包含的 jsp 页面中包含动态代码时,为了不 和主页面中的代码相冲突,需要使用动作元素包含文件。应用 动作元素包含查询页面的代码如下: 。 head_top.jsp head_consumer.jsp head_main.jsp head_ringht.jsp head_down.j
51、sp 图 6.2 前台首页的布局 7.3 前台首页的布局 应用动作元素包含文件的方法进行前台首页布局的代码如下: 8 用户登录模块设计 8.1 用户登录模块概述 用户登录模块具有用户登录功能。博客网运行第一个页面便是用户登录页面,用户登 录后,可以查看博主所发表的文章。在用户登录页面中,在用户名和密码文本框中输入用 户名和密码后,单击登录按钮,系统验证成功后,用户将以会员的身份进入博客网首页, 之后在网站中可以随意查看博主发表的文章。如果登录的用户是博主本人,在博主信息显 示区域中,则出现“进入后台”超链接,博主可以直接单击此超连接,进入博客网的后台 进行管理。用户登录模块的框架如下图所示。
52、开始 用户登录 是否通过验证 不显示“进入后台”超 链接及其其他相关信息 显示“进入后台”超 链接及其其他相关信 息 否是 图 7.1 用户登录模块的框架 8.2 用户登录模块技术分析 在用户登录模块中,涉及的数据表是用户信息表(tb_sonsumer) ,在用户信息表中保 存着用户名和密码等信息,根据这些信息来创建用户登录模块的 form,名称为 consumer。 servlet 的核心在于它的 httpservlet,一般在 servlet 里面做页面的逻辑跳转工作。 用户登录模块的 servlet 实现类继承了 httpservlet 类,在该类中首先设置用户登录模块 的 consum
53、erdao 类的对象,该对象在每个具体的方法中实例化,doget()在 servlet 中自 动被调用。该方法本身没有具体事务,它是根据通过 httpservlet 的 getparameter() 方法获取的 method 参数值执行相应的方法的。 在 web.xml 文件中配置用户登录的 servlet 的具体代码如下: this is the description of my j2ee component this is the display name of my j2ee component consumerservlet com.wy.webiter.consumerservle
54、t 8.3 用户登录模块的实现过程 用户登录模块是博客网最先使用的模块,是系统的入口。在用户登录页面中,用户可 以通过输入正确的用户名和密码进入到系统,当用户没有输入用户名和密码时,系统会通 过 javascript 脚步进行判断,并予以提示信息。 8.3.1 设计用户登录页面 用户登录页面主要用于收集用户输入的信息及通过自定义 javascript 函数判断输入 信息是否为空,该页面所涉及的表单元素如下图所示。 名 称元 素 类 型重 要 类 型含 义 form1formmethod=”post”action=”comsuerservlet?method =0&sign=0”onsubmit
55、=”return usercheck()” 用户登录的表单 元素 accounttextclass=”inputinput” id=”account” size=”30”用户名 passwordpasswordclass=”inputinput” id=”account” size=”30”密码 imagesrc=”images/land.gif”登录按钮 8.3.2 编写用户登录的 servlet 实现类 在用户登录页面的用户名和密码文本框中输入正确的用户名和密码后,单击登录按钮, 网页会访问一个 url,即 consumerservlet?method=0&sign=0。从该 url 地址
56、中可以知道 用户登录模块所涉及的 method 参数值为 0,也就是当 method=0 时,会调用验证用户身份 的方法 check-consumer() 。 在验证用户身份的方法 check-consumer()中,首先需要将用户名的表单信息赋值 给新的 string 类型对象,将这个对象做参数,执行 consumerdao 类中的 getconsumerform()方法并将该方法的返回值赋给 consumerform 类的对象,判断这个对象 是否为空值,如果该对象为空值,则说明该用户输入的用户名不存在,如果该对象不为空 值,则将这个对象中的密码值取出与密码表单数据比较,如果比较值为 tru
57、e,则说明用 户输入的验证信息正确,如果比较值为 false,则说明用户输入的验证信息不正确。 8.3.3 编写用户登录的 consumerdao 类的方法 用户登录使用的 consumerdao 类的方法是 getconsumerform()方法。在 getconsumerform()中,将以用户名表单信息为参数,以用户信息表中的用户名为条件, 自行查询的 sql 语句,并将查询结果通过 return 关键字返回,如果没有查询结果,则返 回空对象。 8.3.4 判断登录用户是否为博主 普通用户身份验证成功后,在博客网的首页将显示该用户的信息;如果博主登录后, 则在博主显示区域中将显示“进入后
58、台”超链接。当用户登录成功后,用户对应的 form 信息将保存在 session 中,程序员将根据保存在 session 中的 form 信息和用户登录级别 信息(managelevel)来判断登录的用户是否为博主。 9 文章查询模块 9.1 文章查询模块概述 文章查询模块的主要功能时用户在浏览系统时查看发表的文章列表及文章详细内容, 包括文章的题目、发表时间、该文章的浏览次数等,并可以针对发表文章进行恢复。这是 博客最具代表性的特点之一。它给博主和用户提供展示文笔的平台,增加博主与用户、用 户与用户之间的交流,能够使博客系统内的气氛更加活跃,内容更加丰富。前台文章查询 模块主要包括所有文章查
59、询、文章分类查询、文章内容详细查询及文章回复功能。前台文 章查询模块如下图所示。 前台文章查询模块 文章分类 or 页查询所有文章查询 文章详细查询 前台文章回复模块 图 8.1 前台文章查询模块的框架图 9.2 文章分类查询实现过程 在本系统中,前台文章查询模块主要应用的技术是 javabean 技术,应用 动作标签创建并使用一个 javabean。执行方式非常灵活, 如果执行到,将去寻找是否存在相同 id 和 scope。 当用户登录后,在博客网的首页右侧操作区中单击文章超链接,网页会自动弹出一个 url,即 head_article.jsp,将分类显示文章的信息。 在前台分类显示文章信息
60、页面中,首先通过 javabean 定义分类操作的类 (mypagination) ,之后调用 articledao 类中的 queryarticle()方法查询所有的文章 信息,最后将查询的结果显示在页面中。 通过 javabean 技术调用 articledao 类中的 queryarticle()方法实现所有文章查 询的功能。在 queryarticle()实现方法中,typeid 为其参数,代表文章类型的标号, 当 typeid 属性为 null 时,将执行查询全部文章信息的 sql 语句;当 typeid 的属性部位 null 时,将执行按文章类型查询的 sql 语句。 9.3 文章
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市电网智能化改造施工组织设计方案
- 机械制造钢材取样检测方案
- 调味品品牌市场推广实施方案
- 钢结构工业设施隔热施工方案
- 交通运输抗旱供电方案
- 小学戏曲艺术融合课程方案
- 电炉能耗监测与管理方案
- 幼儿园五一安全协议书(2篇)
- 公共设施裂缝处理方案
- 济南2024年11版小学6年级英语第3单元暑期作业
- 2024年部编新改版语文小学四年级上册第三单元复习课教案及单元测试题(有答案)
- 《量子化学计算方法》课件
- 山东省青岛市西海岸新区2023-2024学年三年级上学期期中数学试题
- DL5009.3-2013 电力建设安全工作规程 第3部分:变电站
- 当代社会政策分析 课件 第13、14章 反贫困社会政策、公益慈善政策
- 数字化转型企业架构设计手册
- 医疗技术操作规范制度及流程
- 户外直播知识竞赛答题附答案
- 传统文化4敦厚崇礼(课件)山东友谊出版社《中华优秀传统文化》六年级
- 三相异步电动机的启停控制
- 中华民族共同体概论课件专家版8第八讲 共奉中国与中华民族聚力发展
评论
0/150
提交评论