博客系统设计

摘   要

随着互联网技术的高速发展,生活节奏的加快,博客被越来越多的人选择为学习和交流的工具。博客的内容丰富多彩,包括对其他网站的超链接和评论、个人构思、新闻日志、照片、诗歌等。博客具有自主性、开放性、互动性和共享性的特点,是一个很好的交流的渠道。

本系统利用JSP开发技术,以MySQL作为后台数据库,使用Tomcat配置Web服务器,以及配合多种网页开发工具,实现了个人博客系统这个基于B/S模式的个人日志发表和交流的平台。本系统是一个实用的个人博客系统,集日志、相册、留言板于一身。分为管理员管理模块:负责管理所有信息;注册登录模块:注册用户、登录系统;日志管理模块:发表、修改、删除日志;评论留言管理模块:游客可以发表评论和留言;图片管理模块:用户可以创建相册,上传图片。

本文组织如下:第一章为对本系统整体的概述,第二章为对系统的详细设计,第三章为对于开发工具开发环境的选择,第四章讲的是数据库的设计,第五章则是系统完成后的测试及发布。

关键词:博客;JSP;MySQL;B/S模式

Abstract

Along with the developed at highspeed of the Internet, the pace of life is faster and faster. Blog is chosen as the study and communicate tool by more and more people. Blogs are content-rich, they include the URL of other site, comments, personal design, news update, pictures even the poetry. Blog can be a great communicate method with the autonomy, open, interactivity and share as characteristic.

This system is developed by JSP, backstage DB is hold by MySQL, the WEB Server is configurated by Tomcat and cooperrated with varity of web page develop tool, all above build the blog system which based on B/S mode and capable of publish the logs and the comments. It's a functional blog system which include blogs, album and message board. It can be separated by administrator module: manage the information; register and login module: registered users, login system;log module: publish, modify and delete log; manage the comment module: visitors can publish the comments; manage the picture module: user can creat album and upload pictures.

This paper is arranged as follow: summarize the system in Chapter I, detail design in Chapter II, choose the develop tool and develop environment in Chapter III, DB design in Chapter IV, system test and publish in Chapter V.

Keywords:Blog;JSP;MySQL;B/S mode

这几年,许多新名词涌入我们的视野:博客、圈子、播客、WAP等。这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部应用的革命。这个阶段发展迅速,互联网应用趋于多样化,其中变化最大的是由web 1.0网站创造内容的时代变为由用户创造内容的web 2.0时代。
而博客及博客文化正成为互联网的热点,并被视为继Email、BBS和ICQ之后出现的第四种网络交流方式。

博客正在改变组织沟通和社会交流方式。目前,全球参与博客的人数已经达到1000万之众,而且每5.8秒钟都有一名新的博客用户加盟进来。很多记者、律师、教授、学者、专家,甚至法官和议员都有了自己的博客网站,形成了独特的博客文化。美国总统候选人乐于开设博客站点,作为竞选的重要手段。企业界也正在把博客方式引入企业内部网和公司网站,用于非正式的知识管理和网络营销等。政府部门和教育领域都在尝试利用博客构建内部知识管理和沟通交流的新体系,可以让职员发表评论,积累知识,链接有意思的网络资源,促进彼此的交流沟通。

显然,博客的发展对应了全球范围内知识社会来临的背景。对于中国这样一个组织机构信息化仍处于初级阶段的国家,博客这种充分发挥个人主导性和积极性的非正式知识管理工具和其深度沟通交流的功能,对于我们国家的知识传播、知识扩散和有效提升组织的学习和创新能力,具有更特殊的意义。博客用户的快速增长以及组织机构对它的广泛应用,有助于推动中国向学习型社会演进。

    1. 问题的提出

博客记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识与他人分享、交流,同时又通过这个空间结识了更多志趣相投的朋友;而越来越多专业知识的Blog的出现,让我们看到了 Blog更多所蕴涵的巨大的信息价值。不同的Blog选择不同的内容,收集和整理成为让很多人关注的专业Blog——目前越来越多的人获取信息的来源是一些固定的Blog。随着博客人数的增加,Blog作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构,网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变的更加有效,个人出版变成人人都可以实现的梦想——Blog正在影响和改变着我们的生活。

    1. 系统的开发目标

