毕业论文-基于SpringMVC和Mybatis的云笔记

毕业设计报告(论文)

报告(论文)题目:基于Spring MVC和

Mybatis的云笔记

作者所在院系:计算机遥感信息技术学院

作者所在专业:计算机科学与技术

作者所在班级:B12511

作者姓名:王硕

作者学号:20124051117

教师姓名:耿炎

完成时间:2016年5月

北华航天工业学院教务处制

北华航天工业学院

本科生毕业设计(论文)原创性及知识产权声明

本人郑重声明:所呈交的毕业设计(论文)基于Spring MVC和Mybatis的云笔记是本人在指导教师的指导下,独立进行研究工作取得的成果。除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品或成果。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业设计(论文)引起的法律结果完全由本人承担。

本毕业设计(论文)成果归北华航天工业学院所有。本人遵循北华航天工业学院有关毕业设计(论文)的相关规定,提交毕业设计(论文)的印刷本和电子版本。本人同意北华航天工业学院有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;可以采用影印、缩印、数字化或其它复制手段保存论文;在不以营利为目的的前提下,可以公布非涉密毕业设计(论文)的部分或全部内容。

特此声明

毕业设计(论文)作者:指导教师:

年月日年月日

摘要

近些年来,随着经济的发展与科技的进步,互联网已经步入我们的生活,变成了我们生活不可缺少的重要部分。互联网时代的新笔记逐渐成为了一种潮流,它不同于我们所使用的传统的笔记本,是云服务器端的笔记,无论何时何地,只要存在互联网,便可以撰写自己的笔记。

本文阐述了一个较为简单的云端笔记系统的设计与实现过程。存储数据则是使用了MySQL数据库来进行存储。该系统采用了浏览器/服务器的开发模式,浏览器为客户端,采用HTML5,jsp等技术,构成静态页面;后台服务器则是使用Spring框架整合MyBatis,使用MVC分层思想,分为Model、View、Controller三层来处理业务逻辑。实现了登录模块、笔记本模块、笔记模块、音乐播放器模块。客户端与服务器则是以post方式,采用Ajax进行交互,从而实现了页面的局部刷新功能。

关键字:云笔记Ajax MyBatis MySQL SpringMVC Java

Abstract

In recent years, with the development of economy and the progress of science and technology, the Internet has entered our life and become an indispensable part of our life.New notes of the age of the Internet has gradually become a trend, it is different in that we use the traditional notebook, notes is the cloud server, whether when and where, as long as the existence of the Internet, they can write their own notes.

This paper describes the design and implementation of a relatively simple cloud notes system.Storage data is stored using the MySQL database.The system uses the browser / server development model, the browser for the client, using HTML5, JSP and other technologies, constitute a static page;Background server is the use of Spring framework to integrate MyBatis, the use of MVC layered thinking, is divided into Model, View, Controller three layer to deal with business logic.The realization of the login module, notebook module, notebook module, music player module.The client and the server are in post mode, using Ajax to interact, so as to realize the page local refresh function.

Key words:Ajax MyBatis MySQL SpringMVC Java

目录

摘要........................................................................................................................................ I Abstract ........................................................................................................................................ II 第1章绪论. (1)

1.1 开发背景与现状 (1)

1.2 开发本系统意义 (1)

1.3 课题研究的主要内容 (1)

第2章核心技术与理论体系 (2)

2.1 Spring MVC概述 (2)

2.2 Servlet与JSP (3)

2.2.1 Servlet概述 (3)

2.2.2 JSP概述 (3)

2.3 环境要求 (3)

2.3.1 硬件环境 (3)

2.3.2 软件环境 (4)

第3章系统功能模块分析 (5)

3.1 系统总体设计 (5)

3.2 系统模块设计 (6)

3.2.1 登录模块 (6)

3.2.2笔记本模块 (6)

3.2.3笔记模块 (7)

3.2.4 音乐播放器模块 (7)

第4章数据库设计与说明 (8)

4.1 数据库的设计 (8)

4.1.1 用户基本信息表 (8)

4.1.2 笔记本信息表 (8)

4.1.3 笔记信息表 (9)

4.1.4 收藏信息表 (10)

