基于springmvc和mybatis的云笔记本科毕业论文.docx
《基于springmvc和mybatis的云笔记本科毕业论文.docx》由会员分享,可在线阅读,更多相关《基于springmvc和mybatis的云笔记本科毕业论文.docx(47页珍藏版)》请在冰豆网上搜索。
基于springmvc和mybatis的云笔记本科毕业论文
毕业设计报告(论文)
报告(论文)题目:
基于SpringMVC和
Mybatis的云笔记
作者所在院系:
计算机遥感信息技术学院
作者所在专业:
计算机科学与技术
作者所在班级:
B12511
作者姓名:
王硕
作者学号:
20124051117
教师姓名:
耿炎
完成时间:
2016年5月
北华航天工业学院教务处制
北华航天工业学院
本科生毕业设计(论文)原创性及知识产权声明
本人郑重声明:
所呈交的毕业设计(论文)
基于SpringMVC和Mybatis的云笔记
是本人在指导教师的指导下,独立进行研究工作取得的成果。
除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品或成果。
对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
因本毕业设计(论文)引起的法律结果完全由本人承担。
本毕业设计(论文)成果归北华航天工业学院所有。
本人遵循北华航天工业学院有关毕业设计(论文)的相关规定,提交毕业设计(论文)的印刷本和电子版本。
本人同意北华航天工业学院有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;可以采用影印、缩印、数字化或其它复制手段保存论文;在不以营利为目的的前提下,可以公布非涉密毕业设计(论文)的部分或全部内容。
特此声明
毕业设计(论文)作者:
指导教师:
年月日年月日
摘要
近些年来,随着经济的发展与科技的进步,互联网已经步入我们的生活,变成了我们生活不可缺少的重要部分。
互联网时代的新笔记逐渐成为了一种潮流,它不同于我们所使用的传统的笔记本,是云服务器端的笔记,无论何时何地,只要存在互联网,便可以撰写自己的笔记。
本文阐述了一个较为简单的云端笔记系统的设计与实现过程。
存储数据则是使用了MySQL数据库来进行存储。
该系统采用了浏览器/服务器的开发模式,浏览器为客户端,采用HTML5,jsp等技术,构成静态页面;后台服务器则是使用Spring框架整合MyBatis,使用MVC分层思想,分为Model、View、Controller三层来处理业务逻辑。
实现了登录模块、笔记本模块、笔记模块、音乐播放器模块。
客户端与服务器则是以post方式,采用Ajax进行交互,从而实现了页面的局部刷新功能。
关键字:
云笔记AjaxMyBatisMySQLSpringMVCJava
Abstract
Inrecentyears,withthedevelopmentofeconomyandtheprogressofscienceandtechnology,theInternethasenteredourlifeandbecomeanindispensablepartofourlife.NewnotesoftheageoftheInternethasgraduallybecomeatrend,itisdifferentinthatweusethetraditionalnotebook,notesisthecloudserver,whetherwhenandwhere,aslongastheexistenceoftheInternet,theycanwritetheirownnotes.
Thispaperdescribesthedesignandimplementationofarelativelysimplecloudnotessystem.StoragedataisstoredusingtheMySQLdatabase.Thesystemusesthebrowser/serverdevelopmentmodel,thebrowserfortheclient,usingHTML5,JSPandothertechnologies,constituteastaticpage;BackgroundserveristheuseofSpringframeworktointegrateMyBatis,theuseofMVClayeredthinking,isdividedintoModel,View,Controllerthreelayertodealwithbusinesslogic.Therealizationoftheloginmodule,notebookmodule,notebookmodule,musicplayermodule.Theclientandtheserverareinpostmode,usingAjaxtointeract,soastorealizethepagelocalrefreshfunction.
Keywords:
AjaxMyBatisMySQLSpringMVCJava
第1章绪论
1.1开发背景与现状
现代互联网飞速发展,互联网已经融入人们的生活,人们学习新知识的方式也多种多样,在线学习也应运而生,譬如网易云课堂、新东方在线、腾讯课堂等。
为了使网络学习的人能更方便的记录笔记,跟随老师的思路,随时随地查询笔记,云笔记诞生。
所谓云笔记,就是把个人所写的资料、笔记等存储在运营商的服务器的云端,可以通过手机、电脑同服务器打交道,从而得到自己记录的资料。
其优点在于用户可以随时随地记录、分享、收藏笔记。
就目前的现状来看,云笔记市场用户群体较小,基本没有行业的竞争,全国云笔记的商业也不过10家,普遍用于教育行业。
但是由于互联网发展迅速,今后的工作、生活、学习基本都要和互联网打交道,一旦培养出用户的使用习惯,其用户依赖度也能够转化成较强的变现能力,在国内有一大部分网民已经开始熟练地使用云笔记,其发展的前景相当可观了。
虽然起初云笔记仅仅用于在线学习的人群来记录笔记,但是不远的未来云笔记必将大众化,成为我们日常生活不可或缺的一部分。
1.2开发本系统意义
云笔记作为一款简单快速的个人记事备忘工具,操作界面简洁高效。
会议记录、日程安排、生活备忘、奇思妙想、快乐趣事以及任何突发灵感都可快速记录到云笔记,还支持添加图片、超链接作为笔记附件以及音乐的欣赏。
作为一个互联网产品,云笔记必将在人们未来的生活中起到很大的作用,为人们的生活增添一丝的色彩。
1.3课题研究的主要内容
完成一个云笔记系统,包括登录模块、笔记本模块、笔记模块、音乐播放器模块。
不同的用户通过注册,有自己的一个独立账户,根据这个独立账户进行登录,管理员也通过不同用户的ID区分每一个用户。
登录成功的用户进入到主界面,主界面包括笔记本模块、笔记模块和音乐播放器模块,用户可以新建、删除、重命名笔记和笔记本;用户还可以移动、分享、编辑笔记;闲暇之余还可以听一下由我们系统随机分配的音乐,以供消遣。
第2章核心技术与理论体系
2.1SpringMVC概述
SpringMVC是SpringFrameWork的后续产品,已经融合了SpringWebFlow。
SpringMVC框架几乎提供了构建Web应用程序的全部功能。
使用Spring可插入MVC架构,因此在使用Spring进行WEB项目进行开发时,可选择使用Spring的SpringMVC框架或集成其他MVC开发框架,像MyBatis,Struts2等。
SpringMVC框架是一个较为典型的MVC框架,其中“M”指的是model,及模型;“V”view,即视图;“C”Controller,即控制器。
通过实现视图-模型-控制器的模式来更好地将业务、展现与数据进行分离。
从这样一个方面来说,SpringMVC与Struts、Struts2非常类似。
其中SpringMVC的设计就是围绕DispatcherServlet而展开的,DispatcherServlet负责将发来的请求派到特定的handler,即处理器。
通过可配置的handler-mappings、viewresolution、locale以及theme-resolution来处理相应的请求并且转到对应的视图。
如图2-1所示。
图2-1SpringMVC运行流程
2.2Servlet与JSP
2.2.1Servlet概述
Servlet原本是由sun公司开发提供的一门主要用于开发动态web项目的技术。
用户要想开发一个动态的web项目,必须导入由sun公司提供的jar包(该jar包中提供了一个Servlet接口)并完成以下两个步骤:
1.编写的java类实现Servlet接口。
2.把该类部署到web服务器当中,如tomcat。
我们把实现了Servlet接口的java程序称为简称为Servlet。
2.2.2Servlet运行过程
Servlet程序一般是由web服务器调用的,像上述我们所说的tomcat,如果web服务器接收到来自客户端的Servlet的访问请求,首先会核对是否已经创建并装载了该Servlet的实例对象。
如果没有装载,就会创建并装载该Servlet的实例对象,然后调用该对象的初始化init()方法;如果装载了,则web服务器会创建一个用于封装HTTP请求消息对象HttpServletRequest和一个响应对象HttpServletResponse,然后接着服务器会将上述请求与响应对象作为参数传递到Servlet的service()方法当中。
最后,当web应用程序停止或重启时,在那之前Servlet引擎将调用Servlet的destroy()方法销毁Servlet,然后将Servlet卸载。
2.2.2JSP概述
JSP全称JavaServerPage,主要是由是由sun公司和其他公司共同创建并使用的动态网页开发标准。
JSP可以使Java代码和特定的动作指令嵌入到静态页面当中。
页面中加入Java代码的格式为<%Java代码%>,其中嵌入在HTML<%%>标签中的Java代码被称为JSP,该Java代码则会被JSP编译器编译成JavaServlet,然后按照Servlet的执行顺序进行执行。
2.3环境要求
2.3.1硬件环境
4G及以上内存、酷睿i3及以上处理器、硬盘20G及以上容量。
2.3.2软件环境
客户端:
FireFox浏览器(其他支持HTML5的浏览器也可以)。
服务器:
MyEclipse8.5版本以上、MySQL数据库、Tomcat6.0。
第3章系统功能模块分析
3.1系统总体设计
由于是互联网项目,所以需要将云笔记系统做成两个版本---局域网版和互联网版。
局域网版就是当其他计算机与本机处于同一局域网就可以访问云笔记系统,比如路由器、WiFi等;互联网版就是只要本机服务器开启后,所有能够上网的计算机都可以访问云笔记系统。
那时候的“云笔记”才能够称作真正的云笔记。
系统软件主要分为两大部分:
服务器端与客户端。
其中客户端由浏览器充当,提供用户使用的全部模块,包括用户的登录、注册、修改密码、退出登录、回收站;笔记本和笔记的创建、重命名、删除;其中笔记还包括移动、分享、查找、收藏分享功能;简易的音乐播放器播放音乐等功能细节。
如图3-1所示。
图3-1云笔记层次结构图
3.2系统模块设计
3.2.1登录模块
所谓登录模块,就是完成不同用户个人信息的分离,不同用户都有自己的私人空间,其他用户不能干涉。
登录模块应分为登录、注册、修改密码、退出登录四个部分。
登录时,当用户未输入用户名或密码的任意一项时,系统进行拦截,并提示用户名、密码不能为空;当用户输入错误的用户名时,系统进行拦截并提示用户名错误;当用户输入正确的用户名,但密码错误时,系统进行拦截并提示密码错误,此时用户名错误的提示信息消失;只有当用户名密码全部正确时,可进入系统。
当新用户首次访问我们的网站时,可在主页点击注册按钮进入注册界面。
注册界面包括用户名、昵称、密码、确认密码四个选项。
其中用户名是用户登录时所使用的关键字,不可重复;昵称是用户的个性名字,当用户分享笔记时,用户的昵称会显示在分享标题的前端,可重复;密码则是用户的登录密码,可重复。
当用户点击注册时,若有任何一项没有输入的话,都会提示该项不能为空;若输入的用户名在数据库中已存在,则提示用户名已存在;若密码输入的小于6位或大于20位,则提示密码应在6-20位之间;若用户两次输入的密码不一致,则提示用户两次输入的密码不一致,请重新输入;只有当用户名为全新的用户名,昵称不为空,两次密码输入一致且输入的位数在6-20位之间时方能注册成功。
当注册成功时,自动转到登录界面。
另外,注册界面进入时输入框有提示,当用户光标切入时,提示信息自动消除。
修改密码的页面则包括原密码、新密码和确认密码三个选项。
原密码就是该用户登录时所输入的密码,该选项输入不正确无法修改密码;新密码和确认密码则类似于注册页面的密码和密码确认的规则,这里就不再多说,空字符串检测同样也存在。
退出登录是一个按钮,当用户点击“退出登录”时,则页面由主页面转到登录界面,完成退出登录。
此处强调一点,退出登录具有保护功能,当我们知道主页面的网址直接访问时,未登录的用户则会连接到登录界面,无法访问主页面;已登录未退出登录的用户则能够直接连接到该用户的主页面。
3.2.2笔记本模块
笔记本就是用来存储笔记目录的一个“容器”。
它包括笔记本的创建、重命名、删除功能,笔记本默认按创建时间排序。
创建笔记本就是字面上的意思,用户可以创建一个或多个笔记本,笔记本名字可以重复,但不能为空。
重命名笔记本就是将选中的笔记本重新命名,但不能重命名为空,原本在该笔记本目录下的笔记仍然在该笔记本下。
删除笔记本就是将该笔记本删除,同时删除该笔记本下面的所有笔记。
3.2.3笔记模块
笔记是存在于笔记本之下的一个目录,是真正存储笔记的实体,它包括创建、修改、重命名、删除、移动、分享、收藏功能,笔记默认按创建时间排序。
笔记的创建和重命名类似于笔记的创建,这里不再细讲。
笔记的修改则是修改笔记本身的内容,例如加几句话、删除几句话、加点图片、超链接等等。
笔记的删除则是包括硬删除和软删除,硬删除是直接将笔记删除,软删除就将笔记放入回收站,当用户误删了笔记时,可以在回收站找到并恢复笔记。
回复时可以选择默认笔记本或者其他笔记本,方便用户。
笔记的移动就是将当前笔记移动到任何一个你想要移动的位置。
笔记的分享就是将自己喜欢的笔记分享到平台,供所有用户一起欣赏,用户可以通过关键字搜索各种用户分享的笔记,也可以不输入关键字,直接搜索,则搜索出来的笔记是所有用户分享的笔记,分享笔记的标题前都会有分享用户的昵称。
笔记的收藏就是用户认为比较好的分享的笔记收藏起来,放在用户自己的收藏夹里,可供用户随时查阅。
3.2.4音乐播放器模块
音乐播放器模块就是由系统提供几首歌,用户可以进行歌曲之间的切换,如上一曲、下一曲、暂停、音量大小的调节、静音、调节歌曲播放的进度功能。
第4章数据库设计与说明
4.1数据库的设计
本系统采用的是MySQL-5.5版本的数据库,编码默认为utf-8,分为5个表,分别为用户基本信息表(cn_user)、笔记本信息表(cn_notebook)、笔记信息表(cn_note)、收藏信息表(cn_collect)和分享笔记信息表(cn_share),数据库设计具体如下:
4.1.1用户基本信息表
存储用户信息的表为cn_user表,其中cn_user_id是用户的ID,用于区分用户的唯一主键;cn_user_name存储用户注册时的用户名,用户登录的唯一标识,不可重复且不能为空;cn_user_password存储用户密码,该密码为了保护用户隐私所以进行了加密;cn_user_pwd同样存储的也是用户密码,该密码未加密,方便管理员获取用户数据,若以后真正成为线上产品,该字段将被删除;cn_user_token为用户的标志位,标注用户等级;cn_user_desc为用户昵称,方便用户个性化,该用户昵称将随着用户分享笔记操作一起分享出去。
如表4-1所示。
表4-1用户基本信息表(cn_user)
字段名
数据类型
长度
允许空值
主外键关系
描述
cn_user_id
varchar
100
否
主键
用户ID
cn_user_name
varchar
100
否
用户名
cn_user_password
varchar
100
否
加密后的密码
cn_user_pwd
varchar
100
否
未加密的密码
cn_user_token
varchar
100
是
标志位
cn_user_desc
text
0
是
用户昵称
4.1.2笔记本信息表
存储笔记本信息的表为cn_notebook表,其中主键为cn_notebook_id,用户区分每一个笔记本;cn_user_id是用户ID,通过用户ID区分不同的笔记本应该属于哪一个用户,使笔记私有化;cn_notebook_type_id是笔记被类型的ID,该字段用于标志笔记本的类型;cn_notebook_name是笔记本的名字,即用户创建笔记本时所输入的字符串,不能为空;cn_notebook_desc为笔记本的描述信息,描述笔记本的作用;cn_notebook_createtime字段是笔记本的创建时间,不能为空。
如表4-2所示。
表4-2笔记本信息表(cn_notebook)
字段名
数据类型
长度
允许空值
主外键关系
描述
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
0
是
笔记本描述
cn_notebook_createtime
timestamp
0
否
笔记本创建时间
4.1.3笔记信息表
存储笔记信息的表为cn_note表,其中主键为cn_note_id,用户区分唯一的笔记信息;cn_note_id是该笔记所在笔记本的ID,用于区分笔记的所属关系;cn_user_id是该笔记的用户ID;cn_note_status_id是笔记本状态的ID,备用;cn_note_type_id是笔记本类型ID,同样也是备用字段;cn_note_title是笔记的标题,用于存储用户所创建的笔记标题;cn_note_body是笔记内容字段,用于存储用户所记录的笔记内容,该字段是最为核心的字段;cn_note_create_time字段是笔记创建的时间字段,用于存储用户创建笔记的初试时间;cn_note_last_modify_time字段是用于存储用户最后一次修改笔记的时间,该字段方便笔记列表进行排序。
如表4-3所示。
表4-3笔记信息表(cn_note)
字段名
数据类型
长度
允许空值
主外键关系
描述
cn_note_id
varchar
100
否
主键
笔记ID
cn_notebook_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
longtext
0
是
笔记内容
cn_note_create_time
bigint
20
是
笔记创建时间
cn_note_last_modify_time
bigint
20
是
最后一次修改时间
4.1.4收藏信息表
存储用户收藏的笔记我们额外用一个cn_collect表存储,这样方便存储,同时也能提高数据的读取速率。
其中cn_collect_id是用户收藏的笔记的ID,用于区分该笔记唯一的存在性;cn_user_id存储的是收藏该笔用户的ID,而并不是该笔记原有“主人”的ID;cn_note_id用于存储该笔记的笔记ID;cn_user_desc用于存储该笔记原有“主人”的昵称;cn_collect_title用户存储收藏笔记的标题;cn_collect_body用于存储收藏笔记的笔记内容。
如表4-4所示。
表4-4收藏信息表(cn_collect)
字段名
数据类型
长度
允许空值
主外键关系
描述
cn_collect_id
varchar
100
否
主键
收藏笔记ID
cn_user_id
varchar
100
否
外键
用户ID
cn_note_id
varchar
100
否
外键
笔记ID
cn_user_desc
varchar
100
是
用户昵称
cn_collect_title
varchar
100
是
收藏笔记标题
cn_collect_body
varchar
100
是
收藏笔记内容
4.1.5分享笔记信息表
同样的,存储用户分享笔记的信息使用表cn_share来存放。
其中cn_share_id用来存放分享笔记的ID,用于区分该笔记存在的唯一性;cn_user_id是分享该笔记的用户的ID;cn_note_id被分享前的笔记ID;cn_user_desc是分享该笔记的用户的昵称;cn_share_title是分享笔记的标题;cn_share_body是分享笔记的内容。
如表4-5所示。
表4-5分享笔记信息表(cn_share)
字段名
数据类型
长度
允许空值
主外键关系
描述
cn_share_id
varchar
100
否
主键
分享笔记ID
cn_user_id
varchar
100
否
外键
用户ID
cn_note_id
varchar
100
否
外键
笔记ID
cn_user_desc
varchar
100
是
用户昵称
cn_share_title
varchar
100
是
分享笔记标题
cn_share_body
varchar
100
是
分享笔记内容
4.2数据库各个表之间的联系
用户信息表cn_user是存储用户注册信息的表,其中cn_user_id作为用户的唯一标示,以外键的形式存在于其他四个表中,以用来标注该信息唯一属于该用户。
而cn_notebook_id以外键的形式存在于笔记信息表cn_note中,用来标注该笔记属于哪一个笔记本,当cn_user_id和cn_noteb