本次毕业设计实现了一个实用的个人博客系统,集日志、相册、留言板于一身。

本系统中管理员通过后台登录页面进入后台管理模块后,可对注册的博客用户进行维护和管理,包括对注册用户的查看和删除。

管理员登录后,还可对帐户的所有日志、图片以及评论和留言进行管理,包括查看操作、删除操作。

博客注册用户通过前台登录后,可对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片、和相关人员进行交流和沟通等。

因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录功能(2)管理员管理所有用户的日志、评论、留言和图片(3)日志详细内容及相关评论显示(4)博客个人日志管理维护功能(5)博客个人基本信息管理维护功能(6)博客图片上传及个人相册管理(7)网络用户写留言,博主查看留言。

Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言及图片的上传,查看注册用户的博文及提出相关评论,并为注册用户写留言,游览注册用户的相册、注册等功能的系统。下面就以三种不同的用户来分析博客网站的需求。

系统整体模块图如图2.1所示

图2.1 系统模块图

      1. 注册博友

首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文及图片等。可以通过各个日志模块进行日志的添加删除修改操作,也可以上传图片和游览自己的相册,在上传过程中可以对图片的信息进行相关的描述,可以直观的让用户看到这个图片的意义。在个人管理页面中注册用户还可以修改自己的个人信息。用例图如图2.2所示。

图2.2注册博友的用例图

在博客主界面中可以显示最新的博文,这样一目了然博主最新的状态。点击进入博客日志的列表后可以查看所有日志,点击进入各个日志后可以查看网友对自己的博文的一些评论,进入留言板后可以查看网友留下的一些留言,提供与其他网友交流的空间,更好交流,但不能在自己的博客主页面中提交评论和留言。通过这些功能这样就可以在本系统中为博友提供更多的个人色彩。

      1. 普通未注册用户

在博客注册页面注册成为博客的注册用户,才可以拥有自己独立的空间。而未注册用户进入某一博客页面查看相关日志信息时,可以随时对自己所感兴趣的日志发表评论,同时也可以查看到其他人针对该博文的评论,普通未注册用户也可以在阅读博文时最后留下自己的一些评论。他也可以留下更多的信息,例如可以在留言板给博主留言,但这时普通未注册用户的留言和评论显示的将是名为游客的评论而不是博客注册的昵称。

普通未注册用户进入博友博客的用例图如图2.3所示:

  

图2.3未注册用户博客系统中的用例图

      1. 系统管理员用户

在博客后台管理页面博客系统的管理员可以登录后台进行整个博客系统的管理,进入某一管理页面可以查看相关方面的信息,可以随时对相关信息进行人为审查,如评论,日志中是否有敏感词,博客主上传的图片是否含有暴力色情信息等等,同时也可以查看到其他人的评论和留言中是否含有人身攻击等。

管理员用户进入管理界面的用例图如图2.4所示:

  

图2.4 管理员的用例图

    1. 功能模块介绍
      1. 博客注册登录管理模块

博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的维护及管理,同时也便于通过博客档案将网站最新动态及相关信息方便地传达给每一位浏览的用户。

该功能模块实现了以下几个子功能。

(1)新博客在线注册。

(2)博客主登录。

(3)跳转到博客主页。

只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。

该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性。注册成功的博客主登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。

      1. 博客日志模块

日志模块为网络注册用户提供便捷的管理功能,可以添加、删除、修改日志,以及日志阅读浏览等功能,同时日志的评论信息也能够及时反馈给网络用户。

该功能模块实现了以下几个子功能。

(1)添加博客日志

发表博客日志主要是提供用户发表和张贴个人的日志或是对某些事务的独到见解等的功能,通过发表的日志,其他用户可以发表相关的评论,以便能够同其他来访者进行交流,是一个展现自己的网络交流平台。

