[计算机]jsp个人博客系统设计毕业论文.doc_第1页
[计算机]jsp个人博客系统设计毕业论文.doc_第2页
[计算机]jsp个人博客系统设计毕业论文.doc_第3页
[计算机]jsp个人博客系统设计毕业论文.doc_第4页
[计算机]jsp个人博客系统设计毕业论文.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

咸宁学院本科毕业论文:个人博客网站系统设计与实现 I 目录 摘 要 .III ABSTRACT.IV 1 概 述 .1 1.1 个人 BLOG 的概念.1 1.2 个人 BLOG 的发展现状1 1.3 个人 BLOG 具有的特点和主要功能2 2 系统分析 3 2.1 需求分析3 2.2 可行性研究3 2.2.1 经济可行性3 2.2.2 技术可行性3 3 系统设计 .5 3.1 系统目标.5 3.2 系统功能结构5 3.3 系统流程图6 3.4 开发环境7 4 数据库设计 8 4.1 数据库需求设计.8 4.1.1 采集信息8 4.1.2 表示对象8 4.1.3 建立对象实体8 4.1.4 标识每个对象的信息类型8 4.1.5 标识对象之间的关系8 4.2 数据库概念的设计9 4.3 数据库逻辑结构设计10 5 公共模块设计 .12 5.1 数据库连接及操作类的编写.12 5.2 字符串处理类的编写.13 5.3 系统配置.14 6 前台页面设计 .15 6.1 前台首页概述.15 6.2 前台首页技术分析.15 6.3 前台首页的布局16 7 用户登录模块设计 .18 7.1 用户登录模块概述18 7.2 用户登录模块技术分析18 7.3 用户登录模块的实现过程19 7.3.1 设计用户登录页面19 7.3.2 编写用户登录的 Servlet 实现类19 7.3.3 编写用户登录的 ConsumerDao 类的方法19 7.3.4 判断登录用户是否为博主19 8 文章查询模块 .20 8.1 文章查询模块概述.20 8.2 文章分类查询实现过程20 8.3 文章详细查询的实现过程21 9 后台设计 .22 9.1 后面页面设计22 9.2 后台相册设计.22 咸宁学院本科毕业论文:个人博客网站系统设计与实现 II 总结 .24 致谢 .25 参考文献 .26 咸宁学院本科毕业论文:个人博客网站系统设计与实现 III 个人博客网站系统设计与实现 学生: 邵 伟 指导教师: 邓 树 文 咸宁学院计算机科学与技术学院 湖北咸宁 437100 摘摘 要要 越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与人互动交流,在 传统的 WEB1.0 时代,无论是论坛、社区还是个人网站,都试图在这些方面进行努力,随着 WEB2.0 时代的到来,一个新的概念出现了博客。随着计算机网络的飞速发展,博客已经成为写网络日志 必不可少的一种工具,也是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过其可以 结交更多的朋友,表达更多的想法,它随时可以发布日志,方便快捷。个人博客的发展,也已经成为 广告商业务拓展的重要领域。 关键词: 博客、网络、平台、网站 咸宁学院本科毕业论文:个人博客网站系统设计与实现 IV Person blog system Design and Implementation Name: Wei Shao Supervisor:Shuwen Deng Insititute of Computer Science and Technology,Xianning University,Xianning Hubei 437100,China Abstract A growing number of Internet users hope to be able to network more platform to show its own personality, more easily interact with people in traditional WEB1.0 of the times, whether the forum, community or personal Web site, try these Aspects of the efforts, with the WEB2.0 era, a new concept emerged - blog. With the rapid development of computer networks, has become a blog to write a Web log indispensable tool is a simple and effective provision of Internet users between the on-line exchange platform for the network, through its able to make more friends, to express For more ideas, it can be released at any time log, convenient and quick. Personal development blog, advertisers have become an important area of business development. Key words: blog、network、platform、website 咸宁学院本科毕业论文:个人博客网站系统设计与实现 1 1 概 述 对个人而言,博客可以调动个人的积极性,充分发挥个人的创造性。从 2002 年开始,国内博客开 始迅猛发展起来,从最初的只有几千个尝鲜者到现在的各式各样的博客,圈子。在这三年的发展过程 中,主要呈现出如下几个特点:1.博客是可以将个人信息完整呈现在互联网上的载体。2.博客具有“准 实名制”趋势,有助于信任机制的建立。本文就此探讨了我国博客发展的几个要素。 1.1 个人 BLOG 的概念 BLOG 是 WEB LOG 的缩写,简单来说就是网络日记。它是 1997 年 12 月由美国的 Jorn Barger 最早 提出的,这些年全球博客获得了突飞猛进的发展。据博客搜索 Technorati 统计,目前全球平均每 5.8 秒钟诞生一个博客。它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、 影音、图片建立起个性化的网络世界。 在 Internet 飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政 治、经济、生活等各个方面发挥着重要的作用。因此网站建设在 Internet 应用上的地位显而易见,倍受 人们的重视。为了树立个人在网络上的形象,通过设计一个个人博客网站,以达到个人推荐、展现自 我的一个平台,个人博客网站为交流提供综合的网络环境,同时也为个人的宣传,发展,提供了一个 平台。 博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。它作 为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一 种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的 阶段。 1.2 个人 BLOG 的发展现状 2006 年 11 月 3 日,全球中文博客站点数量达到 5230 万,博客(Blogger)用户数达到 1987 万,平 均每个博客(Blogger)用户拥有大约 2.6 个博客,博客站点数和博客用户数均比前一年有一定程度的 增长,人均拥有博客数与前一年相比也略有上升。 在近二千万的中国博客用户中,每个用户平均每 7.6 天更新一次博客,活跃的博客用户数(一周内 有更新的博客)达到 302 万,约 15.2%的用户每周更新博客,同时,只有大约 4.6%的用户每天更新博 客。在用户更新的博客中,约 42%的博客文章在 500 个汉字(1000 个字节)之内,5001000 个汉字 (10002000 个字节)的博客文章占约 16.5%,越是长篇大论的文章在博客中所占比例则越少。 用户更新博客的时间大部分集中在白天,约 48.5%的用户选择在工作时间(上午 10 点下午 6 点) 更新自己的博客,其中,在临近下班前(下午 4 点6 点)博客更新数达 12.4%,而约 16.3%的用户选 择在晚上 7 点10 点更新博客,为全日最高峰,晚上 10 点之后时间更新博客的数量逐渐减少。 2006 年,拥有独立域名的博客站点,在博客站点总数中占约 0.43%,这表明,绝大多数的用户将 博客服务商作为他们的博客站点首选。而这一年,中国大陆博客服务商(BSP)持续大幅增长,博客服务 商数量达到 1460 家,与去年同期相比增长近 55%;大型网络公司如搜狐、百度纷纷推出相应的博客服 咸宁学院本科毕业论文:个人博客网站系统设计与实现 2 务,而新兴的博客服务站点如 51.com 也开始崭露头角。过去一年中,中国博客发展速度整体趋缓,博 客用户增长数较之去年有小幅上升,博客服务商之间的市场竞争日趋激烈,与早期提供博客服务的运 营商相比,传统门户及大型公司的博客服务已占据市场主导地位。总体而言,2006 年中国博客发展呈 现 5 大特点:专业博客如医药类、教育类等增长较快,博客圈成为社区发展新方向;博客服务商(BSP) 死亡比例逐渐增高,2005 年 Top100 服务商中,近 20%的站点已经关闭或终止服务;博客服务商(BSP)开 始逐渐支持手机访问和发贴,发展迅速;综合博客服务商(BSP)增长很快,越来越多的服务商开始提供 音频、视频博客等功能;利用博客进行排名作弊的站点越来越多,06 年出现爆炸性增长,其中小型博 客服务商(BSP)尤为突出。 1.3 个人 BLOG 具有的特点和主要功能 实现一个博客网站,通常是由简短而且经常更新的帖子构成,所有文章都是按照年份和日期排列, 有些类似斑竹的日记。看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本、零维护地创建 自己的网络媒体,每个都可以随时把自己的思想火花和灵感更新到博客站点上。 零机制:博客属于个人所有,是自发建立和非正式的建设。BSP 不能对博客发号施令。 零技术:博客不需要作网站的专业知识,可以像发邮件一样简单地实现博客网页的呈现。技术的极度 简化,包括架构和申请博客网站、编辑、上传和修改内容等。 零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不需要注册域名的成本,不 需要租用服务器空间的成本,不需要许多软件工具的成本。 零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。 与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBS 和 ICQ 这三种 互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS 公共匿名性很强,而个人性很弱, 因此缺乏约束。电子邮件和 ICQ 则是多用于个人间的通讯,而博客是个人性和公共性的结合。 博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比 BBS 简单的多。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 3 2 系统分析 2.1 需求分析 信息时代的今天,网络已经成为人们工作、学习的一部分,不断充实和改变着人们的生活。在网 络中,构建一个个个性化的博客,可以充分地表达自己的思想,通过发布文章展示个人才能,舒服个 人情感;网友则可以根据主题发表个人的意见,表达自己的想法,与博主进行思想交流,乐在其中。 2.2 可行性研究 2.2.1 经济可行性 博客通过“我的文章”和“相册上传”等功能模块,吸引更多的浏览者,增加网站的访问量,提 升网站的影响力;不断更新网站信息内容,使网站信心更加多元化,适合不同的访问群体;通过网站 展现个人魅力,愉悦身心;通过与来访者的交流,不断积累经验,吸收新的知识,使网站始终充满新 鲜活力。 2.2.2 技术可行性 本系统主要应用 Servlet 技术开发。Servlet 技术带给程序员最大的帮助是它可以处理客户端传来的 HTTP 请求,并返回一个响应。Servlet 是一个 Java 类,Java 语言能够实现的功能,Servlet 基本上都可 以实现(图形界面以外) 。总的来说,Servlet 技术具有以下特点。 (1)高效 在服务器上仅有一个 Java 虚拟机在运行,它的优势在于当多个来自客户端的请求进行访问时, Servlet 为每个请求分配一个线程而不是进程。 (2)方便 Servlet 提供了大的实用工具例程,例如处理很难完成的 HTML 表单数据、读取和设置 HTTP 头、 处理 Cookie 和跟踪会话功能。 (3)跨平台 Servlet 时用 Java 类编写的,它可以在不通过的操作系统平台和不同的应用服务器平台下运行。 (4)功能强大 在 Servlet 中,许多使用传统 CGI 程序很难完成的任务都可以用 Servlet 技术轻松完成。例如, Servlet 能够直接和 Web 服务器交互,而普通的 CGI 程序则不能,Servlet 还能够在各个程序之间共享数 据,使得数据库连接池之类的的功能很容易实现。 (5)灵活性和可扩展性 采用 Servlet 开放的 Web 应用程序,由于 Java 类的继承性、构造函数等特点,使得应用灵活,可 随意扩展。 (6)共享数据 咸宁学院本科毕业论文:个人博客网站系统设计与实现 4 Servlet 之间可通过共享数据很容易的实现数据库连接池。它能方便的实现管理用户的请求,简化 Session 和获取前一页面信息的操作,而在 CGI 之间通信则很差。由于每个 CGI 程序的调用都开始一个 新的进程,调用间通信要通过文件进行,因而相当缓慢。同一台服务器上的不同 CGI 程序之间的通信 业相当麻烦。 (7)安全 有些 CGI 版本存在明显的安全弱点,即使是使用最新的标准和 PERL 等语言,系统也没有基本安 装框架。而 Java 定义有完整的安全机制,包括 SSLCA 认证、安全政策等规范。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 5 3 系统设计 3.1 系统目标 本系统主要实现网站建设者与访问者之间的交流,展现网站建设者的思想。主要实现如下目标: 全面展示博客网站的主题思想 通过发表“我的文章” ,表达作者的想法和观点,实现与访问者的相互交流。 通过上传个人相册,使访问者对网站建设者有进一步的了解。 用户可以查看文章,并可以对文章发表意见。 展现最新的的博客列表,方便访问浏览。 提供网站统计信息,使访问者了解网站的基本信息。 对文章信息进行管理。通过选择文章类别名称添加文正内容,并可以查询、修改和删除文章内容。 对相册信息进行管理。通过选择相册类别名称上传相册图片信息,并可以查看和删除相册内容。 可以修改管理员登陆信息。 3.2 系统功能结构 博客网站分为前台和后台。其中,根据博客前台的特点,可以将其分为博主信息、网络日历、文 章查询、公告查询及相册查询等 13 部分,其中各个部分及其包括的具体功能模块如图 3.1 所示。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 6 博客网前台 查 看 博 主 信 息 查 看 网 站 说 明 网 络 日 历 邮 箱 联 系 文章查询朋 友 查 询 友 情 链 接 用 户 投 票 相 册 查 询 公告查询 文章详细查 询 文章留言 公告详细查 询 图 3.1 博客网前台功能结构 根据博客网站后台的特点,可以将其分为用户设置、公告管理、个人相册管理、博客文章管理、 投票管理、朋友信息管理及博主信息修改 7 部分,其中各个部分及其包括的具体功能模块如图 3.2 所示。 博客网后台 博客文章管理个人相册管理公告管理投票管理朋友信息管理 公 告 添 加 相 册 添 加 相 册 设 置 发 表 博 客 文 章 朋 友 信 息 添 加 文 章 分 类 朋 友 信 息 设 置 博 主 信 息 修 改 投 票 内 容 设 置 设 置 内 容 添 加 公 告 设 置 用 户 设 置 博 客 文 章 设 置 图 3.2 博客网站后台功能结构 3.3 系统流程图 为了更加清晰的表达系统的业务功能模块,下面给出博客网的系统流程图。对于不同的角色,其 所承担的任务也各自不同,流程图也不一样,包括面向用户的客户端流程图和面向系统管理员的的流 程图。面向用户的客户端流程图如图 3.3 所示。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 7 开 始 用户登录 用户登 录判断 用户注册 博客网站首 页 相册查看 邮件联系朋友查看 博客说明查看 博主信息查看 投票 投票结果查看 公告信息查看公告信息详细查 看 文章分 类 文章查 看 文章详 细查看 文章回 复 图 3.3 面向用户的客户端流程图 面向系统管理员的流程图如图 3.4 所示。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 8 开 始 用户登录 用户登录判断 (是否为系统管 理员) 博客网前台页面 博客网后台页面 博客文章管理 个人相册管理 朋友信息管理 博主个人信息修改 公告管理 投票管理 用户管理 图 3.4 面向系统管理员的流程图 3.4 开发环境 在开发博客网系统时,需要具备下面的软件环境。 服务器端: 操作系统:Windows xp Web 服务器:Tomcat 6.0 Java 开发包:JDK 1.5 以上 数据库:SQL Server2000 浏览器:IE6.0 分辨率:最佳效果为 1024*768 像素 客户端: 浏览器:IE6.0 分辨率:最佳效果为 1024*768 像素 咸宁学院本科毕业论文:个人博客网站系统设计与实现 9 4 数据库设计 4.1 数据库需求设计 创建博客数据库的第一步是制定实施计划,该计划可以在实现数据库时做向导,也可以在数据库 实现完成后,用做数据库的功能说明。数据库设计的复杂性和细节由数据库的应用程序的复杂性、大 小及用户使用情况确定。这里介绍的博客数据库是一个相对简单的数据库,尽管如此,数据库设计还 是需要经过如图 4.1 所示的基本步骤。 采集信息表示对象创建对象实体 表示每个对象的信息类型表示对象之间的关系 图 4.1 数据库设计的基本步骤 下面详细介绍将数据库设计的基本步骤。 4.1.1 采集信息 在创建博客数据库之前,必须对博客信息有一个透彻的理解。与博客网中所涉及的每个人进行交 流,以找出他们所作的工作及他们需要从数据库中获得的内容,这是很重要的。另外,了解该博客系 统是否符合实际要求及找出相关系统的问题、限制和屏蔽也很重要。 4.1.2 表示对象 在采集信息的过程中,必须标识将由博客数据库管理的主要对象或实体。对象可以是一个有形的 实体(如用户) ,也可以是一个无形的项目(文章、相册等) 。通常会有几个主要对象,在标识了这些 对象之后,相关的项目就会变得清晰。数据库中每个不同的项目都应有一个对应的表。 4.1.3 建立对象实体 标识了博客系统中的对象后,使用该博客系统的一种直观表示方式对这些对象进行记录是很重要 的。在数据库实现期间,可以使用数据库实体作为参考。 4.1.4 标识每个对象的信息类型 标识必须为各对象存储的信息类型,这些信息是对象的表中的列(实际上就是数据表字段的类型) 。 4.1.5 标识对象之间的关系 关系数据库的一个优势是它具有联系或关联数据库中各种项目有关信息的能力。可以单独地存储 独立的信息类型,但数据库可以在必要时组合数据。在设计过程中,表示对象间的关系需要查看各种 表,以确定它们逻辑相关的方式及添加管系列以建立表与另一个表间的关系。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 10 4.2 数据库概念的设计 根据以上对系统所作的需求分析和系统设计,规划出本系统中使用的数据库实体信息分别为用户 信息实体、公告信息实体、个人相册信息实体、朋友信息实体、投票信息实体、博客文章信息实体及 文章回复实体。下面将介绍几个关键实体的 E-R 图。 用户信息实体 用户信息实体包括用户名、密码、姓名、性别、QQ 号码、主页、兴趣、E-mail 地址、管理级别属 性,用户信息实体的 E-R 图如图所示。 用户 用户名 管理级别 QQ 号码 性别 E-mail 地址 密码 主页兴趣 姓名 图 4.2 用户信息实体属性 E-R 图 个人相册信息实体 个人小相册信息实体包括相册存放服务器端地址、相册描述信息及相册上传时间属性,个人相册 信息实体的 E-R 图如图所示。 个人相册信息 相册存放服务 器端地址 相册描述信息 相册上传时间 图 4.3 个人相册信息实体属性 E-R 图 博客文章信息实体 博客文章信息实体包括文章题目、文章内容、文章发布时间及文章访问次数属性。博客文章信息 实体的 E-R 图如图 4.4 所示。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 11 文章信息 文章题目 文章内容 文章发布时 间 文章访问次数 图 4.4 博客文章信息实体属性 E-R 图 4.3 数据库逻辑结构设计 本实例包含 8 个数据表,分别为个人相册信息表,用户信息表,文章信息表,文章类型信息表,公告 信息表,朋友信息表,文章评语信息表,投票信息结果表。 tb_photo 表 4.1 个人相册信息表 tb_aritcle 表 4.2 文章信息表 tb_aritcleType 表 4.3 文章类型信息表 咸宁学院本科毕业论文:个人博客网站系统设计与实现 12 tb_consumer 表 4.4 用户信息表 tb_discuss 表 4.5 公告信息 tb_friend 表 4.6 朋友信息 tb_restore 表 4.7 文章评语信息 tb_vote 表 4.8 投票信息结果 咸宁学院本科毕业论文:个人博客网站系统设计与实现 13 5 公共模块设计 在开发过程中经常用到一些公共类,如数据库连接及操作类和字符串处理类,因此,在开发系统 前首先应该编写这些公共类。下面将具体介绍博客网中所需要的公共类的编写过程。 5.1 数据库连接及操作类的编写 本网站使用 SQL 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_BlodMay“; /设置数据库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(“数据库加载失败“);/在控制台中输入异常信息 创建数据库连接,方法代码如下: 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; 对数据库的增加、修改和删除的操作,方法代码如下: 咸宁学院本科毕业论文:个人博客网站系统设计与实现 14 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返回true 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(sql);/执行查询的SQL语句 catch (SQLException e) System.out.println(e.getMessage(); return null; 5.2 字符串处理类的编写 在使用 JSP 开发网站经常要过滤一些特殊字符或转换一些字符,这些功能通常需要编写一个独立 的类来完成,本系统中通过以下代码实现字符的过滤和转换: public static String toChinese(String strvalue) try if (strvalue = null) return “;/如果参数strvalue的值为空,则返回空对象 else strvalue = new String(strvalue.getBytes(“ISO8859_1“), “GBK“);/将编码转换成GBK的格式 return strvalue;/返回转码内容 咸宁学院本科毕业论文:个人博客网站系统设计与实现 15 catch (Exception e) return “;/返回查询的ResultSet结果集 在 JSP 中输出中文时要考虑中文的乱码问题,本实例中是利用 String 类的 getByte()方法来解决这一 问题。 5.3 系统配置 本网站采用 Servlet 和 JavaBean 结合技术开发的。JavaBean 技术实现对数据库的操作不需 要在 XML 文件中进行任何的配置,而正常运行 Servlet 程序还需要进行适当的配置,配置文件为 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 FriendServlet 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 咸宁学院本科毕业论文:个人博客网站系统设计与实现 16 6 前台页面设计 6.1 前台首页概述 在博客网的前台首页设计中,首先管理员发布的最新文章展现给用户,然后再提供文章的分类,显示 博主的信息,最新公告及博客网导航区功能等功能。 图 6.1 博客网前台首页 6.2 前台首页技术分析 如图 6.2 所示首页中的显示博主的基本信息,显示登录用户信息,显示博客的主要功能,显示博主 的朋友圈及版权信息等功能,并不是仅存于在首页中,其他功能模块的子页面中也需要包括这些部分。 因此,可以将这几个部分分别保存于单独的文件中,这样在需要放置相应功能时只需包含这些文件即 可,如下图所示。 在 JSP 页面中包含文件有两种方法:一种是应用指令实现,另一种是应用 动作元素实现。本系统使用的是动作元素,该动作元素用于向当前页面中包 咸宁学院本科毕业论文:个人博客网站系统设计与实现 17 含其他的文件,这个文件可以是动态文件也可以是静态文件。 指令用来在 JSP 页面中包含另一个文件。包含的过程是静态的,即在指定文件属性 值时,只能是一个包含相对路径的文件名,而不能是一个变量,也不可以在所指定的文件后面添加任 何参数。其语法格式如下: 动作元素可以指定加载一个静态或动态的文件,但运行结果不同。如果指定为静态文 件,那么这种指定仅仅是把指定的文件内容加到 JSP 文件中去,则这个文件不被编译。如果是动态文 件,那么这个文件,那么这个文件将会被编译器执行。由于在页面中包含查询模块时,只需要将文件 内容添加到指定的 JSP 页面中即可,所以此处可以使用加载静态文件的方法包含文件。应用 动作元素加载静态文件的语法格式如下: ”flush=”true”/ 使用指令和动作元素包含文件的区别是:使用指令包 含的页面,是在编译阶段将该页面的代码插入到了主页面的代码中,最终包含页面与被包含页面生成 一个文件。因此,如果被包含页面的内容有改动,需重新编译该文件。而使用动作元素包 含的页面可以是动态改变的,它是在 JSP 文件运行过程中被确定的,程序执行的是两个不同的页面, 即在主页面中声明的变量,在被包含的页面中是不可见的。由此可见,当被包含的 JSP 页面中包含动 态代码时,为了不和主页面中的代码相冲突,需要使用动作元素包含文件。应用 动作元素包含查询页面的代码如下: 。 head_top.jsp head_Consumer.jsp head_main.jsp head_ringht.jsp head_down.jsp 图 6.2 前台首页的布局 6.3 前台首页的布局 应用动作元素包含文件的方法进行前台首页布局的代码如下: 咸宁学院本科毕业论文:个人博客网站系统设计与实现 18 咸宁学院本科毕业论文:个人博客网站系统设计与实现 19 7 用户登录模块设计 7.1 用户登录模块概述 用户登录模块具有用户登录功能。博客网运行第一个页面便是用户登录页面,用户登录后,可以 查看博主所发表的文章。在用户登录页面中,在用户名和密码文本框中输入用户名和密码后,单击登 录按钮,系统验证成功后,用户将以会员的身份进入博客网首页,之后在网站中可以随意查看博主发 表的文章。如果登录的用户是博主本人,在博主信息显示区域中,则出现“进入后台”超链接,博主 可以直接单击此超连接,进入博客网的后台进行管理。用户登录模块的框架如下图所示。 开始 用户登录 是否通过验证 不显示“进入后台”超 链接及其其他相关信息 显示“进入后台”超 链接及其其他相关信 息 否是 图 7.1 用户登录模块的框架 7.2 用户登录模块技术分析 在用户登录模块中,涉及的数据表是用户信息表(tb_sonsumer) ,在用户信息表中保存着用户名和 密码等信息,根据这些信息来创建用户登录模块的 form,名称为 Consumer。 Servlet 的核心在于它的 HttpServlet,一般在 Servlet 里面做页面的逻辑跳转工作。用户登录模块的 Servlet 实现类继承了 HttpServlet 类,在该类中首先设置用户登录模块的 ConsumerDao 类的对象,该对 象在每个具体的方法中实例化,doGet()在 Servlet 中自动被调用。该方法本身没有具体事务,它是根据 咸宁学院本科毕业论文:个人博客网站系统设计与实现 20 通过 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.ConsumerServlet 7.3 用户登录模块的实现过程 用户登录模块是博客网最先使用的模块,是系统的入口。在用户登录页面中,用户可以通过输入 正确的用户名和密码进入到系统,当用户没有输入用户名和密码时,系统会通过 JavaScript 脚步进行判 断,并予以提示信息。 7.3.1 设计用户登录页面 用户登录页面主要用于收集用户输入的信息及通过自定义 JavaScript 函数判断输入信息是否为空, 该页面所涉及的表单元素如下图所示。 名 称元 素 类 型重 要 类 型含 义 form1formmethod=”post”action=”ComsuerServlet?method =0&sign=0”onSubmit=”return userCheck()” 用户登录的表单 元素 accounttextclass=”inputinput” id=”account” size=”30”用户名 passwordpasswordclass=”inputinput” id=”account” size=”30”密码 imagesrc=”images/land.gif”登录按钮 7.3.2 编写用户登录的 Servlet 实现类 在用户登录页面的用户名和密码文本框中输入正确的用户名和密码后,单击登录按钮,网页会访 问一个 URL,即 ConsumerServlet?method=0&sign=0。从该 URL 地址中可以知道用户登录模块所涉及 的 method 参数值为 0,也就是当 method=0 时,会调用验证用户身份的方法 check-Consumer() 。 在验证用户身份的方法 check-Consumer()中,首先需要将用户名的表单信息赋值给新的 String 类型对象,将这个对象做参数,执行 ConsumerDao 类中的 getConsumerForm()方法并将该方法的返回值 赋给 ConsumerForm 类的对象,判断这个对象是否为空值,如果该对象为空值,则说明该用户输入的用 户名不存在,如果该对象不为空值,则将这个对象中的密码值取出与密码表单数据比较,如果比较值 为 true,则说明用户输入的验证信息正确,如果比较值为 false,则说明用户输入的验证信息不正确。 7.3.3 编写用户登录的 ConsumerDao 类的方法 用户登录使用的 ConsumerDao 类的方法是 getConsumerForm()方法。在 getConsumerForm()中,将 以用户名表单信息为参数,以用户信息表中的用户名为条件,自行查询的 SQL 语句,并将查询结果通 过 return 关键字返回,如果没有查询结果,则返回空对象。 7.3.4 判断登录用户是否为博主 普通用户身份验证成功后,在博客网的首页将显示该用户的信息;如果博主登录后,则在博主显 示区域中将显示“进入后台”超链接。当用户登录成功后,用户对应的 form 信息将保存在 session 中, 咸宁学院本科毕业论文:个人博客网站系统设计与实现 21 程序员将根据保存在 session 中的 form 信息和用户登录级别信息(manageLevel)来判断登录的用户是 否为博主。 8 文章查询模块 8.1 文章查询模块概述 文章查询模块的主要功能时用户在浏览系统时查看发表的文章列表及文章详细内容,包括文章的 题目、发表时间、该文章的浏览次数等,并可以针对发表文章进行恢复。这是博客最具代表性的特点 之一。它给博主和用户提供展示文笔的平台,增加博主与用户、用户与用户之间的交流,能够使博客 系统内的气氛更加活跃,内容更加丰富。前台文章查询模块主要包括所有文章查询、文章分类查询、 文章内容详细查询及文章回复功能。前台文章查询模块如下图所示。 前台文章查询模块 文章分类 or 页查询所有文章查询 文章详细查询 前台文章回复模块 图 8.1 前台文章查询模块的框架图 8.2 文章分类查询实现过程 在本系统中,前台文章查询模块主要应用的技术是 JavaBean 技术,应用动作标签创 建并使用一个 JavaBean。执行方式非常灵活,如果执行到,将去寻找是否 存在相同 ID 和 scope。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 22 当用户登录后,在博客网的首页右侧操作区中单击文章超链接,网页会自动弹出一个 URL,即 head_Article.jsp,将分类显示文章的信息。 在前台分类显示文章信息页面中,首先通过 JavaBean 定义分类操作的类(MyPagination) ,之后调 用 ArticleDao 类中的 queryArticle()方法查询所有的文章信息,最后将查询的结果显示在页面中。 通过 JavaBean 技术调用 ArticleDao 类中的 queryArticle()方法实现所有文章查询的功能。在 queryArticle()实现方法中,typeId 为其参数,代表文章类型的标号,当 typeId 属性为 null 时,将执 行查询全部文章信息的 SQL 语句;当 typeId 的属性部位 null 时,将执行按文章类型查询的 SQL 语句。 8.3 文章详细查询的实现过程 主页面的显示文章内容仅是其中的一部分,如果用户查询文章的全部信息,可以单击相应的阅读 超链接,网页会自动淡出一个 URL,页面为 head_ArticleForm.jsp?id=1。其中,id 属性为文章的自动编 号,这个编号是唯一的,因此查询文章信息也是唯一的。head_ArticleForm.jsp 页将根据这个 id 值显示 所对应的文章信息。 首先通过 request 对像中的 getParameter()方法获取要查询的文章编号,之后设置 动作标签,该标签主要设定 ArticleDao 类实例对象,最后将执行 ArticleDao 类中的 queryArticleForm()方法,实现文章信息的查询功能。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 23 9 后台设计 9.1 后面页面设计 在后台首页中的显示后台页面旗帜、左侧功能区及版权信息等功能,并不是仅存在于首页中,其 他功能模块的子页面中也需要包括这些部分。因此,可以将这几个部分分别保存在单独的文件中,这 样在需要放置相应功能时只需包含这些文件即可。如图 9.1 所示。 back_top.jsp back_left.jsp backMainPage.jsp Bacl_dpwn.jsp 图 9.1 后台首页的布局 9.2 后台相册设计 相册模块的主要功能时实现对相片上传、查询和删除操作,可以使博主随时更新个人博客系统内 的相册文件,便于对相册文件的管理,以吸引更多的浏览者。相册管理模块的框架如图 9.2 所示。 咸宁学院本科毕业论文:个人博客网站系统设计与实现 24 相册管理 相册查询 相册上传相册删除 图 9.2 相册管理模块框架 在相册管理模块中,设计的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论