基于Spring框架的云笔记设计实现分析.docx
- 文档编号:27385554
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:41
- 大小:384.17KB
基于Spring框架的云笔记设计实现分析.docx
《基于Spring框架的云笔记设计实现分析.docx》由会员分享,可在线阅读,更多相关《基于Spring框架的云笔记设计实现分析.docx(41页珍藏版)》请在冰豆网上搜索。
基于Spring框架的云笔记设计实现分析
基于Spring框架的云笔记设计与实现
摘要
传统教育中,老师和学生多以原始的手工记笔记的方式进行教学与学习,在这个信息化的时代,随着社会教育行业的发展,使用云笔记系统以解决传统记笔记效率低、易出错的缺陷已成为必然趋势。
本系统采用B/S模式,JAVA语言进行开发,分为浏览器端和服务器端。
浏览器端使用HTML语言进行开发,主要采用AJAX技术处理客户端逻辑以及发送异步请求并实现了系统界面的一些动态效果。
主要实现了以下的功能:
用户的登录,注册以及密码修改;用户创建笔记本和笔记;笔记标题和内容的修改以及笔记和笔记本的删除;支持笔记的移动、分享以及收藏,分享后的笔记可被其他用户搜索以及收藏;支持回收站功能,回收站笔记的删除以及恢复到笔记列表中;以及发起笔记活动。
本课题所实现的云笔记系统改变了传统的记录笔记的模式,这种新的方式使得用户在学习中更加方便快捷的记录,分享,收藏笔记。
关键词Java/MySQL/MyBati/SpringMVC
Designandimplementationof
cloudnotesbasedonSpring
framework
ABSTRACT
Intraditionaleducation,teachersandstudentsmoretotheoriginalmanualrecordnotesthewayofteachingandlearning,intheinformationera,withthedevelopmentofsocialeducationindustryusingcloudnotessystemtosolvethelowefficiencyofthetraditionalnotetaking,easyerrorofdefectshasbecomeaninevitabletrend.
ThissystemusestheB/Smode,JAVAlanguagedevelopment,dividedintothebrowsersideandserverside.ThebrowsertouseHTMLlanguagetodevelop,mainlyusingAJAXtechnologytodealwiththeclientlogicandsendasynchronousrequestsandachievetheeffectofsomedynamicsysteminterface.Mainlyrealizesthefollowingfunctions:
userlogin,registrationandpasswordmodification;userstocreatenotesandnotes,notestitleandcontentofthemodificationandnotesandnotebookdeletion;notestosupportthemove,shareandused,andsharenotescanbeotheruserssearchandcollection;supportfunctionoftherecyclebin,recyclingstationnotesremovedandrestoredtothelistofnotes;andinitiatednotes.
Theimplementationofthecloudnotessystemtochangethetraditionalmodeofrecordingnotes,thisnewapproachallowsuserstolearnmoreconvenientandfastrecord,share,collectionnotes.
KEYWORDSJava,MySQL,MyBati,SpringMVC
1绪论
1.1课题背景
二十一世纪以来,随着生产技术、现代化科技和社会经济的迅速发展,世界也向信息化社会迈出了坚定的步伐。
在当今这个许多行业都发展极其迅速的社会中,计算机技术的发展成为其中最为强大的一股力量。
尤其是最近几年,互联网的发展速度之快已经远远超过了人们的预期[1]。
互联网已在当今社会和经济发展中扮演着非常重要的角色,成为了人们生活中不可或缺的一部分,无时无刻不影响着人们的学习、生活以及工作方式。
由于网络的时效性、更新快、范围广等优点,人们可以更加快速的获取到各个方面的信息,也提高了信息交流的效率。
网络对于教学的作用也尤其明显,越来越多的学校也开始建立起自己的网站,而且也有更多的教师开始了网络上的在线教学,这也打破了传统教育模式在时空上的限制。
虽然今后我们的工作、生活和学习也都会越来越多的与互联网联系起来,但是互联网毕竟不是现实世界,一些重要的信息、知识不能随时随地的记录,这样就削弱了互联网本身的优势。
为了解决这一问题,基于网络平台的云笔记就应运而生了。
起初云笔记是互联网在线学习的人群记录笔记所用,可以让用户在碎片化的工作、学习过程中,和多元化的平台、网络设备间,都能够随时随地记录并分享所见所闻所思所想,从而给我们的生活、学习和工作带来极大的便利。
1.2课题现状
就目前来看,云笔记市场呈现的特点是用户群较小,没有太大的行业竞争,主要应用于教育市场。
这既是他的劣势,又是其前景所在[2]。
首先,相对于传统的教育模式来说,新兴的网络教学模式还没有真正意义上的展现出优势,这些有关于网络教学的辅助工具也就不多见,这也制约了云笔记的发展。
但是,网络教学模式的优势必定会导致其发展壮大,所以辅助于网络教学的云笔记也必定会得到更多的关注。
虽然目前云笔记项目还不能算是一个非常成熟的技术,有许多更加便捷的功能模块还没有实现,但是随着社会科技的飞速发展,以及网络教学模式的迅速兴起,云笔记技术必将更加强大、全面,同时向更多方向发展,而不仅仅局限于对于笔记的记录,在不久的将来云笔记定会推向大众,成为人们日常生活当中不可或缺的一部分。
1.3目的和意义
由于互联网的快速发展,人们获得新知识的方法也开始变得多样化,互联网在线教学应运而生,为了让使用在线学习的人能更方便的记录所学知识,云笔记项目因此诞生。
云笔记系统就是通过更加简洁流畅的操作界面,以及相对完善的功能模块,来帮助用户提升在网络学习过程中的效率,使用户能在进行学习的过程中,可以随时随地的记录、分享学习到的内容,更加便捷的记录笔记。
同时也增强了人们之间的交流,更大程度的提升学习效率。
云笔记系统可以使用分布式解决方案来放大用户的存储空间。
使用户使用云笔记可以达到随处学习随时笔记的效果。
2开发技术简介
2.1MySQL数据库
MySQL是一种开源的关系型数据库管理系统,使用最常用的结构化查询语言(SQL)来管理数据库[3]。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需求对其源代码进行修改,从而达到自身需求。
MySQL由其速度快、可靠性高以及适应性较强而备受关注。
大多数人都认为在不需要进行事务处理数据的情况下,MySQL是管理数据的最佳选项。
2.2MyEclipse开发平台
MyEclipse,是当前的主流开发环境,并且是开源的。
其是在Eclipse的基础上通过增加一些企业级的功能插件开发而成的功能更加强大的集成开发环境。
主要用于Java[4]、JavaEE以及Web项目的开发。
MyEclipse的功能强大,支持也十分的广泛,特别是对一些开源产品的支持都很好。
2.3Tomcat服务器
Tomcat是一个小型、开源、免费的轻量级Web应用服务器[5]。
是Apache旗一个核心项目,主要由Apache和Sun进行核心的内容开发而成的。
因此对于Servlet和JSP的一些最新规范Tomcat服务器都会很快支持。
由于其先进的技术和稳定的性能并且免费,所以Tomcat服务器深受Java编程者的喜爱。
Tomcat也得到了很多软件开发商的认可,是目前主流的Web应用服务器。
2.4SpringMVC架构
SpringMVC是一个通过实现Model-View-Controller三层模型[6],很好地将数据、业务与页面展示进行分离的框架。
SpringMVC的核心是DispatcherServlet,先通过项目下的web.xml配置文件,配置DispatchServlet接收前台请求的类型,并配置Spring的配置文件applicationContext.xml。
在applicationContext.xml中进行配置数据源、并开启注解。
将项目部署在服务器下时,前台使用特定请求类型访问服务器,DispatcherServlet就会将请求派发到特定的handler。
通过可配置的handlermappings将请求发送到相应的Controller控制器层,控制器层再调用相应的业务层进行业务操作,并将处理结果返回给前台(View),并将内容显示在html(或JSP)前台页面上。
SpringMVC请求处理的整理流程如图2-1。
Web客户端(Brower)
RequestResponse
Forward
DispatcherServletJSP/HTML
Controller
HandlerMappingControllerViewResolver
Model
图2-1SpringMVC流程图
SpringMVC运行原理:
1.客户端发送请求到服务器,服务器根据web.xml配置文件将请求提交到DispatcherServlet;
2.由DispatcherServlet控制器通过查询出HandlerMapping,找到处理相应请求的Controller,DispatcherServlet将请求提交到该Controller;
3.Controller调用相应的业务逻辑对请求进行处理后,返回ModelAndView;
4.DispatcherServlet获取到ViewResoler视图解析器,找到ModelAndView所指定的视图,将响应提交到视图;
5.视图负责将结果显示在客户端,用于与用户进行交互。
2.5MyBatis
MyBatis是一个由Apache组织推出的基于Java的持久层数据库操作框架。
MyBatis是对JDBC技术的封装,不仅简化了项目中对数据库的访问,而且降低了SQL语句与程序代码的耦合度。
①MyBatis的功能:
MyBatis封装了获取数据库连接、执行SQL语句以及释放连接等过程;同时也封装了SQL参数与实体对象、查询结果集与实体对象之间的自动映射;还封装了Java中的一些基本类型和引用类型。
在项目需要使用数据库时,只需要引入框架、定义实体类,并将SQL语句定义在XML文件内,调用相应的DAO组件即可,很大程度上简化了访问数据库的步骤。
②MyBatis的执行过程:
首先加载、解析配置文件(SqlMapConfig.xml和SQL定义的SqlMap.xml),然后获取到SQL语句,并封装成MappedStatement,然后接收传入的SQL参数,这里的参数类型既可以是实体类,也可以是MyBatis已经封装好的基本类型和引用类型,再由SqlSession对SQL语句进行执行,根据配置文件中的id的值调用对应的MappedStatement对象,根据配置文件中填写的规则设置SQL参数,发送到数据库执行,如果有返回结果,结果集数据将按给定类型映射并返回。
2.6AJAX
在进行数据交互的时候,传统的web应用程序是使用HTML的表单,把数据提交到服务器,在服务器处理完数据之后,会返回给用户一张完整的新网页。
由于每当用户进行提交操作,服务器就要返回一个新网页,就需要传输大量的数据,因此传统的web应用程序往往运行缓慢,且越来越不友好。
相对而言,AJAX的优势就比较明显了。
使用AJAX的web应用程序无需重载网页,就可以发送并取回数据。
AJAX[7],是web应用程序中前端与后台进行数据交互的一种新技术。
使用AJAX可以通过前台页面的js向服务器发送HTTP请求,并在服务器返回数据后使用js对网页的某个部分进行修改,从而实现网页的异步更新,也就实现了在不重新加载整个网页的情况下,对网页的某个部分进行更新的功能。
这样在数据交互的时候就可以只对数据进行传输即可,大大提高运行效率。
AJAX工作原理如图2-2。
图2-2AJAX工作原理图
3
系统需求分析
3.1系统功能模块需求分析
本系统是基于B/S模式的web应用[8],采用Spring+MyBatis+AJAX+jQuery技术进行开发,使用MySQL实现对数据存储的支持。
云笔记系统是面向用户的,所以系统的功能都是用户可以实现的操作。
相对于每个用户来说,他们都有自己的账号和密码,用于登录系统,同时可以对密码进行修改。
用户在登录系统之后,可以创建笔记本、删除笔记本,创建笔记填写内容,删除笔记、分享笔记、移动笔记以及对笔记进行收藏。
同时用户还可以查看当前发布的活动,并可以发起活动。
3.1.1注册登录需求分析
每个用户都需要通过身份验证才能登录系统,因此,系统首先需要包含有注册、登录的功能。
通过对注册账号时的要求,限制用户的账号类型,以此来增强系统的安全性以及可靠性。
同时也需要修改密码的功能,来提高账号的安全性。
3.1.2笔记本模块需求分析
对用户来说,在使用云笔记系统进行记录时,其记录的内容并非只有一种类型,因此,作为一个笔记系统,笔记本功能就显得尤为重要了。
用户可以在系统中创建笔记本来分隔不同种类的记录内容,这样可以使笔记记录层次更加鲜明,更具条理性。
相对的,用户需要有删除笔记本的功能,来删除一些已经不需要的笔记本,增加系统的可用性,提高用户的使用效率。
3.1.3笔记模块需求分析
作为本系统的主体部分,首先笔记需要有其对应的笔记本,来详细记录该类别的内容。
为了达到用户编辑内容的格式要求,笔记内容需要含有一个简单的文本编辑框,用户可以在编辑框内实现一些简单的文本编辑功能,如设置字体格式、段落格式等。
同时用户也可以删除笔记、移动笔记,来对笔记进行整理,为了防止用户误删笔记,删除的笔记默认进入回收站,回收站内可以将笔记恢复,或者将笔记彻底删除。
用户可以分享笔记,同时用户可以通过搜索功能查询到所有的分享笔记,并且可以收藏分享的笔记,使系统实现用户之间的信息交流。
3.1.4活动模块需求分析
本部分所实现的功能就是,每个用户都可以发起活动,其他用户可以在活动详情页面查看到所有用户发起的活动。
并可以对活动进行踩、赞和收藏。
3.2可行性分析
从经济的角度来看,本系统所涉及的资料均可以通过相关调查采集获得,系统对应用软件、硬件系统的要求相对也很易实现。
因此,开发的成本较低。
而且,与传统方式相比,本系统具有效率高、质量高、成本低等特点,节省不少人力、物力及财力。
系统所采用的界面致力于设计简洁、易于操作等特点,使得对于初次使用本系统的用户,可以在很短时间内掌握操作的要领,因而降低系统的使用难度,提高系统的可用性。
技术方面需要考虑的就是,系统的功能是否可以通过现有技术,完整的开发实现出来[9]。
本系统的开发,采用的是典型的B/S网站开发模式,采用的开发语言是Java,调试相对简单,Spring、mybatis、AJAX、jQuery等技术,也是当下相对主流的B/S开发技术,因此在技术上是绝对可行的。
通过以上对系统的一系列的可行性分析,本系统的经济来源稳定,技术相对纯熟,运行安全、可靠。
加上本系统的理解简单、操作方便,拥有良好的开发领域和开拓资本。
因此,系统研制和开发可进行。
3.3系统安全性分析
云笔记系统记录的是用户的私人信息,除了分享的笔记以及活动,其他的笔记内容相对比较私密,应属于用户的隐私。
因此系统对信息安全性的保障也是考虑的内容之一[10]。
为保证客户信息的安全性,可以在客户端的JS程序中,实现适当的逻辑以保证Web网站的安全性。
登录时使用Cookie对象,要求访问者只能通过账号登录才能访问各个Web页,不允许用户跳过身份验证,同时对用户的密码进行MD5[11]加密处理,以此来保证用户账号的安全性。
对用户的记录内容等信息,也可以对内容采用加密处理。
4系统总体设计
4.1系统模块总体设计
系统功能如图4-1所示。
图4-1功能模块图
本系统含有六大功能模块,分别是登录模块、笔记本模块、笔记模块、回收站模块、收藏模块和活动模块。
每个模块分别对应用户注册账号以及登录、修改密码等功能;笔记本的创建、删除功能;以及笔记的创建、删除、分享功能等。
4.2系统设计思想
云笔记系统以MyEclipse、Tomcat作为前后台开发工具,以Java语言作为主要开发编程语言,采用SpringMVC三层建构模式,以MySQL数据库管理系统作为后台数据库管理工具,前台使用JS和HTML开发语言,页面交互使用jQuery和AJAX技术。
4.3业务流程图
系统详细的流程如图4-2所示。
开始
用户注册账号
登录修改密码
笔记本
回收站笔记分享
移动发起活动搜索编辑
赞踩收藏
收藏笔记本
图4-2业务流程图
用户先进行注册,注册成功之后,用户使用账号密码登录,登录后可以修改密码。
用户登录成功后,进入主页面,在主页面开源创建新的笔记本,笔记本可以删除。
在选择笔记本后,用户可以创建新的笔记,并对笔记内容进行编辑,笔记可以删除,删除的笔记暂存于回收站中,回收站内的笔记可选择恢复或者彻底删除。
笔记还可以分享,分享后的笔记可以通过搜索功能查到,笔记移动功能可以将笔记移动到其他笔记本内。
用户搜索到分享的笔记,可用于收藏,收藏后的笔记默认在收藏功能内。
笔记还可以发起活动,并且开源对活动笔记进行踩、赞和收藏。
4.4数据库设计
数据库是系统构建中的关键部分,是系统设计的核心,数据库的本质是通过计算机来存储记录的系统[12]。
其本身也可以被看成是一种电子文件柜,是收集计算机数据文件的仓库。
大量页面和服务需要通过数据库的表进行信息的存取和更新,以及用户信息等保存到数据库管理系统中。
数据库设计的好坏,直接决定了整个系统功能的实现程度,以及系统实际运行的安全性。
同时,在后期系统设计与实现的过程中还需要对数据库进行完善以及错误的修改。
4.4.1数据库需求分析
建立数据库表之前,需要对整个系统的应用情况作全面、详细的调查[13]。
确定总体设计目标,确定系统需求,建立完整完善的数据表,存储完备的信息数据等,并方便对数据库的访问和增、改、查等操作,继而支持并简化系统的整个使用流程、信息浏览功能等,方便用户的使用。
通过对系统内容和数据的分析,对应数据表的设计和实现的功能有:
用户表,用于存放用户的账号密码等信息;笔记本表,用来存储笔记本的信息;笔记表,存放笔记的标题、内容等详细信息;分享笔记表:
存放所有用户分享的笔记的内容;收藏笔记表:
存放每个用户的收藏笔记的内容;活动表:
存放活动笔记信息。
4.4.2数据库详细设计
数据库名为cloud_note,根据系统的需求共建立了9张表,数据库表详见表4-1。
表4-1数据库表
序号
数据表
名称
说明
1
cn_user
用户表
存放用户名密码
2
cn_notebook
笔记本表
存放笔记信息
3
cn_note
笔记表
存放笔记信息
4
cn_share
分享笔记表
分享笔记内容
5
cn_like
收藏笔记表
收藏笔记内容
6
cn_note_activity
活动详情表
活动详情
7
cn_activity
活动表
活动内容
8
cn_note_status
笔记状态表
9
cn_nootbook_type
笔记本类型表
各数据表详细内容如下:
(1)cn_user用户表,存储用户的信息,如表4-2。
表4-2用户信息表
字段名
数据类型
长度
可否为空
描述
cn_user_id
Varchar
100
否
主键,用户ID
cn_user_name
Varchar
100
用户名
cn_user_password
Varchar
100
密码
cn_user_token
Varchar
100
令牌
cn_user_desc
Text
说明
(2)cn_note_book(笔记本表)存储笔记本信息,通过用户ID字段与用户表关联,标识笔记本所归属的用户,通过笔记本类型ID关联笔记本类型表,标识笔记本的类型如表4-3所示。
表4-3笔记本信息表
字段名
类型
长度
可否为空
描述
cn_notebook_id
Varchar
100
否
主键,笔记ID
cn_user_id
Varchar
100
外键,用户ID
cn_notebook_type_id
Varchar
100
外键,笔记本类型ID
cn_notebook_name
Varchar
500
笔记本名
cn_notebook_desc
Text
笔记本说明
cn_notebook_createtime
Timestamp
否
笔记创建时间
(3)cn_note(笔记信息表)存储笔记的详细信息,其中笔记本ID关联笔记本表,标识笔记所属的笔记本,并通过用户ID与用户关联,标识所属的用户,并关联笔记状态和笔记类型表,用来标识笔记的状态以及类型,如表4-4。
表4-4笔记信息表
字段名
数据类型
长度
可否为空
描述
cn_note_id
Varchar
100
否
主键,笔记ID
cn_note_id
Varchar
100
外键,笔记本ID
cn_user_id
Varchar
100
外键,用户ID
cn_note_status_id
Varchar
100
外键,笔记状态ID
cn_note_type_id
Varchar
100
外键,笔记类型ID
cn_note_title
Varchar
500
笔记标题
cn_note_body
Text
笔记内容
cn_note_create_time
Begint
笔记创建时间
cn_note_last_modify_time
Begint
笔记最近修改时间
(4)cn_share(分享笔记表)存储分享的笔记的内容,通过笔记ID关联分享笔记的原笔记,如表4-5。
表4-5分享笔记表
字段名
数据类型
长度
可否为空
描述
cn_share_id
Varchar
100
否
主键,共享ID
cn_share_title
Varchar
500
共享标题
cn_share_title
Text
100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Spring 框架 笔记 设计 实现 分析