该功能通过日志的Servlet来控制完成并写入到数据库中。在保存过程中,系统会在数据库中为该日志自动生成一个唯一的日志ID编号,这个编号是自动递增的生成,用以唯一的标识一篇日志。

(2)单独日志的显示,评论查看和发表评论

发表日志的评论是在查看单篇日志的前提下操作的,当访客查看单独的一篇日志时,即可通过页面下方的评论输入框来进行评论的发布。

该模块能够在网页中随时提供在线的最新日志信息。网络用户可以随时获得最新日志以及最新的博客评论。在用户选择了某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客主进行交流互动。

      1. 博客图片模块

当网络用户进入某个人博客相关相册页面后,在该页面中将提供博客图片列表的显示,也提供对单个图片的浏览及评论的浏览。该功能模块实现了如下几个子功能。

  1. 添加相册和图片。

进入相册模块后,可以点击创建相册来新建一个相册,建立相册后,可以进入相册模块点击上传按钮进行相关的上传操作。上传的文件将被保存在IMAGE的文件夹中。图片将以存放的相对地址存入数据库中,以便保存和读取。

  1. 浏览图片。

可以进入相应的相册进行相册图片的查看,这时所有该相册的图片将会显示在浏览器中,通过单击相应的图片可以进入单个图片的查看页面。

  1. 浏览单个图片及发表评论。

发表图片的评论是在查看单个图片的前提下操作的,当访客查看单独图片时,即可通过页面下方的评论输入框来进行评论的发布。

      1. 博客留言管理模块

博客留言管理模块用于实现用户对博客个人留言的管理和显示。

该功能模块实现了如下几个子功能:

(1)查看留言。

(2)各种用户发表留言。

借助该模块,允许用户对博客的留言进行查看及其发表。

      1. 博客个人维护管理模块

博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。

该功能模块实现了如下几个子功能:

(1)个人注册信息的修改,密码的修改等。

(2)个人基本信息维护管理。

借助该模块,允许用户对博客的个人信息进行维护及其管理。

      1. 博客后台管理模块

在博客后台管理模块中博客系统的管理员可以登陆后台进行整个博客系统的管理,进入某一管理页面可以查看相关方面的信息,可以随时对相关信息进行人为审查,如评论,日志中是否有敏感词,博客主上传的图片是否含有暴力色情等等,同时也可以查看到其他人的评论和留言中是否含有人身攻击等。

该功能模块实现了如下几个子功能:

(1)对各个分类如日志、图片、评论的显示。

(2)对各个相关信息单独的显示。

(3)对不符合规定的相关文件进行删除。

借助该模块,允许管理员对博客的各个信息进行维护及其管理。

    1. 系统分析

在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。

在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。

blog对系统的可靠性、稳定性有比较高的要求。本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。所以选择Java技术作为blog 的开发语言。

为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了高性能PC作为主机。在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL。

该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下:

1. 服务器端操作系统:独立于操作系统的跨平台系统,客户端MicroSoft Windows 2000及以上;

2. 数据库:MySQL 5.0.27版本;

3. Web服务器:Tomcat 5.5及以上版本,配合MVC设计模式;

4. 客户端运行环境:能运行IE 5以上或Netscape 5以上浏览器的操作系统;

5. 客户端运行工具:目前的系统采用浏览器作为客户端,应该选择使用IE 5以上版本浏览器。

本网站以windows xp为Web平台,JSP+Servlet+JavaBean为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。

1、系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。

2、系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。例如数据表中用户选择字段方式的改变,用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。

3、系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。

4、系统的数据要求:1、数据录入和处理的准确性和实时性。2、数据的一致性与完整性。3、数据的共享与独立性。

本系统采用MVC模式,主要有如下几个分层。

1. 表现层:由JSP 页面组成。

2. 中间层:使用Servlet和DAO。

3. 模型层:由各个功能模块相应的JAVABEAN文件对应实现。

      1. 系统架构说明

