基于JAVA的个人博客系统设计毕业论文
2020-02-17 23:25:08
摘 要
随着云服务的普及,搭建一个廉价、甚至是免费的独立博客已经不是技术难题。在互联网巨头提供免费社交媒体的今天,个人独立博客依然具有其灵活、可定制、完全控制、自由广告的优势及魅力,是一个表达情感,分享经验、生活的地方,最重要的就是能够随心记录点点滴滴。本系统使用Java为开发语言,基于以Json为主的Java web框架Latke开发完成,实现了对博客网站的动态管理,提供内容发布、分类、搜索等功能。
本论文主要研究了博客的发展背景、系统实现的技术原理。研究结果表明:个人独立博客在微博、朋友圈、空间等碎片化社交媒体流行的今天依然凭借其独有的性质而有其存在的价值。本文的特色:从博客的背景出发,由浅入深地介绍了个人博客的实现技术原理以及其优势,详细且全面。
关键词:个人博客;社交媒体;Java;Latke
Abstract
With the popularity of cloud services, building a cheap, even free, independent blog is no longer a technical challenge. Today, when Internet giants offer free social media, individual independent blogs still have the advantages and charm of being flexible, customizable, fully controlled, and freely advertising. A blog is a place to express emotions, share experiences, and live. The most important thing is to be able to record bits and pieces. This system uses Java as the development language, based on the Java web framework Latke based on Json. It realizes the dynamic management of blog websites and provides functions such as content distribution, classification and search.
The paper mainly studies the development background of the blog and the technical principle of the system implementation.The results of the study show that individual independent blogs still have their unique value in today's social networks such as Weibo, circle of friends and space.The characteristics of this paper: from the shallower to the deeper to introduce the implementation principle of the system, detailed and comprehensive.
Key Words:personal blog;social media;Java;Latke
目录
第1章 绪论 1
1.1 研究背景及意义 1
1.1.1 研究背景 1
1.1.2 研究意义 1
1.2国内外研究现状 2
1.2.1 国外研究情况 2
1.2.2 国内研究情况 3
1.3 研究内容 3
第2章 系统分析 4
2.1 需求分析 4
2.1.1 功能需求 4
2.1.2 性能需求 4
2.2 开发环境分析 4
2.2.1 JDK 4
2.2.2 项目管理 4
2.2.3 Web 容器 4
2.2.4 数据库 5
2.2.5 IDE 5
2.3 设计模式分析 5
2.3.1 MVC优点 6
2.3.2 mvc适用范围 6
2.3.3 FreeMarker 7
2.4 框架分析 8
2.4.1 Latke框架 8
2.4.2 数据模型 9
2.5 项目结构分析 9
2.6 表结构分析 10
2.7 页面设计分析 12
2.7.1 响应式布局 12
2.7.2 网页设计原则 13
2.7.3 交互页面样式 14
2.8 部署分析 15
2.8.1 Docker 15
2.8.2 Docker部署的优势 15
2.9 本章小结 16
第3章 系统实现 17
3.1 系统模块组成 17
3.2 文章管理模块 17
3.2.1 代码层实现 17
3.2.2 功能展示 18
3.3 分类管理模块 19
3.3.1 代码层实现 19
3.3.2 功能展示 20
3.4 评论管理模块 21
3.4.1 代码层实现 21
3.4.2 功能展示 22
3.5 搜索查询 22
3.5.1 代码层实现 22
3.5.2 功能展示 24
3.6 本章小结 24
第4章 结论与展望 25
4.1 结论 25
4.2 展望 25
参考文献 26
致谢 27
第1章 绪论
1.1 研究背景及意义
博客是由个人管理的网站或在线日记,用于发布新文章,照片或视频,记录情感,表达情感或共享信息[1]。博客帖子通常按照发布时间倒叙排名。
许多博客专注于特定主题和新闻。典型的博客是文本,图像和到其他博客和网站的超链接以及其他与主题相关的媒体的组合[2]。能够以评论的形式参与同作者的交互是许多博客的重要组成部分。博客的大多数内容专注于文本、艺术、照片、视频、音乐、播客等主题。博客是社会媒体网络的一部分。
1.1.1 研究背景
与互联网的发展相比,博客的历史只有20年。 然而,自从互联网出现以来,最初的博客格式已经实现。世界上第一个网站诞生于1991年,第一个博客网站于1994年发布。从博客形式的出现到最终被命名为“Blog”,并得到广泛认可,最初的博客花了五到六年。 而且当时博客只能手动更新,风格也非常简单。
在博客开发的早期,博客通常被视为“网络日记”。 1998年推出的开放日记允许人们撰写公共或私人期刊。随着德拉吉报道的普及以及美国政客利用博客“出售”他们的观点,博客很快转向大众视野,在千禧年出现了许多享誉世界的博客。
最终博客进入主流视野,人们开始更加关注博客。新闻媒体还在他们的在线网站上引入了“客座记者”,许多媒体行业的记者和专业人士都开设了自己的博客,并在博客网络上提供服务。Blogger的答案和评论是对新闻报道的补充,并且许多人认为这种基于个人经验的论点接近事实。
1.1.2 研究意义
在朋友圈、空间、微博等各种社交媒体繁杂的今天,个人博客注重文字表达、独立于主流媒体,摆脱了平台的束缚,散发其特有的魅力与作用[3]:
记录个人生活,就像在真实的日记中一样。事实上,博客(blog)的字面意思是网络日志(web log),你可以记录日常生活中发生的一切事情,分享你的点滴生活。
传达个人自由的思想,博客是一个自由空间,可以根据个人的自由意志写出任意内容,并可以传达政治、经济、科技等个人自由的思想。但是也需要注意到言论当中是否存在法律、涉及知识产权的问题。
表达和分享个人情感,作者可以在博客中表达个人情感,把生活中的喜怒哀乐同网友分享。
分享交流知识和技术,如果您有专业的知识和兴趣,您可以通过撰写博客来分享您的知识和技术,在互联网上与网民讨论和交谈,共同进步。
认识志同道合的朋友,根据博客社区的社群性质,可以吸引兴趣爱好相同的网友浏览,并且借此机会结交新朋友。
分享创意文学和图片,博客可以分享他们的文学和摄影作品,并可以被网友查看和访问。作者借此机会与网络上的听众进行交流,从而扩大参与和影响力。
医学价值,科学家早就知道,写自己的个人经历具有医学价值。 博客提供了一个轻松记录个人体验的渠道。研究表明,它可以帮助记忆和睡眠,增加免疫细胞活性,减少艾滋病患者的病毒载量,甚至加速术后恢复。
1.2国内外研究现状
1.2.1 国外研究情况
在20世纪90年代早期,电子公告板和论坛使得能够以电子邮件的形式讨论感兴趣的主题和内容列表,并且网络讨论各种话题,这些被认为是博客前身。
以下为博客发展的简要时间表:
1994年,个人主页出现。Justin Hall为宾夕法尼亚州斯沃斯莫尔学院的一个学生,于1994年创建了一个个人网页Links.net,但这个个人网站并未被称为博客,被称为个人主页。
1997年,术语weblog出现,weblog来自一个著名的早期博客--美国机器人智慧网站。大众普遍都认为这个术语由Jorn Barger创造,他收集了互联网的各种资源以方便人们浏览,使用短语“logging the web”描述这个过程。
1998年,开放日志上线,Open Diary于1998年上线,后来推出了日志评论和社交圈功能,在博客中引入了对话,实现了博客的开拓性社会化。然而丢失和泄露用户帐户为开放日记最终停止埋下了隐患。
1998年,新闻媒体使用博客,重要的在线新闻出版商Jonathan Dube帮助The Charlotte Observer以博客的形式撰写了一份飓风bonnie报告。
1999年,历史上第一个免费的博客工具Pitas面向大众发布。当时互联网上只存在23个博客。
2005年,根据Technorati的报告,全球博客数量达到5000万,中国博客数量从2004年到2005年急剧增加,日文,中文和英文博客排名前三。许多著名的博主诞生于21世纪初。第一个主要的播客服务Audioblogger诞生于2003年,2004年出现了视频博客,一年后出生于YouTube。
2006年,发布了限制为140字的Twitter,据说这个想法源于手机的短信,目前Twitter已经成为一种主要的社交媒体。
2007年,介于博客和社交网络之间的Tumblr发布了,使博客和博文风格更加丰富。
经过近十年的发展,博客已成为网络用户的主要沟通手段,但随着社交媒体博客的问世逐渐成为社交媒体的一部分。 由于博客作者目前正在使用更多的多媒体内容,因此视频博客和播客的比例非常高。
1.2.2 国内研究情况
2000年,博客开始进入中国并迅速发展,但其表现平平。
2004年,因为Muzimei事件正式进入国内视野。并且Microsoft MSN推出了Space Blog服务,向全球用户开放注册。 MSN Space是许多人的第一个博客。
2005年,新浪,搜狐,腾讯等国内门户网站加入了博客阵营,QQ空间和51博客都纷纷上线。
2006年,百度空间和网易博客成立。从此,正式开启了中国博客时代。
1.3 研究内容
基于上述的分析,本文的主要工作是整合现有技术方案,设计一套独立于传统社交媒体的个人博客系统,建立一个能够随心记录点点滴滴,表达情感,分享经验、生活的平台。该平台实现了文章管理、分类管理、搜索查询、评论等功能。
本文的各章节安排如下:
第一章为绪论。简单介绍博客的发展背景与意义,国内外研究情况以及本次研究的主要内容和系统的设计需求。
第二章为博客系统的整体设计方案分析,包括系统的开发环境、设计模式、框架的选择、系统的结构、数据库表结构的设计以及前端页面的设计和项目部署方案。
第三章为博客系统核心模块的实现细节及效果展示,核心模块包括文章管理、分类管理、搜索查询、评论。
第四章为总结与展望,从博客的发展与如今主流社交媒体的对比引导出个人博客存在的独特意义以及了对博客发展的展望。
系统分析
2.1 需求分析
2.1.1 功能需求
系统是一个基于Java的个人博客系统,前台用户可以实现对文章内容的搜索查询和对文章发表对应评论;后台管理者可以实现对文章的发布管理,分类管理和评论管理[4]。
2.1.2 性能需求
系统具有一定的安全性,通过相关的权限设置,可以防止博主的数据受到篡改;同时具有正确性,即系统数据操作和读取正确,不会出现错误。
2.2 开发环境分析
2.2.1 JDK
博客系统采用JDK 8开发。Oracle公司于2015年1月15日发布了新版本的JDK8。新版本中添加了许多新功能。 这些功能带来了一些变化,使编写Java程序变得十分容易。新特性主要涉及:对于JDK7中Fork/Join并行处理的升级;支持Lambda表达式;添加了Stream API;注释扩展添加了类型注释和重复注释,G1回收器支持字符串重复数据删除,从内存空间中删除永生代,并引入元空间[5]。
2.2.2 项目管理
Maven是一种软件(尤其对于Java)项目管理和自动构建工具,由Apache Software Foundation提供。基于项目对象模型(POM),Maven使用核心信息来管理项目配置,报告和文档。
2.2.3 Web容器
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对servlet和JSP的支持,并为Web服务器提供了一些特有的功能,比如Tomcat管理和控制平台,安全局管理和Tomcat阀门。 由于Tomcat本身也包含HTTP服务器,因此可以将其视为另一个Web服务器。但是,Tomcat不能与Apache HTTP Server混淆。 这是一个用C实现的HTTP Web服务器。这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含一个配置管理工具,您可以编辑和配置XML格式的配置文件。
2.2.4 数据库
MySQL是一个由瑞典MySQL AB开发的关系数据库管理系统,但是现在由Oracle公司拥有和维护。可以说MySQL是最流行的关系数据库管理系统之一,也是最适合Web应用程序的RDBMS应用程序[6]。
2.2.5 IDE
IntelliJ IDEA是由JetBrains Software(以前称为IntelliJ)开发的商业Java集成开发环境(IDE)工具。
2.3 设计模式分析
系统采用MVC设计模式,模型-视图-控制器(MVC)是软件工程设计中的软件体系结构,软件系统分为三个基本部分:
- 控制器 - 负责请求转发和请求处理。
- 视图 - 执行图形界面设计。
- 模型 - 由开发人员编写程序应具有的功能(例如实现算法),数据管理专家和数据库设计,可以实现特定功能。
图2.1 mvc设计模式
2.3.1 MVC优点
原始JSP页面混合了数据层代码(如SQL查询)和表示层代码(如HTML)。 虽然熟练的开发人员能够将数据层与表示层分开,但这种良好的设计通常不易实现,实现它需要仔细规划和不断的实验。MVC可以从根本上强制性地将它们分开。虽然构建MVC应用程序需要额外的工作,但它带来的好处无疑是巨大的。首先,多个 View 能共享一个 Model 。今天,同一个Web应用程序提供了各种用户界面,包括通过浏览器发送和接收电子邮件,通过手机访问电子邮件等[7]。 在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化并向用户呈现数据,并且业务逻辑和表示层是分开的。使代码实现了高度可重用性。
其次,Controller 是自包含高度独立内聚的对象,与 Model 和 View 保持相对独立,因此,可以轻松更改应用程序的数据层和业务逻辑。例如,要将数据库从MySQL迁移到Oracle或将RDBMS数据源更改为LDAP数据源,只需更改模型即可。如果控制器正确实现,View将正确显示它们,无论数据来自数据库还是LDAP服务器。由于MVC模式中的三个模块彼此独立,因此更改其中一个模块不会影响其他两个模块[8]。所以,根据这种设计理念,您可以构建几乎没有相互干扰的良好组件。
此外,控制器还可提高应用灵活性和可配置性。控制器可用于连接不同的模型和视图以满足用户需求或构建提供强大工具的应用程序。根据用户的需要,能够选择多个可重用的模型,视图和控制器,选择要处理的相应模型,然后选择适当的视图以向用户显示结果。
2.3.2 MVC适用范围
MVC模式在概念上强调模型,视图和控制器的分离,每个模块也遵循由控制器处理消息。模型负责数据源,视图负责数据呈现角色分离。通常MVC的三个部分是分开的:
- 模型负责数据访问,大多数框架都会建议使用单独的数据对象(DTO,POCO,POJO等)而不是弱类型的集合对象。数据访问的代码会使用 Data Access 的代码或是 ORM-based Framework,也可以进一步使用 Repository Pattern 与 Unit of Works Pattern 来切割数据源的相依性。
- 控制器负责处理消息,高端框架具有默认实现,作为控制器的基础。例如 Spring 的 DispatcherServlet 或是 ASP.NET MVC 的 Controller 等,在职责分离原则的基础上,每个控制器负责不同的部件,因此每个控制器分为不同的文件进行维护。
- 视图部分主要用于前端应用程序,控制器具有将处理结果交给视图,然后由视图来决定怎么显示。例如 Spring Framework 使用 JSP 或相应技术,ASP.NET MVC 则使用 Razor 处理数据的显示。
此外,由于MVC模式强调职责分离,因此在开发MVC应用程序时会生成许多文件,如果IDE(集成开发环境)不够成熟,则会成为问题,但现代主流IDE使用类别对象信息来编辑代码[8]。对于多个文件,这不再是一个问题,MVC模式要求开发人员考虑应用程序体系结构,而不是简单地为应用程序生命周期和后续可伸缩性开发应用程序,在可维护性方面有相当大的积极帮助。另外外,MVC的职责分离还带来了现代软件工程要求的关键特征:可测试性,基于MVC的应用程序具有良好的分离,各个部分可独立行使单元测试,有利于与企业内的自动化测试、持续集成与持续发行流程集成,减少了应用程序升级部署所需要的步骤。
MVC模式应用程序的目的是突破先前应用程序中使用的混乱撰写过程,并间接引诱开发人员思考具有更高架构方向的应用程序开发。因此,面向架构的思维对新手来说有一些局限性,需要更多的实施和实践来实现,所以,可能存在对MVC模型的拒绝或厌恶态度。但是,MVC更适用于应用程序的长期开发。与MVC相比,虽然大杂烩程序也可用于开发长期应用程序,但可伸缩性和可维护性(尤其是可测试性)将比MVC复杂得多。相反,虽然MVC模式下的应用程序需要在初始开发期间考虑软件的架构,所UI开发时间它会更长。但是,一旦应用程序完成,MVC的性质使可扩展性,可维护性和可测试性变得容易。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: