基于Java的CMS系统的设计与实现Word文档格式.docx
《基于Java的CMS系统的设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Java的CMS系统的设计与实现Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
![基于Java的CMS系统的设计与实现Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/29/a588c241-8f7e-4414-9c9e-b6b99b1f6424/a588c241-8f7e-4414-9c9e-b6b99b1f64241.gif)
而精通JavaWeb开发的软件工程师也越来越受各大软件公司的欢迎。
关于JSP背景,JSP是由Sun公司倡导、许多公司参与,于1999年推出的一种动态网页技术标准。
JSP是基于JavaServlet及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站,这项技术还在不断的更新和优化中。
JSP以Java技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离,能够脱离硬件平台束缚,以及编译后运行等优点,JSP已成为Internet上的主流开发工具。
虽然动态JSP技术给我们提供了功能强大的操作能力,但是在方便的同时也给我们带来性能上的不足,因为每次访问同一个页面都要连接数据库,生成网页内容等,一旦网页数量变大,访问量变大以后整个服务器就承受不了这种压力[2]。
总结缺点如下:
(1)页面制作无序,网站风格不统一,大量信息堆积,发布显得异常沉重;
(2)内容繁杂,手工管理效率低下,手工链接视音频信息经常无法实现;
(3)应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;
(4)改版工作量大,系统扩展能力差,集成其它应用时更是降低了灵活性;
对于网站建设和信息发布人员来说,他们最关注的系统的易用性和的功能的完善性,因此,这对网站建设和信息发布工具提出了一个很高的要求。
首先,角色定位明确,以充分保证工作人员的工作效率;
其次,功能完整,满足各门道"
把关人"
应用所需,使信息发布准确无误。
比如,为编辑、美工、主编及运维人员设置权限和实时管理功能。
此外,保障网站架构的安全性也是用户关注的焦点。
能有效管理网站访问者的登陆权限,使内网数据库不受攻击,从而时刻保证网站的安全稳定,免于用户的后顾之忧[3]。
根据以上需求,一套专业的内容管理系统CMS应运而生,所谓的CMS系统即ContentManagementSystem的缩写,意为"
内容管理系统"
,是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。
内容管理解决方案重点解决各种非结构化或半结构化的数字资源的采集、管理、利用、传递和增值,并能有机集成到结构化数据的商业智能环境中,如OA,CRM等。
内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。
这里指的"
内容"
可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到网站的信息[4]。
内容管理系统CMS有效解决了用户网站建设与信息发布中常见的问题和需求,它的作用就是生成固定的页面直接给用户访问,极大提高了页面访问率。
本系统基于Java的CMS系统的内容Content主要体现在新闻,即可以理解为一个新闻发布系统。
系统的总体设计目标分为前端和后台两部分,任何用户都可以通过系统前端阅读新闻,而只有注册的用户才可以评论新闻;
管理员通过核定的管理员账号登录后台可以对系统中的类型、新闻、发布、评论以及注册的用户进行管理。
1.2关键技术介绍
(1)访问数据库的JDBC
JDBC(JavaDateBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关心数据库提供统一访问,它由一组用Java语言编写的类和接口的组成[5]。
访问数据库,程序员只需用JDBCAPI写一个程序就够,它可向相应的数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只需写一遍程序就可以让它在任何平台上运行,这也就是java编写一处,处处运行的优势。
简单的说,JDBC可以做三件事:
与数据库建立连接、发送操作数据库语句并处理结果。
在Dao中进行操作。
(2)设计模式MVC
MVC全名是ModelViewController,是模型(Model)-视图(View)-控制器(Controller)的缩写,是一种软件设计典范[6]。
视图是用户看到并与之交互的界面,有HTML元素组成,比如系统中供用户看到的jsp系统界面。
模型表示企业数据和业务规则,相当于系统的核心业务service。
而控制器接收用户的输入并调用模型和视图去完成用户的请求,所以当当即Web界面中超链接和发送Html表单时,控制器本身不输出任何东西和做任何处理。
它本身只是接收请求并决定调用哪个模型构建去处理,然后再确定用哪个视图来显示返回的数据,相当于本系统的Action。
简单的说也就是用户在浏览器上的页面(View)中发出请求给Action(Controller),然后Action调用Service(Model)去完成请求并用View显示给用户看。
(3)采用框架Struts2
Struts2是开源软件。
使用Struts的目的是为了帮助我们减少在运用MVC设计模式来开发Web应用的时间。
应用Struts2的好处主要体现在两个方面,Taglib和页面导航。
Taglib是Struts的标签库,使用标签库可以直接取得页面中的值,只要页面变量名和Action的变量名保持一致并提供Set和Get方法,框架封装了取值的代码,用起来很方面,不用写Session,直接可以利用Struts标签库中的标签来取值[7],在本系统中就是用了Struts2的这个好处。
(4)开发模式B/S
B/S结构(Browser/Server,浏览器/服务器模式),是Web兴起后的一种网络结构模式,Web浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到了服务器上,简化了系统的开发、维护和使用。
客户机上只需要安装一个浏览器如InternetBrowser,服务器如Tomcat,浏览器端的用户就可以通过WebServer同数据库进行数据交互。
B/S最大的优点就是无论在何地,只要有电脑而不需要安装任何软件就可以使用。
本系统利用了Tomcat服务是B/S的开发模式的系统,使用方便[8]。
1.3本文主要内容
在本文中,我所讲的主要内容是高效的动态网站系统的设计,具体章节的安排如下:
第一章:
引言,本章中主要介绍了系统的背景及本文的主要内容;
第二章:
总体方案设计,本章介绍了该系统的设计目标及处理流程;
第三章:
数据库设计,本章介绍了该系统中的数据是如何管理的;
第四章:
功能模块的具体实现,本章详细介绍了本系统具体是怎么实现的;
第五章:
系统运行与调试,本章中介绍了该系统的运行环境及操作步骤;
第六章:
总结与展望,本章介绍了做系统的时候的一些想法。
最后,衷心的感谢老师的教导,并列举出参考文献。
第二章总体方案设计
2.1系统设计的目标
本系统在网上进行操作,为用户带来了方便,用户足不出户就可随时查看新闻。
同时对于发布新闻的管理员来说,减少了一定的资源浪费,减少了纸张和墨水,给浏览者以新的视觉感受。
2.2系统处理流程
2.2.1系统前台流程图
系统前台主要是查看新闻和对新闻添加评论,具体流程如下:
(1)输入地址,进入系统前台;
(2)查看新闻;
(3)登录之后添加评论;
(4)对评论和修改个人信息点击提交保存数据。
系统前台流程如图2.1所示
输入错误
输入正确
图2.1系统前端处理流程图
2.2.2系统后台流程图
本系统的后台处理是通过登录口令登陆后台来实现的,具体处理流程如下:
(1)输入地址,进入后台登录口令界面,输入登入口令;
(2)通过验证后,进入系统(若输入有误则重新输入用户名和密码);
(3)进入系统,管理新闻类型、新闻、发布、评论和会员;
(4)对每个模块管理都是点击提交保存数据。
后台系统处理流程如图2.2所示:
输入错误
用户名、密码
图2.2系统后台处理流程图
2.3系统功能模块设计
通过对CMS系统的功能需求分析,可知系统的功能有:
系统前台和后台管理。
系统功能按照功能模块图进行设计。
CMS统功能模块设计如图2.3所示:
图2.3CMS系统功能模块设计层次图
2.4系统设计分析
本系统主要有两大模块:
系统前端和系统后台,其中前台和后台中又分为各自不同的小模块。
(1)系统后台
只有特定的管理员成功输入用户名和密码才可以登录后台,而且这个管理员只能修改信息并且不能被删除掉,系统一存在此管理员账号就存在。
进入后台后对分别对新闻类型,新闻,发布,评论还有用户进行管理,主要是对其进行增删查改操作,且这些实体之间都有联系,在删除的时候务必要小心。
例如:
如果想删除一个新闻,必须保证没有评论引用此条新闻,否则将删除失败。
突出点:
发布新闻的时候要读取jsp文件生成html文件以便前台读取数据使用。
这是CMS技术在这个系统中使用的关键部分。
数据过多则产生滚动条,以便所有数据都有显示。
(2)系统前端
首先用户进入的是新闻中心,新闻中心中有各种不同类型的新闻,用户点击对应的新闻类型可以查看其对应很多新闻链接,同时用户还可以查看评论和对新闻进行评,但是一般用户是不可以进行新闻评论的,这就牵扯到登录和注册的模块,只有注册过的用户才可以对新闻进行评论,同时登录成功之后用户可以对自己的信息进行管理,包括修改用户名和密码等等。
点击新闻标题查看新闻链接的是后台发布生成的html文件。
第三章数据库设计
MySql数据库是一个开放源码的小型关联式数据库管理系统,用起来方便稳定,占用的空间比较小,比较适合小型的系统[9]。
所以本系统采用此数据库。
3.1系统数据流程图描述
本系统的数据流程是通过管理员以及用户的正确操作来实现的,当用进入新闻中心后,系统在数据上会自动记录用户的操作,通过Web服务器展现在网页浏览器中给用户看。
其他操作亦如此。
系统数据的工作过程示意图3.1所示:
数据库服务器Web服务器网页浏览器
图3.1数据库系统的工作过程示意图
3.2概念结构设计
基于Java的CMS系统的设计与实现分为两个部分,前台和后台。
前台对应着普通用户,而普通用户则只能进行查看新闻和对新闻进行评论。
根据分析,系统前端E-R图如图3.2所示。
图3.2前台E-R图
而系统后台则对应着管理员,可以管理任何信息,包括新闻类型、新闻、发布和评论的管理,同时各部分模块都有各自对应的属性。
系统后台E-R图如图3.3所示
图3.3后台E-R图
3.3物理结构设计
数据库设计是系统设计中相当关键的环节,它是上层应用的基础。
根据系统功能需求分析,不难抽出系统中的一些实体对象,包括类型、新闻、发布、评论、用户。
本系统数据库中各个数据表的字段定义和说明如下:
(1)category(新闻类型表),存放新闻类型,入表3.1所示:
表3.1新闻类型表category
字段名称
类型
大小
读写
非空
约束
默认值
描述
id
int
4
w/r
√
PK
-
用户id
name
varchar
20
新闻类型名
(2)news(新闻表),存放新闻信息,如表3.2所示:
表3.2新闻表news
新闻id
userId
FK
1
用户的id
categoryId
类型id
title
50
新闻的标题
content
2000
新闻的内容
(3)publish(发布表),存放已发布的新闻信息,如表3.3所示:
表3.3发布表publish
newsId
url
500
发布地址
publishTime
timestamp
CURRENT_
TIMESTAMP
发表新闻的时间
(4)revert(评论表),存放用户评论的信息,如表3.4所示:
表3.4评论表revert
publishId
发布id
content
评论内容
revertTime
timestamp
评论新闻时间
(5)user(用户表),存放用户的信息,如表3.5所以:
表3.5用户表user
userName
用户登录名
password
用户登录密码
phone
用户联系电话
email
用户邮箱
status
boolean
false
标识是否是管理员
3.4出错处理设计
本系统采用了典型的人-机对话模式,若操作失败则会有错误信息提示。
出错处理对策:
用户可以根据显示的提示信息进行相应的处理。
安全保密设计:
本系统设计了密码验证登陆窗口,具有权限控制。
第四章系统功能模块的具体实现
利用MyEclipse集成开发环境新建一个WebProject,如图4-1所示。
单击图4.1中的next按钮,在对话框的ProjectName文本框中输入项目名称“CMS”,点Finish完成创建,如图4.2所示。
图4.1新建WebProject图4.2输入工程名
4.1数据库与后台连接的实现
系统中,JDBC即JavaDataBaseConnectivitystandard负责整个系统与数据库的连接和关闭操作,主要分为6个步骤:
(1)注册驱动
(2)获得连接
(3)获得操作对象
(4)执行操作对象
(5)获得结果集
(6)关闭连接
以根据用户名查找用户为例,代码详见附录。
4.2数据库创建表
创建数据库createdatabaseCMScharsetutf8;
以用户表user为例,创建user表的代码详见附录。
其他表在数据库中的创建与用户表user的创建时类似的。
4.3系统主页面设计
系统利用Struts2的ognl表达式来取数据数据,以前台为例。
主页面(frame.jsp)用frameset来分为三个部分,第一部分是显示新闻类型导航菜单;
第二部分是系统模块的标签,如登录,个人资料,注销系统等;
第三部分则用于主要的功能界面。
即各种操作的显示,是根据用户操作来变化的。
frame.jsp主要代码详见附录。
4.4包含各种对用户的逻辑方法
(1)系统创建了创建了与数据库对应实体包entity包,里面封装了与数据库表对应的实体对象,以用户表对应的User.java类为例,详细代码见附录。
(2)系统对应的核心的逻辑业务定义在service包中,service只进行核心业务操作,而与数据库的链接则交由负责jdbc部分的dao包中,核心业务以login()为例,详细代码见附录。
(3)Struts2利用action进行页面的调整,以CmsAction.java中登录为例。
对应的login方法代码和Struts对登录action配置,详细代码见附录。
4.5CMS系统的关键实现
一个CMS系统,其内容可能分为多种,就像摘要中提到的,可能是图片、可能是视频、可能是数据库中的信息如新闻等。
不论是哪种类型的内容,但其CMS系统关键就是采用模板技术,其技术的核心不在于内容本身,而在于读取内容的方式。
通常读取到的内容是直接从数据库中获得,而CMS系统的体现就是,查看的内容是从静态页面中获得,而不用每次都要访问数据库。
针对本系统,其实现原理就是新闻一旦发布一般不会改变其内容,而就是利用这个特点在后台发布新闻的时候,读取显示新闻内容的jsp页面,生成对应的html文件,然后在前台只要链接这个html,每次查看新闻内容是通过访问这个html而不是访问数据库,这就是CMS系统提高效率所在。
其后台读取文件的代码和前台实现链接的代码详见附录。
第五章系统运行与测试
5.1系统运行环境
操作系统:
Windows、Linux等系统环境;
开发工具:
MyEclipse;
服务器:
Tomcat6.0服务器;
数据库:
Mysql数据库。
5.2系统前端运行
5.2.1进入首页
将项目部署到Tomcat服务器上之后,启动服务器,在浏览器中输入URL地址访问系统首页,URL地址为:
http:
//localhost:
8080/CMS/qian/show_frame。
进入首页后,用户可以进行“查看新闻”、“搜索新闻”、“用户登录和注册”、“修改个人信息”、“添加评论”、“注销登录”如图5.1所示。
图5.1系统前端首页
5.2.2查看新闻
(1)将鼠标放在“一汽-大众母亲节感恩回馈特价车签售会!
”的标题上后,提示栏地址为:
8080/CMS/qian/do_newsContext.action?
publish.id=29&
news.id=31,如图5.2所示。
图5.2鼠标放在标题上(动态)
(2)点击标题“一汽-大众母亲节感恩回馈特价车签售会!
”后进入内容页,在新闻的内容页并可查看评论。
评论列表将在下面步骤中进行展示。
如图5.3所示。
图5.3查看新闻内容(动态)
(3)点击新闻类型导航菜单,如“汽车”,鼠标放在“一汽-大众母亲节感恩回馈特价车签售会!
”,而提示栏地址则为:
8080/CMS/upload/31.html,这就是CMS技术的体现,读新闻直接读取html文件。
如图5.4所示。
图5.4鼠标放在标题上(静态)
(4)点击标题“一汽-大众母亲节感恩回馈特价车签售会!
”进入内容页后可以看出访问内容的效果和动态(图5.3)访问内容效果是一样的,评论列表将在下面步骤中进行展示。
如图5.5所示。
图5.5查看新闻内容(静态)
5.2.3搜索新闻
(1)如果搜索栏输入为空,则显示所有的新闻列表。
如图5.6所示。
图5.6输入为空
(2)在标题中输入“朱自清”,则显示标题中带有“朱自清”的新闻列表,