本系统严格按MVC 模式设计,分为控制层,表示层,模型层三层,MVC 层的控制器不进行持久化操作,只参与业务逻辑的实现,持久化的操作通过DAO来实现,表现层采用传统JSP 技术,模型层则用JAVABEAN来实现。

本系统采用的是典型的J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。Jsp广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Servlet和DAO技术来实现 。该系统中间层的介绍如下:这层实际上就是MVC 模式里面的C,负责模型层和表现层的交互。调用DAO,并将业务数据返回给表现层作组织表现。以DAO为基础,通过对DAO 组件的正面模式包装,完成系统所要求的业务逻辑。DAO就负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

      1. 实现DAO

DAO还有助于提升系统的可移植性。独立的DAO层使得系统能在不同的数据库之间轻易切换,底层的数据库实现对于业务逻辑组件是透明的。数据库移植时仅仅影响DAO层,不同数据库的切换不会影响业务逻辑组件,因此提高了系统的可复用性。

DAO(Data Access Object)数据访问接口。数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。

以下为系统中一个DAO的部分代码实例:

该段代码功能为读取某个用户的最新日志返回一个日志的实体。

public DailyBean getIndexDaily(String userid1) {

try {

con = GetDbCon.getDbConn();//通过调用数据库类得到数据库连接

Statement stm = con.createStatement();

int userid = Integer.parseInt(userid1);

//执行数据库指令返回结果

ResultSet result = stm

.executeQuery("select * from daily where userid = "

+ userid + " order by dailyid desc limit 1 ");

//读取结果存入一个DailyBean中

while (result.next()) {

int dailyid = result.getInt("dailyid");

String dailyname = result.getString("dailyname");

String daily = result.getString("daily");

java.sql.Date postingdate = result.getDate("postingdate");

java.sql.Date modifytime = result.getDate("modifytime");

db.setUserid(userid);

db.setDailyid(dailyid);

db.setDailyname(dailyname);

db.setDaily(daily);

db.setPostingdate(postingdate);

db.setModifytime(modifytime);

}

result.close();

stm.close();

con.close();

} catch (Exception e) {

e.printStackTrace();

}

return db;//返回刚刚已存入信息的DailyBean

}

      1. DTO

DTO就是数据传输对象(Data Transfer Object)的缩写。DTO模式或称VO模式,是指将数据封装成普通的JavaBeans,在J2EE多个层次之间传输。DTO类似信使,是同步系统中的Message。该JavaBeans可以是一个数据模型Model。常见的方式就是为实体对象建立一个Model类,该类只包含这个对象所有字段的getter和setter。例如用户User实体有name, password字段,则建立一个UserModel类,public方法有getName,setName,getPassword,setPassword。

    1. 系统的可行性分析
      1. 技术可行性

技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是服务器,网速)提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的只需要两个多月就可以写出程序,再花上几天的调试,计划两个多月左右就可以完成投入使用了。

我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用有了较深刻的认识与一定的动手实践能力,从一定程度上具备了开发一个小型系统的能力。

      1. 经济可行性

主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个小型的系统,从投入的人力,财力与物力来讲是非常小的,发布出去之需要注册域名就可以了,从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作。  

      1. 管理可行性

有IP地址、用户名与密码等,可以下载一个FTP上传工具上传更新后的内容即可.

    1. 界面设计
      1. 博客系统主界面

图2.5博客系统主界面

如图2.5为博客系统界面。当用户进入到博客主界面时,可以看到博客系统中所有注册用户的博客。并通过页面上的链接进入相关博客、通过登陆和注册进入到相应的界面。

      1. 博客主界面

图2.6博客主界面

如图2.6为博客界面。当用户进入到博客主界面时,可以看到博客中最新发表的文章。并通过页面上的“日志”、“相册”、“留言”等进入到相应的界面。

      1. 博客主界面

图2.7博客日志主界面

如图2.7为博客日志列表界面。当用户进入到该页面时,可以看到该博客中所有发表的文章。点击后即可进入查看详情。

      1. 博客主界面