4.1.5分享笔记信息表 (10)

4.2 数据库各个表之间的联系 (11)

第5章界面设计 (12)

5.1 登录模块界面设计 (12)

5.1.1 登录界面 (12)

5.1.2 注册界面 (12)

5.1.3 修改密码界面 (13)

5.2 主要功能模块 (13)

5.2.1 主界面 (13)

5.2.2 笔记本界面 (14)

5.2.3 笔记界面 (14)

5.2.4 音乐播放器界面 (15)

第6章功能模块实现 (16)

6.1 后台服务器的搭建 (16)

6.1.1 搭建总述 (16)

6.1.2 配置applicationContext.xml文件 (16)

6.2 登录模块 (17)

6.2.1 用户注册 (17)

6.2.2 用户登录 (19)

6.2.3 修改密码 (20)

6.2.4 退出登录 (20)

6.3 笔记本模块 (20)

6.3.1 加载笔记本列表 (20)

6.3.2 笔记本重命名 (20)

6.3.3 新建笔记本 (21)

6.3.4 删除笔记本 (21)

6.4 笔记模块 (21)

6.4.1 加载笔记列表 (21)

6.4.2 新建笔记 (21)

6.4.3 修改及加载笔记信息 (22)

6.4.4 笔记的删除、移动与分享 (22)

6.4.5 笔记的收藏 (22)

6.5 音乐播放器模块 (23)

6.5.1 播放器功能 (23)

6.5.2 上一曲、下一曲的实现 (23)

结论 (24)

致谢 (25)

参考文献 (26)

附录 (27)

第1章绪论

1.1 开发背景与现状

现代互联网飞速发展,互联网已经融入人们的生活,人们学习新知识的方式也多种多样,在线学习也应运而生,譬如网易云课堂、新东方在线、腾讯课堂等。为了使网络学习的人能更方便的记录笔记,跟随老师的思路,随时随地查询笔记,云笔记诞生。所谓云笔记,就是把个人所写的资料、笔记等存储在运营商的服务器的云端,可以通过手机、电脑同服务器打交道,从而得到自己记录的资料。其优点在于用户可以随时随地记录、分享、收藏笔记。

就目前的现状来看,云笔记市场用户群体较小,基本没有行业的竞争,全国云笔记的商业也不过10家,普遍用于教育行业。但是由于互联网发展迅速,今后的工作、生活、学习基本都要和互联网打交道,一旦培养出用户的使用习惯,其用户依赖度也能够转化成较强的变现能力,在国内有一大部分网民已经开始熟练地使用云笔记,其发展的前景相当可观了。虽然起初云笔记仅仅用于在线学习的人群来记录笔记,但是不远的未来云笔记必将大众化,成为我们日常生活不可或缺的一部分。

1.2 开发本系统意义

云笔记作为一款简单快速的个人记事备忘工具,操作界面简洁高效。会议记录、日程安排、生活备忘、奇思妙想、快乐趣事以及任何突发灵感都可快速记录到云笔记,还支持添加图片、超链接作为笔记附件以及音乐的欣赏。作为一个互联网产品,云笔记必将在人们未来的生活中起到很大的作用,为人们的生活增添一丝的色彩。

1.3 课题研究的主要内容

完成一个云笔记系统,包括登录模块、笔记本模块、笔记模块、音乐播放器模块。不同的用户通过注册,有自己的一个独立账户,根据这个独立账户进行登录,管理员也通过不同用户的ID区分每一个用户。登录成功的用户进入到主界面,主界面包括笔记本模块、笔记模块和音乐播放器模块,用户可以新建、删除、重命名笔记和笔记本;用户还可以移动、分享、编辑笔记;闲暇之余还可以听一下由我们系统随机分配的音乐,以供消遣。

第2章核心技术与理论体系

2.1 Spring MVC概述

Spring MVC是Spring Frame Work的后续产品,已经融合了Spring Web Flow。Spring MVC框架几乎提供了构建Web应用程序的全部功能。使用Spring可插入MVC架构,因此在使用Spring进行WEB项目进行开发时,可选择使用Spring的Spring MVC框架或集成其他MVC开发框架,像MyBatis,Struts2等。

Spring MVC框架是一个较为典型的MVC框架,其中“M”指的是model,及模型;“V”view,即视图;“C”Controller,即控制器。通过实现视图-模型-控制器的模式来更好地将业务、展现与数据进行分离。从这样一个方面来说,Spring MVC与Struts、Struts2非常类似。其中Spring MVC的设计就是围绕Dispatcher Servlet而展开的,Dispatcher Servlet负责将发来的请求派到特定的handler,即处理器。通过可配置的handler-mappings、view resolution、locale以及theme-resolution来处理相应的请求并且转到对应的视图。如图2-1所示。

图2-1 Spring MVC运行流程

2.2 Servlet与JSP

2.2.1 Servlet概述

Servlet原本是由sun公司开发提供的一门主要用于开发动态web项目的技术。用户要想开发一个动态的web项目,必须导入由sun公司提供的jar包(该jar包中提供了一个Servlet接口)并完成以下两个步骤:1.编写的java类实现Servlet接口。2.把该类部署到web服务器当中,如tomcat。我们把实现了Servlet接口的java程序称为简称为Servlet。

2.2.2 Servlet运行过程

Servlet程序一般是由web服务器调用的,像上述我们所说的tomcat,如果web服务器接收到来自客户端的Servlet的访问请求,首先会核对是否已经创建并装载了该Servlet 的实例对象。如果没有装载,就会创建并装载该Servlet的实例对象,然后调用该对象的初始化init()方法;如果装载了,则web服务器会创建一个用于封装HTTP请求消息对象HttpServletRequest和一个响应对象HttpServletResponse,然后接着服务器会将上述请求与响应对象作为参数传递到Servlet的service()方法当中。最后,当web应用程序停止或重启时,在那之前Servlet引擎将调用Servlet的destroy()方法销毁Servlet,然后将Servlet 卸载。

2.2.2 JSP概述

JSP全称Java Server Page,主要是由是由sun公司和其他公司共同创建并使用的动态网页开发标准。JSP可以使Java代码和特定的动作指令嵌入到静态页面当中。页面中加入Java代码的格式为<%Java代码%>,其中嵌入在HTML<%%>标签中的Java代码被称为JSP,该Java代码则会被JSP编译器编译成Java Servlet,然后按照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_notebook_id唯一时,笔记则就会唯一存在于某用户的某一个笔记本下。

存在于收藏信息表和分享信息表中的cn_note_id用于标注该收藏的笔记和分享的笔记属于哪一个用户。

对于回收站,我们并没有单独列出一个表来存储被删除的笔记,而是在cn_note表中加了一个标志位----cn_note_status_id,该标志位为0时,表示笔记为正常状态的笔记;当该标志位为1时,表示该笔记已处于回收站状态。这样就能实现回收站功能。各表之间的关系如图4-1所示。

图4-1各数据表之间的关系

第5章界面设计

5.1 登录模块界面设计

5.1.1 登录界面

作为一个互联网产品,用户登录是必不可少的,所以为云笔记系统设计了登录界面。如图5-1所示。

图 5-1登录界面

5.1.2 注册界面

对于新用户无法登陆,设计了注册界面,以供新用户注册信息,如图5-2所示。

图 5-2注册界面

应用户的需求,保障用户的账户安全,设计一个修改密码的界面,如图5-3所示。

图5-3修改密码界面

5.2 主要功能模块

5.2.1 主界面

用户登录后,用户所操作的界面为主要界,核心功能都将在此界面实现,包括笔记本、笔记、编辑框、显示框、收藏夹、回收站、查询分享、显示查询结果等,如图5-4所示。

5-4主界面

以下我们将详细介绍各个功能模块的设计。

如图5-5所示,它包括了笔记本列表信息、创建新的笔记本按钮,在笔记本列表的最下边,还存在回收站和收藏夹两个按钮。

图5-5笔记本界面

当我们点击新建笔记本的按钮时,会弹出新建笔记本的选项框,如图5-6所示。

图 5-6新建笔记本界面

5.2.3 笔记界面

作为云笔记的核心功能模块,笔记界面也占有了主界面的很大一部分,如图5-7所示。

相关文档
最新文档