《基于Web的Java开发设计》
项目实践
题 目:基于MVC的JSP博客系统分析
院 (系): 软件学院
专业年级: 软件工程 20##级
姓 名: 苏振鹏
学 号: 101530140
20##年6月10日
目 录
1概述 3
1.1 开发背景 3
2 个人博客需求分析 4
2.1 功能要求 4
2.2开发环境 5
2.3 操作帮助 5
2.4 系统设计 7
3 数据库分析 8
4 个人博客MVC结构分析 10
4.1 Mdel1和model2 10
4.1.1 什么是Model 1 10
4.1.2 什么是Model 2 10
4.2 Model 2-MVC模式 10
5 核心功能实现 11
5.1文章模块控制器的实现 11
6 系统测试与实现界面 12
6.1博客程序主界面 12
6.2用户登录界面 12
6.3后台管理界面 13
7 结论 13
1概述
1.1 开发背景
“博客”(Blog或Weblog)一词源于“Web Log(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电子邮件一样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利用超文本链接、网络互动、动态更新等特点,在网络中,精选并链接全球互联网中最有价值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通。
“博客”当然是个大家都陌生的名词,博客的英文名词就是“Blog或Weblog”(指人时对应于Blogger),是一个典型的网络新事物,查阅最新的英文词典也不可能查到。该词来源于“Web Log(网络日志)”的缩写,特指一种特别的网络个人出版形式,内容按照时间顺序排列,并且不断更新。
博客是一种零编辑、零技术、零成本、零形式的网上个人出版方式。
博客概念一般包含了三个要素(当然,也不需要局限这些定义):
a)网页主体内容由不断更新的、个性化的众多日志组成。
b)按时间顺序排列,而且是倒序方式,也就是最新的放在最上面,最旧的放在最下面。
c)内容可以是各种主题、各种外观布局和各种写作风格,但是文章内容以“超链接”作为重要的表达方式。
因此,博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。
博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一种利他的共享精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小我”,而博客表现的是“大我”。也许形式上很接近,但内在有着本质的差异。所有优秀博客网站中,真正表达作者个人的内容非常有限,最多只是点缀,而不像个人网站那样是核心。
博客的精神是:自由表达,开放宽容,个性张扬,专业精神。
在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。
不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:
a)记录生活,在自己的每一天上留下思考的划痕。
b)整理思路,固化知识,获得更多更好的想法。
c)分享,将自己的想法、经验与人分享。
d)交流、提高,通过交流产生更多的思维火花,相互提高。
e)交友,互相鼓励,一路同行。
如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享。
2 个人博客需求分析
2.1 功能要求
本系统是用JSP实现的一个完全基于浏览器的博客系统,任何注册个人博客的人都拥有以下功能:
a)登录博客系统的后台管理平台。
b)更改博客账号的基本信息。
c)撰写日志。
d)日志管理。
e)评论管理。
f)留言管理。
博客访问者具有以下功能:
a)浏览博客系统中的日志、留言、评论。
b)发表评论及留言。
c)检索日志。
2.2开发环境
开发软件 :MyEclipse8.5开发
系统结构 :后台服务+B/S结构
操作系统 :windows xp
浏览器 :IE6.0浏览器支持
数据库 :SqlServer2000数据库支持
应用服务器 :Tomcat6.0服务器支持
JDK开发包 :jdk1.5以上版本
2.3 操作帮助
1.进入“博客管理”的用户名:admin;密码:111。
2.删除“文章类别”时,首先查看一下此文章类别中的文章是否还需要,如果不需要,可直接单击“删除”按钮,即可将文章类别及文章类别中的文章全部删除。
3.在进行“给我留言”操作时,发现在“最新留言”板块中,没有显示出来,此时,单击“博客首页”导航按钮,便可查看到最新留言信息。
操作流程
(1)在“博客首页”中,可对“博主信息”、“最新留言”、“博主推荐”、“好友博客”、“我的文章”及“我的相册”等信息进行查看操作,如图1.1所示。
博客首页
(2)单击“我的文章”导航按钮,对不同类别的文章内容进行查看、评论及查看评论操作。
(3)单击“我的相册”导航按钮,对我的相册中的照片信息进行查看操作。
(4)单击“我的好友”导航按钮,对我的好友信息进行查看并访问该好友的博客。
(5)单击“给我留言”导航按钮,对给我留言信息操作。
(6)单击“管理博客”导航按钮,输入用户名及密码进入博客管理界面,如图1.2所示。
(7)单击“文章管理”/“发表文章”链接按钮,对文章信息进行发表操作。
(8)单击“文章管理”/“浏览/修改/删除文章”链接按钮,对发表的文章进行浏览、修改及删除操作。
(9)单击“文章类别管理”/“添加类别”链接按钮,对文章类别信息进行添加操作。
(10)单击“文章类别管理”/“浏览/修改/删除类别”对添加的文章类别进行浏览、修改及删除操作。
(11)单击“相册管理”/“上传照片”链接按钮,进行照片上传操作。
(12)单击“相册管理”/“浏览/删除照片”链接按钮,对上传的照片进行浏览及删除操作。
(13)单击“好友管理”/“添加好友”链接按钮,对好友信息进行添加操作。
(14)单击“好友管理”/“浏览/修改/删除好友”链接按钮,对已添加的好友信息进行浏览、修改及删除操作。
(15)单击“留言管理”/“浏览/删除留言”链接按钮,对已发布的留言信息进行浏览及删除操作。
2.4 系统设计
前台功能模块结构图:
后台功能模块结构图
3 数据库分析
根据系统功能设计要求和模块划分,本站的数据库主要有用户信息、文章信息、管理员信息、照片信息、文章类型信息、评论信息、投票信息、朋友圈视图。
数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有Access、SQL Server、Oracle、My SQL等。根据用户需求和系统分析,本系统采用SQL Server数据库管理系统。在SQL Server数据库管理系统中建立名称为博客的数据库。
3.1 数据库设计E-R图
为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。
最常用的表示概念性数据模型的方法,是实体—联系方法(Entity—Relationship Approach)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”。
博客信息管理系统涉及的实体包括:
a)用户:用户ID、用户名称、用户密码、博客主题、说明、E-mail、注册日期、发表日志数。
b)类别:类别编号、类别名、类别描述、用户ID。
c)日志:日志编号、日志标题、日志内容、类别编号、发表日期、最后修改日期、用户ID、浏览次数、评论数。
d)评论:评论编号、评论标题、评论内容、发表日期、最后回复日期、评论人、日志编号。
e)留言:留言编号、留言标题、留言内容、发表日期、最后回复日期、留言人、用户ID。
综合本系统各子模块要实现的功能,通过前面对博客信息系统数据的分析可以得到:用户表、类别表、日志表、日志评论表、留言表的数据库概念模型(E-R图)。
用户E-R图如图3.1所示。
图3.1 用户E-R图
日志类别E-R图如图3.2所示。
图3.2 日志类别E-R图
日志E-R图如图3.3所示。
图3.3 日志E-R图
日志评论E-R图如图3.4所示。
图3.4 日志评论E-R图
留言E-R图如图3.5所示。
图3.5 留言E-R图
3.2 系统数据表设计
a)用户表,此表主要用于保存用户的基本信息。其结构如表3.1所示。
表3.1 用户表
b)日志表,此表主要用于保存日志的基本信息。其结构如表3.2所示。
表3.2 日志表
c)日志评论表,此表主要用于保存日志评论的基本信息。其结构如表3.3所示。
表3.3 日志评论表
d)留言表,此表主要用于保存留言的基本信息。其结构如表3.4所示。
表3.4 留言表
e)类别表,此表用于保存日志类别的基本信息。其结构如表3.5所示。
表3.5 类别表
3.3数据连接
目前流行的数据库连接技术主要有:JDBC-ODBC桥、JDBC和数据连接池技术。该系统采用数据连接池技术,使用连接池的优点主要体现在两个方面:对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,同时对应用程序中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。便于程序的移植和后端数据库的切换,因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与程序无关。
数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接。这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。
数据库连接池的主要操作如下:
a)建立数据库连接池对象(服务器启动)。
b)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
c)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
d)存取数据库。
e)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
f)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
4 个人博客MVC结构分析
4.1 Mdel1和model2
4.1.1 什么是Model 1
Model 1的基础是JSP文件,它由一些相互独立的JSP文件,和其他一些Java Class组成(不是必须的)。这些JSP从HTTP Request中获得所需要的数据,处理业务逻辑,然后将结果通过Response返回前端浏览器。
Model 1的应该说是唯一的好处是"简单",可以大大加快系统的开发进度。它把表现层和业务逻辑层柔和在一起,不利于以后的维护工作以及开发角色的分配,所以这种模式只能适合于小的系统开发。
4.1.2 什么是Model 2
采用面向对象技术实现MVC模式从而扩展JSP/Servlet的模式被成为是Model 2模式
4.2 Model 2-MVC模式
MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。
MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
本博客系统基于MFC设计,JSP完成View视图的制作。JavaBean完成Model模型的制作,JSP页面擅长数据的显示,并向控制器提交必要的数据和为模型提供数据显示,JSP页面使用HTML标记和JavaBean标记来显示数据。
模型包括:toolsbean和valuebean。其中toolsbean类,对数据库链接方法进行了封装,便于使用与操作。
Valuebean包括对文章,文章类型,朋友,管理员,照片,浏览者创建了JavaBean对象,提供set和get方法。实现了存储与处理的分离。负责视图功能的JSP页面只要使用JavaBean标记显示JavaBean中的数据即可。
控制器包括文章,交友,主页,日志,照片的servlet。根据视图提交的要求进行数据处理操作,并将有关的结果存储在JavaBean中,然后Servlet使用转发的方式请求视图中的JSP页面更新显示,即让JSP页面通过使用JavaBean标记显示控制器储存在JavaBean中的数据。
5 核心功能实现
5.1控制器
5.2模型
5.2工具类
DB.java:DB类用于实现数据库的连接操作,在构造方法中加载数据库驱动。createCon()打开数据库连接,getStm()方法用于获取Statement对象,executeUpdate()方法用于执行sql语言,返回值为true或false。
MyTools.java:MyTools类用于实现一些常用方法。如字符集的转换以及对日期的格式化。
6 系统测试与实现界面
6.1博客程序主界面
6.2用户登录界面
6.3后台管理界面
7 结论
作为一个完整的博客系统,本系统的主要结构有:阅读博客,后台管理,系统管理。其中,后台包括随笔管理,文章管理,评论管理,链接管理,图片管理,密码管理。系统管理包括帐户管理和密码管理。从而使得博客用户能够更好地展现自我和互相交流。
在详细设计和编码中,运用JSP最基本的开发技术,代码简单易懂,系统里间跳转比较清晰。完成了普通用户和系统管理员两者的功能分离,而且各自的功能操作都能得到正确数据并存入数据库中保存。另外系统利用MVC模式极大地提高了系统的灵活性、复用性、开发效率、适应性和可维护性。
系统的开发以及论文的研究由于时间的关系,有一些地方做的还不是很完美。对MVC设计模式的研究时间不长,所以在写代码的时候还没有做到真正的得心应手,是在查询一些帮助文档的情况下才完成的。
但是,通过这次设计我意识到将旧知识和新知识结合的必要性,学会了如何思考和解决问题的方法。在今后的学习和工作当中,我会再接再厉,做出更好的软件系统。