图2.8博客相册界面

如图2.8为博客相册列表界面。当用户进入到该页面时,可以看到该博客中所有创建的相册。点击后即可进入查看详情。

      1. 博客主界面

图2.9博客留言界面

如图2.9为博客留言界面。当用户进入到该页面时,可以看到该博客中所有留言。也可以在该页面进行留言。

      1. 博客后台管理界面

图2.10博客后台管理界面

如图2.10为博客后台管理界面。当管理员进入到该页面时,可以看到该博客系统中所有的用户、日志、图片以及评论留言。进行详细的查看的删除操作。

Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。

      1.  Web应用程序开发环境—JSP技术

JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:

1、将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;

2、能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;

3、组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;

4、一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once,Run everywhere.

      1.  Web应用程序开发环境—Servlet技术

本博客系统采用了Servlet技术开发,它可以处理客户端传来的HTTP请求,并返回一个相应。Servlet是一个JAVA类,JAVA语言能够实现的功能,Servlet基本上能够实现。它具有以下的特点:

  1. 高效:在服务器上只有一个JAVA虚拟机在运行,它的优势在于当多个来自客户端的请求进行访问时,Servlet为每个请求分配一个线程而不是进程。
  2. 方便:Servlet提供了大量的实用工具例程,例如处理很难完成的HTML表单数据、读取和设置HTTP头、处理Cookie和跟踪会话等。
  3. 跨平台:Servlet是用JAVA类编写的,它可以和不同的操作系统平台和不同的应用服务器平台下进行。
  4. 功能强大:在Servlet中,许多使用传统CGI程序很难完成的任务都可以利用Servlet技术轻松地完成。例如:Servlet能够直接和Web服务器交互,Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
  5. 灵活性和可扩展性:采用Servlet开发的Web应用程序,由于Java类的继承性、构造函数等特点,使得应用灵活,可随意扩展。
  6. 共享数据:Servlet之间可通过共享数据很容易地实现数据库连接池。它能方便的实现管理用户请求,简化Session和获取前一页面信息的操作,而在CGI之间通信则很差。由于每个CGI程序的调用都开始一个新的进程,调用间通信通常要通过文件进行,因而相当缓慢。同一台服务器上的不同CGI程序之间的通信也相当麻烦。

要实现MVC模型就必须要有控制层servlet,已达到代码和页面更彻底的分离,但这部分知识在课本中也没有涉及到,只能通过从网上查资料、或一些书籍的代码来自学,掌握后发现servlet除了在配置和规则上有些特殊外,和普通的java类并没什么太大区别,首先,servlet继承了javax.servlet包中的HttpServlet,并重写doGet或者Post方法,它会自动识别jsp页面的method来选择调用doGet方法或者doPost方法。这两个方法中应该写对jsp页面的逻辑处理,然后重定向其它的jsp页面。

    1. 数据库的选择
      1.  MySQL数据库

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

MySQL的特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径

8.提供用于管理、检查、优化数据库操作的管理工具

9.可以处理拥有上千万条记录的大型数据库

安装、运行MySQL的硬件需求

(1)计算机

Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统。

(2)内存(RAM)

企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。

(3)硬盘空间

完全安装(Full)需要180MB的空间,典型安装(Typical)需要170MB的空间,最小安装(Minimum)需要65MB的空间。

    1. 开发工具的选择

MyEclipse,Dreamweaver,选择MySQL作为后台的数据库,选择JAVA、JSP、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。

1、Tomcat应用服务器

目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。           

Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的文件夹放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。

Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。

2、 B/S 开发模式

伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。

过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:

系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。

B/S模式带来了巨大的好处:

开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。

良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。

数据库设计的优劣直接关系到项目系统的成败,一个好的数据库设计方案可以有效的提高系统的效率,高效快捷的组织数据管理,而且方便的系统维护。

