1、本科毕业论文(20 届)CMS 内容管理系统的设计与实现所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘要随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,常常需要花费许多时间、人力和物力来处理信息更新和维护工作;遇到网站扩充的时候,整合内外网及分支网站的工作就变得更加复杂,甚至还需重新建设网站;如此下去,用户始终在一个高成本、低效率的循环中升级、整合。 根据以上常见问题,设计一套内容管理系统,来有效解决用户网站建设与信息发布中常见的问题和需求。CMS 后台管理系统主要为用户后台管理提供方便,而且新闻列表的文章,可以通过爬虫来获取,它流程完善、功能
2、丰富,可把获得的内容分门别类并授权给合法用户编辑管理,并且通过系统查询,分页显示在前台页面上,而不需要用户去理会那些难懂的 SQL 语法。同时也不用专门的编辑人员呆在电脑前面。论坛的管理也在后台管理系统得到实现,例如版块的管理,帖子的管理。对网站内容管理是该软件的最大优势。关键字:CMS 后台管理系统,文章查询,分页显示,爬虫AbstractWith the enrichment and development of networks, many websites can not be quickly follow up a lot of information is derived and
3、the pace of business model innovation, often need to spend a lot of time, manpower and material resources to handle the information updating and maintenance work; There was a site expansion, the integration of internal and external network and branch site work became more complex, and even still nee
4、d to build a website; So, the user is always in a high cost, low efficiency, the cycle of upgrade.According to the above common problems, design a set of content management system, to effectively solve the user common problems in the website construction and information release and needs. CMS backgr
5、ound management system mainly background management provides the convenience for the user, a list of articles and news, could be obtained by the crawler, its process perfect, function is rich, but the classify and the content of the authorized editor for a legitimate user management, and through the
6、 system query, paging display at the front desk page, without the need for users to ignore those difficult SQL syntax. At the same time also need not special editorial staff to stay in front of the computer. BBS management is achieved in the background management system, such as the management secti
7、on, the management of the post. For web content management is the biggest advantage of the software.Keywords: CMS background management system, the article queries, paging, according to the crawler目 录1 绪论 .11.1 项目背景及意义 .11.2 系统的研究现状 .11.3 论文组织结构 .22 系统开发技术及运行环境介绍 .32.1 Java 简介 .32.2 Ajax 简介 .32.3 JQ
8、uery 简介 .32.4 校验技术简介 .42.5 MVC 思想简介 .42.5.1 MVC 简介 .42.5.2 MVC 特点 .52.6 DIV+CSS 简介 .62.7 Mysql 简介 .73 系统分析与设计 .83.1 系统的可行性分析 .83.1.1 技术可行性 .83.1.2 经济可行性 .83.2 需求分析 .83.3 系统设计目标 .83.4 系统模块和功能设计 .93.5 网站主 要组织结构 .93.7 系统的用例图 .103.8 数据库表设计 .114 系统的实现 .134.1 数据库的连接 .134.2 公共模块设计与实现 .134.3 登陆模块 .144.4 后台管
9、理员登录界面 .154.5 后台管理员功能的实现 .154.5.1 文章列表管理 .154.5.2 爬虫管理 .154.6 前台页面实现 .164.6.1 前台新闻页面实现 .164.6.2 bbs 论坛界面 .174.7 核心代码 .185 总结 .24参考文献 .25致 谢 .2611 绪论1.1 项目背景及意义随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,常常需要花费许多时间、人力和物力来处理信息更新和维护工作;遇到网站扩充的时候,整合内外网及分支网站的工作就变得更加复杂,甚至还需重新建设网站;如此下去,用户始终在一个高成本、低效率的循环中升级、整合
10、。于是,我们看到很多这样的问题:(1)页面制作无序,网站风格不统一,大量信息堆积,发布显得异常沉重;(2)内容繁杂,手工管理效率低下,手工链接视音频信息经常无法实现;(3)应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;(4)改版工作量大,系统扩展能力差,集成其它应用时更是降低了灵活性;对于网站建设和信息发布人员来说,他们最关注的系统的易用性和的功能的完善性,因此,这对网站建设和信息发布工具提出了一个很高的要求。首先,角色定位明确,以充分保证工作人员的工作效率;其次,功能完整,满足各门道“把关人“应用所需,使信息发布准确无误。比如,为编辑、美工、主编及运维人员设置权限和实时管理
11、功能。此外,保障网站架构的安全性也是用户关注的焦点。能有效管理网站访问者的登陆权限,使内网数据库不受攻击,从而时刻保证网站的安全稳定,免于用户的后顾之忧。为了解决以上常见问题,一套专业的内容管理系统 CMS 应运而生,来有效解决用户网站建设与信息发布中常见的问题。对网站内容管理是该软件的最大优势,它流程完善、功能丰富,可把爬虫取得的内容分门别类并授权给合法用户编辑管理,而不需要用户去理会那些难懂的 SQL 语法。1.2 系统的研究现状Vignette.奥斯汀, TX Vignette 公司,网站内容管理系统的领导者,今天宣布在中层楼资金上它取得了 1 亿 4 千万美元,成为奥斯汀基础软件公司中
12、最大的私人资产投资,同时也使 Vignette 成为在奥斯汀发展最快的互联网软件公司。 Vignette 公司,作为全世界网站内容应用系统的领导者,为公司们提出了解决方案在互联网上建立非常成功的商业。 Vignette 的王牌产品是 StoryServer 3,它能使公司以应用软件(如在线发布、知识管理和复杂电子商务系统)为基础建立、管理和发布服务,最终加速和提高客户的忠实度和持续力。 超过 75 个一流公司,包括 Ziff- Davis ZDNet, First Chicago NBD, Bay Networks 和 CNET ,使用 StoryServer 3 ,每天提供 2500 万个网
13、页浏览。 StoryServer3 获得了 5 个行业奖励,包括 UPSIDE 杂志的“网络基础组织类最活跃的私人公司“ 。 它的 V/5 系列是一套应用软件包,设计用来为门户、B2C 和 B2B 市场需求提供内容管理。 V/5 系列具有高度的可定制化能力和广泛的功能,它包括内容和模板的开发、个性化定制和发布。但是,它的多数功能还需要开发。2国内用的比较多的有 Active Context、turbocms、cms4i,不过这些都是纯商业性系统,价格很高。一般个人建站,建议选取国内外比较有名的开源系统。(1)CmsTop 是由原 PHPCMS 创始人钟胜辉创办的专业级 CMS 产品,CmsTo
14、p 已服务了200 多家知名媒体网站,客户遍及报业、杂志、广电、网媒、政府、军队和高校等多个领域。(2)J2CMS 捷兔网络的 J2CMS 是一个基于 JavaEE 平台的内容管理系统。(3)Zoomla!逐浪 CMS 独有六大原创技术:独有的自定义模型与节点功能功能、联合华夏互联与华夏营销网打造从网站开发到运营推广再到策划营销一体的解决方案、独创的文名作为标题生成格式为符合百度等大型搜索引擎收录提供了友好的支持、完全支持 W3C 标准为中国网站的标准之路铺垫基础、独创的项目管理系统(zoomla! projects)为传统 B2B 服务提供了一体化的流程管理、中国首个完全兼容 IE8 的 C
15、MS 管理系统。逐浪 CMS 包括版本:免费版、个人版、企业版、教育版、政府版、高级订制版。普通用户均可通过官方网站下载免费使用。本次开发所采用的系统是:JAVA CMS1.3 论文组织结构本文共分 5 部分:第一章:绪论。本章包括论文的研究背景、研究现状、研究意义概述,同时对本文研究的结构进行了介绍。第二章:系统的需求分析和总体设计。从系统用户的角度出发,分析生活中的实际需求,进行系统的需求分析,并在需求分析的基础上,对系统进行总体设计。第三章:系统的详细设计。本章对各个功能模块进行详细地研究和设计。第四章:系统实现。本章对系统部分模块实现的功能进行了具体介绍。第五章:总结。通过对全文研究工
16、作、研究成果和不足之处的总结和归纳,指明今后在理论研究和实际应用方面需要进一步努力的方向。32 系统开发技术及运行环境介绍2.1 Java 简介Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE, JavaME, JavaSE)的总称。Java 自面世后就非常流行,发展迅速,对 C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球
17、最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。与传统程序不同,Sun 公司(目前已被甲骨文收购)在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。它对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Ja
18、va 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET 平台以及模仿 Java 的 C#语言。Java 是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。2.2 Ajax 简介Ajax 是 Asynchronous JavaScript and XML(异步 JavaScript 和 XML 技术)的简称,是一套特殊的 Web 编程技术,通过这种技术,开发人员可以使用来自服务器的输入无缝地更新部分 Web 页面或 Web 应用程序。弥补用了 B/S 方式开发交互式 Web 页面的不足。Ajax 并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合
19、在一在同共的协作中发挥各自的作用,它包括使用 XHTML 和 CSS 标准化呈现;使用 DOM 实现动态显示和交互;使用 XML 和 XSLT 进行数据交换与处理;使用 XMLHttpRequest 进行异步数据读取;最后用 JavaScript 绑定和处理所有数据; 通过一个新的对象 XMLHttpRequest 对象可以步的与服务器端通信, 再通过 JavaScript 动态的刷新网页的部分内容而不是全部, 因而可以减少数据流量, 增加相应速度。2.3 JQuery 简介JQuery 是一个兼容多浏览器的 javascript 库,核心理念是 write less,do more(写的更少
20、,做的更多)。JQuery 在 2006 年 1 月由美国人 John Resig 在纽约的 barcamp 发布,吸引了来自世界各地的众多 JavaScript 高手加入,现在由 Dave Methvin 率领团队进行4开发。如今,jQuery 已经成为最流行的 javascript 库,在世界前 10000 个访问最多的网站中,有超过 55%在使用 jQuery。JQuery 是免费、开源的,使用 MIT 许可协议。JQuery 的语法设计可以使开发者更加便捷,例如操作文档对象、选择 DOM 元素、制作动画效果、事件处理、使用 Ajax 以及其他功能。除此以外,JQuery 提供 API
21、让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页 。2.4 校验技术简介javascript 客户端校验:JavaScript 是一种解释型的、基于对象的脚本语言。尽管与 C+ 这样成熟的面向对象的语言相比,JavaScript 的功能要弱一些,但对于它的预期用途而言,JavaScript 的功能已经足够大了。JavaScript 不是其他语言的精简版(例如,它与 Java 基本没有任何关系) ,也不是任何事物的简化。不过,它有其局限性。例如,您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。此外,JavaScript 脚本只能在某个
22、解释器或“宿主”上运行,如 Active Server Pages(ASP) 、Internet 浏览器或者 Windows 脚本宿主。JavaScript 是一种弱类型的语言。弱类型意味着您不必显式定义变量的数据类型。事实上 JavaScript 更进一步,您无法在 JavaScript 上明确地定义数据类型。此外,在大多数情况下,JavaScript 将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某项(一个字符串) ,该数值将被转换为文本。客户端校验的好处就是用户对系统使用更方便。对于非恶意的错误进行及时纠正。防止出现客户等了许久却弹出一个出错提醒。随着 WEB2.0 技术
23、的突飞猛进 javaScript的应用也越来也广泛成熟,AJAX 技术就是 javaScript 的新的体现,它可以异步的同服务器进行数据交换,从而减少了不必要的等待和大量的无用数据传输,减轻了网络压力,传统的客户端验证和服务器端验证的界限显得越来越模糊,除了做验证外 AJAX 还可以实现很多更加动态的效果,例如 Google 的 GoogleEatrh 等网页工具。对应用 Ajax 也会遇到很多问题,它可能破坏浏览器后退按钮的正常行为。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常
24、微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在 Ajax 应用程序中,却无法这样做。使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中用。另外使用 JavaScript 作的 Ajax 引擎,JavaScript 的兼容性和 DeBug 都是让人头痛的事,Ajax 的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰,用户不太清楚现在的数据是新的还是已经更新过的,另外对流媒体的支持没有 FLASH、Java Applet 好。52.5 MVC 思想简介2.5.1 MVC 简介MVC 全名是 Model View Controller,是模型(m
25、odel)视图(view)控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑 MVC 被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。图 2-1 MVC 模式(1)视图视图是用户看到并与之交互的界面。对老式的 Web 应用程序来说,视图就是由 HTML元素组成的界面,在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括 Macr
26、omedia Flash 和象 XHTML,XML/XSL,WML 等一些标识语言和 Web services。如何处理应用程序的界面变得越来越有挑战性。MVC 一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 (2)模型模型表示企业数据和业务规则。在 MVC 的三个部件中,模型拥有最多的处理任务。例如:它可能用像 EJBs 和 ColdFusion Components 这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个
27、模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 (3)控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击 Web 页面中的超链接和发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。ModelControllerView6因此,无论何时发生了何种数据变化,控制器都会将变化
28、通知所有的视图,导致显示的更新。2.5.2 MVC 特点(1) 低耦合性视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动 MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 (2) 高重用性和可适用性随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC 模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何 WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品
29、的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用 HTML 来表示,但是也有可能用WAP 来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。 (3)较低的生命周期成本MVC 使降低开发和维护用户接口的技术含量成为可能。 (4)快速的部署使用 MVC 模式使开发时间得到相当大的缩减,它使程序员(Java 开发人员)集中精力于业务逻辑,界面程序员(HTML 和 JSP 开发人员)集中精力于表现形式上。 (5)可维护性分离视图层和业务逻辑层也使得 WEB 应用更易于维护和修改。 (6)有利于软件工程化管理由于
30、不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。2.6 DIV+CSS 简介DIV+CSS 是 WEB 设计标准,它是一种网页的布局方法。与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。提及 DIV+CSS 组合,还要从 XHTML 说起。XHTML 是一种在 HTML(标准通用标记语言的子集)基础上优化和改进的新语言,目的是基于 XML 应用与强大的数据转换能力,适应未来网络应用更多的需求。其作用:(1)精简的代码,使用 DIV+CSS 布局,页面代码精简,这一点相信对 XHTML 有所了解的都知道。观看更多的 HTML 教程内容。代码精简提高了百度蜘蛛的爬行效率以及高效性,能在最短的时间内爬完整个页面,同时这样对收录质量有一定好处;(2)提高访问速度、增加用户体验性