根据前面几部分的需求分析和概要设计,可以设计出相应的系统所需要的数据库表。博客系统所要存储的数据项和数据量相对比较复杂和庞大,所以首先确定这些数据库表的设计一般是一个表存储一个实体或者对象的相关信息,这样分析和涉及数据库就相对简单。对于不同的对象或实体,根据具体系统需要和未来扩展,可以适当细分。另外扩充信息和动态变化的信息分开放置在不同的表里。

当然重要的表都会设置一个唯一标识的主键,这个主键不是实际运用中的任何信息项,只用来唯一标识一个数据项,一般用自动编号的数字。

经过需求分析和概要设计,在MySQL数据库管理系统中建立名为blog的数据库,系统所有应用的数据信息将存储在该数据库中。这些建立的表基本上都是一表负责一个实体或者对象的各种信息存储,它们协调工作,以实现个人博客系统对数据存储的要求。

    1. 定义(数据词典)

1、数据库表名的定义使用:重点字;重点字可以是多个英文单词的组合,字段命名是能表达字段内容的英文单词的组合,组合方式同表名重点字相同。

2、数据类型不使用固定数据库的类型,标识大众类型,如字符串、字符、数字等。这样在更改数据库时需求的数据是可移植的。

3、输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通。

4、长度定义又数据类型决定:如字符串可选系统默认大小以下,数字可在50位之内,字符只允许一位。

5、输入方式表示数据的来源:生成表由程序或数据库的索引自动生成,而不需人工录入;输入表示通过文本框等输入的数据;选择表单选框、复选框、下拉列表等通过选择输入的数据;自定获取是为外码的输入设定的,它由程序自动获取。

    1. 数据库逻辑结构设计

依照数据库的概念分析和逻辑关系结构,最终实现数据库的逻辑结构,下列各表为本系统的数据表逻辑结构。

      1. 普通用户信息

表名:userinfo

描述:普通用户信息

具体结构如表4.1所示:

表4.1 普通用户信息表

字段名称

类型

注解

备注

userid

Int

用户id

主键

username

Varchar(20)

用户名

非空

blogname

Varchar(30)

博客名

非空

blogsign

Varchar(50)

博客个性签名

password

Varchar(20)

密码

非空

lastlogin

datetime

最后登录时间

flag

Tinyint

用户类型标记

0:普通用户

1:高级用户

name

Varchar(20)

姓名

sex

tinyint

性别

0:保密

1:男

2:女

province

varchar(20)

省份

city

varchar(20)

城市

address

varchar(100)

具体地址

birthday

datetime

生日

email

varchar(30)

电子邮件

tel

varchar(20)

联系电话

regtime

datetime

注册时间

profile

varchar(200)

个人简介

      1. 管理员信息

表名:managerinfo

描述:管理员信息

具体结构如表4.2所示:

表4.2 管理员信息表

字段名称

类型

注解

备注

adminid

Int

管理员id

主键

adminname

Varchar(20)

管理员用户名

非空

password

Varchar(20)

密码

非空

name

Varchar(20)

姓名

tel

varchar(20)

联系电话

regtime

datetime

注册时间

      1. 日志信息

表名:daily

描述:日志信息

具体结构如表4.3所示:

表4.3 日志信息表

字段名称

类型

注解

备注

dailyid

Int

日志id

主键

userid

Int

用户id

外键

dailyname

Varchar(30)

日志名

非空

daily

Text

日志内容

非空

postingdate

datetime

发布时间

modifytime

Datetime

修改时间

      1. 图片信息

表名:photoinfo

描述:图片信息

具体结构如表4.4所示:

表4.4 图片信息表

字段名称

类型

注解

备注

photoid

Int

图片id

主键

userid

Int

用户id

外键

albumid

Int

相册id

外键

photoname

Varchar(30)

图片名

非空

photoaddress

Varchar(50)

图片地址

非空

photodepict

Varchar(50)

图片描述

uploadtime

Datetime

发布时间

      1. 相册信息

表名:photoalbum

描述:相册信息

具体结构如表4.5所示:

表4.5 相册信息表

字段名称

类型

注解

备注

albumid

Int

相册id

主键

userid

Int

用户id

外键

albumname

Varchar(30)

相册名

非空

albumdepict

Varchar(50)

相册描述

createtime

datetime

建立时间

      1. 评论信息

表名:comment

描述:评论信息

具体结构如表4.6所示:

表4.6 评论信息表

字段名称

类型

注解

备注

commentid

Int

评论id

主键

userid

Int

用户id

外键

pdid

Int

被评论内容id

外键

comment

Varchar(200)

评论内容

非空

commenttime

datetime

评论时间

flag

tinyint

评论标记位

0:图片

1:日志

      1. 留言板信息

表名:message

描述:留言板信息

具体结构如表4.7所示:

表4.7 留言板信息表

字段名称

类型

注解

备注

messageid

Int

留言id

主键

blogid

Int

博客id

外键

userid

Int

留言用户id

外键

message

Varchar(200)

留言内容

非空

messagetime

datetime

留言时间

运用JSP对系统进行开发和应用,必须首先安装和配置好相应的开发环境和支持组件,随后进行发布前的测试工作。本章主要介绍系统相关的配置和开发后系统的发布情况以及运行效果。

    1. 应用环境配置
      1. 安装tomcat 6.0服务器

直接从主页上下载好程序的压缩包后,只需解压到相应的目录即可使用,解压后,运行文件夹下的bin文件夹下的startup.bat即可启动tomcat服务器,启动后,在浏览器中输入http://localhost:8080/,如果显示如下图欢迎页面所示即证明安装成功。

      1. 安装jdk1.6.0

从sun主页上下载好JDK的程序后,同意协议,选择相应的安装文件夹后即可下一步进行安装,安装成功后需要对系统环境变量进行配置才可使用,打开计算的属性,选择高级属性中的环境变量,进入后新建一变量名为“JAVA_HOME”变量参数设置为JDK的安装目录,例如“C:\Program Files\Java\jdk1.6.0_20”,然后选择“path”变量,在参数中添加“%JAVA_HOME%\bin”,设置一个CLASSPATH变量即可。

      1. 安装MySQL服务

从网上下载了最新的MySQL安装文件后,进行数据库服务的安装与配置,其中有多项配置,其中注意要将MySQL服务的字符集设置为gb2312或者gbk。

    1. 系统的发布和运行效果
      1. 系统的发布

如果本地工作站作为服务器,则在安装了相关组件和TOMCAT以后,按照前面所介绍的进行正确的配置,申请到相应的域名后,让本地服务器连接到网络,就可以通过网络访问该系统。

如果是利用网络上的主页空间进行发布,则需要申请到可以支持JSP和MySQL数据库的Web空间,把系统所有文件上传至网络服务器上,通过空间提供商所提供的域名就可以访问到本系统。

      1. 系统测试

系统测试是软件开发中不可缺少的一个环节,它是衡量我们开发系统的一个标尺。它的目标是发现系统中的错误,然后通过调试对其进行修正,从而开发出高质量的完全符合用户需要的软件。

对本系统的测试主要包括以下几个方面:

(1)链接测试

一个好的系统应该不包含中断链接,花费时间检查链接可以避免错误信息的发生率。链接测试可以分为三个方面:首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统尚没有孤立的页面(没有链接指向该页面)。

经过系统链接测试,已经把系统中存在的所有错误链接都修改正确了,用户可以放心使用,不会造成功能上的缺失,使用上中断的感觉。

(2)检查布局的一致性

对于一个好的系统,布局的一致性也是十分重要的。我们在设计系统时,常常会因为追求单个页面的美观而忽略了系统的整体效果。这就需要对系统进行整体浏览,检查布局和图像的一致性。

通过对系统的整体浏览调试,已经可以保证系统整体布局的一致性,相信能够为用户提供简洁美观的页面,使用、观看起来很舒服。

      1. 系统维护

本系统在运行过程中可能会伴随出现各种各样的软硬件问题,这就需要进行系统的软件与硬件维护。

1.系统的硬件维护

硬件系统的维护有专职的硬件人员承担,维护分为以下两种:

定期的预防性维护,如周末或月末对服务器进行的例行检查与保养。

突发性的故障维修,由专职人员过厂商进行,这种维护也有时间要求,以免影响系统的正常工作。

由于本系统是暂时是基于单机建立的,所以只需维持本机的稳定即可,还不需进行系统硬件维护,当应用开发完毕上线后,须进行相关维护。

2.系统的软件维护

系统的软件维护主要包括程序的维护,数据文件的维护,代码的维护。本系统采用Mays为数据库,客户端应用程序采用JSP编写,系统的软件维护自然跟其有着密切的关系。

系统的运行需要有专门人员负责进行系统的正确性维护,防止因用户或管理人员的非法操作带来的系统错误;随着学校环境和业务量的增减,系统可能会不适应当时情况,这时就需要进行系统的完善性维护。除此之外,还要进行系统的预防性维护。

由于在编写本系统时,特别注意了代码的规范化,在命名规则,程序书写规范上做了很大的努力,这对将来的代码维护带来了方便。

总之,在系统正式投入运行之后,为了让系统长期高效稳定地运行工作,必须加强对系统运行的日常管理和维护。

结束语

经过4个多月的毕业设计学到了很多关于Jsp、MVC、WEB设计的知识,了解了很多书本里学不到的东西,对以前所学得的知识进行了综合性的应用,这对今后的工作是十分有帮助的。从开始接到论文题目到系统的实现,再到论文文章的完成,一步对我来说都是新的尝试与挑战,这也是我在大学期间完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对博客一无所知,对jsp,servlet等相关技术很不了解的状态,我开始了漫长的学习,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩的作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。从中我也充分认识到了博客这一方式给我们生活带来的乐趣,在属于自己的网络空间上,尽情宣泄自己的情感,表达自己的感受,并且把自己的想法与他人分享。

这次项目设计从建立需求分析、画用例图到建立数据库、详细代码设计都是自己一步步按照真正实际项目开发中的步骤进行的,对自己的锻炼是非常大的,是真正的自己学习的过程和研究的过程。希望这次的经历能让我在以后学习中激励我继续进步。

由于时间仓促,一些技术和设备所限,该系统存在一些不足之处,有待进一步改进和完善。

在论文结束之际,首先要感谢我的指导老师XXXX,在我的论文设计以及实现过程中均给了我大量的帮助和指导,她严谨的敬业精神和治学态度给我留下了深刻的印象。从她身上,我学到了许多能使我受益终身的东西,再次对X老师表示衷心的感谢。

感谢计算机学院领导以及老师给我们创造的良好的学习环境和诸多帮助。

参考文献

[1]冯燕奎,赵德奎.JSP实用案例教程[M].北京:清华大学出版社,2005.1

[2]向学哲,柳庆勇,王桂娟.JSP程序设计教程[M].北京:人民邮电出版社,2006.6

[3]申吉红,廖学峰,余健.JSP课程设计案例精编[M].北京:清华大学出版社,2007.2

[4]黄理,李积善,曹林有等.用JSP轻松开发Web网站[M].北京:科学出版社,2006.1

[5]林邦杰.JSP交互网站实务经验[M].北京:中国青年出版社, 2001.3

[6]雨阳隆春.深入JSP网络编程[M].北京:清华大学出版社, 2001.6

[7]William Crawford, Jonathan Kaplan.J2EE设计模式[M].北京:中国电力出版社,2005

[8]倪晓秋,季民,王光伟等.J2EE案例开发[M]. 北京:中国水利水电出版社,2005

[9]刘晓华,陈亚强.J2EE应用开发详解[M]. 北京:电子工业出版社,2004

[10]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2004   

[11]bruce.eckel.thinking in java[M].America :Prentice Hall PTR ,2007.

[12]Bryan Basham, Kathy Sierra, Bert Bates.Head First Servlets and JSP, Second Edition[M].America:O'Reilly Media,2008.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值