毕业-基于springmvc和mybatis的云笔记.doc
_毕业设计报告(论文)报告(论文)题目:基于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 JavaAbstractIn 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目 录第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与JSP2.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_idvarchar100否主键用户IDcn_user_namevarchar100否用户名cn_user_passwordvarchar100否加密后的密码cn_user_pwdvarchar100否未加密的密码cn_user_tokenvarchar100是标志位cn_user_desctext0是用户昵称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_idvarchar100否主键笔记本IDcn_user_idvarchar100否外键用户IDcn_notebook_type_idvarchar100否外键笔记本类型IDcn_notebook_namevarchar500否笔记本名字cn_notebook_desctext0是笔记本描述cn_notebook_createtimetimestamp0否笔记本创建时间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_idvarchar100否主键笔记IDcn_notebook_idvarchar100否外键笔记本IDcn_user_idvarchar100否外键用户IDcn_note_status_idvarchar100否外键笔记本状态IDcn_note_type_idvarchar100否外键笔记本类型IDcn_note_titlevarchar500是笔记标题cn_note_bodylongtext0是笔记内容cn_note_create_timebigint20是笔记创建时间cn_note_last_modify_timebigint20是最后一次修改时间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_idvarchar100否主键收藏笔记IDcn_user_idvarchar100否外键用户IDcn_note_idvarchar100否外键笔记IDcn_user_descvarchar100是用户昵称cn_collect_titlevarchar100是收藏笔记标题cn_collect_bodyvarchar100是收藏笔记内容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_idvarchar100否主键分享笔记IDcn_user_idvarchar100否外键用户IDcn_note_idvarchar100否外键笔记IDcn_user_descvarchar100是用户昵称cn_share_titlevarchar100是分享笔记标题cn_share_bodyvarchar100是分享笔记内容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.1.3 修改密码界面应用户的需求,保障用户的账户安全,设计一个修改密码的界面,如图5-3所示。 图5-3修改密码界面5.2 主要功能模块5.2.1 主界面用户登录后,用户所操作的界面为主要界,核心功能都将在此界面实现,包括笔记本、笔记、编辑框、显示框、收藏夹、回收站、查询分享、显示查询结果等,如图5-4所示。图5-4主界面以下我们将详细介绍各个功能模块的设计。5.2.2 笔记本界面如图5-5所示,它包括了笔记本列表信息、创建新的笔记本按钮,在笔记本列表的最下边,还存在回收站和收藏夹两个按钮。 图5-5笔记本界面 当我们点击新建笔记本的按钮时,会弹出新建笔记本的选项框,如图5-6所示。 图 5-6新建笔记本界面5.2.3 笔记界面作为云笔记的核心功能模块,笔记界面也占有了主界面的很大一部分,如图5-7所示。 图5-7笔记界面新建笔记的界面类似于新建笔记本,这里不再贴图。5.2.4 音乐播放器界面本系统中,音乐播放器只是一个简易的播放器,其界面也相对简单,如图5-8所示。图5-8音乐播放器界面第6章 功能模块实现6.1 后台服务器的搭建6.1.1 搭建总述对于局域网版与互联网版的云笔记实现,局域网版采用的是本机分享WiFi,其他计算机连接到本机的WiFi便可以访问云笔记系统,所以只要知道本机的WiFi分享出来的IP的值,然后将localhost换为相应的IP值即可,在“cmd”里面输入ipconfig即可查看当前本机以及WiFi的IP地址;互联网版的云笔记则需要一个名为“ngwork”的软件,将本地的localhost:8080端口映射到互联网上,域名由自己定。然后通过访问域名就能够访问本机的localhost:8080端口了,这样就实现了云笔记的互联网产品。系统后台服务器主要由Java编写,利用Spring MVC框架整合MyBatis,利用JDBC连接数据库。具体步骤如下:首先导入相应的框架包:Spring的 IOC、AOP、DAO包,Mybatis开发驱动包,数据库的驱动包、连接池DBCP开发包以及两大框架的整合包mybatis-spring包。然后导入相应的配置文件applicationContext.xml,并在其中配置DataSource DBCP、SQLSessionFactoryBean和MapperScannerConfigurer,再编写相应的实体类,定义SQL文件、定义DAO接口、最后实现生成DAO就好。6.1.2 配置applicationContext.xml文件首们配置 DataSource DBCP,即数据库连接池(DATABASE CONNECTION POOL),代码如下:<bean id="dbcp" class="mons.dbcp.BasicDataSource"><!- dbcp数据库连接池 -><property name="username" value="root"></property><property name="password" value="root"></property><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql:/localhost:3306/cloud_note?useUnicode=true&characterEncoding=utf8"></property></bean>在applicationContext中,所有的配置都将写在<bean>标签中,id属性是数据库连接池的名字,class的值为DBCP.jar包中,BasicDataSource的位置。<property>为<bean>的属性,username是数据库的用户名,password是数据库的密码,driverClassName是DBCP的驱动,它的value为驱动的路径,url是数据库的配置信息。将上述代码写完整后,Myeclipse便可以访问数据库了。然后配置SqlSessionFactoryBean,它的作用是可以用SQL语句来操作数据库,代码如下:<!- SqlSessionFactoryBean的配置 -><bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dbcp"></property><property name="mapperLocations" value="classpath:org/nciae/note/sql/*.xml"></property></bean>其中dataSource是路径的来源,它指向数据库连接池dbcp,这个dbcp并不是专有名词,而是上述<bean>的id值。mapperLocations是SQL语句所在配置文件的路径,*.xml指代该路径下所有.xml的配置文件均可访问。最后,将这些文件信息注入容器,开启自动扫描即可,代码如下:<!- 注入容器 -><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="org.nciae.note.dao"></property><!- 自动注入sqlsessionfactory -></bean><!- 开启扫描,扫描Controller,Service组件 -><context:component-scan base-package="org.nciae.note"/><mvc:annotation-driven/>其中basePackage指代的是DAO文件包的路径,开启自动扫描后,将扫描 base-package路径下的所有注解,即rog.nciae.note。6.2 登录模块6.2.1 用户注册 新用户首次登录,注册是不可避免的,首先用户进入注册页面,当用户填写完信息点击注册时,页面先进行校验,不符合要求的数据将进行提示更改,比如当用户名为空、两次密码输入不一致等。当用户输入合法数据时,浏览器将通过tomcat发送ajax请求,请求方式为post,将用户注册的信息以json串的形式发送到服务器端,服务器端此时接收数据,浏览器端发送数据时的url(graduation_program/user/regist.do)在服务器端以注解RequestMapping的方式标明。为了完整的接受浏览器所发过来的json数据,我们需要一个user的实体类方便接收,该实体类包括用户名,密码(加密与非加密),昵称,用户ID:private String cn_user_id;private String cn_user_name;private String cn_user_password;private String cn_user_token;private String cn_user_desc;private String cn_user_pwd;数据将传送到org.nciae.note包下,由于数据是注解的方式,将被自动扫描到容器中,当浏览器端访问某一个IP地址时,将在tomcat容器中寻找对应的IP,注册时的URL为regist.do,此时,我们只需要将对应的方法函数加上对应的注解RequestMapping(/regist.do)就可以了,然后将对应的变量加以Resource的注解注入到容器中,将方法体加以ResponseBody转换成json类型的数据,同时方法的参数就是接收过来的浏览器端传递过来的数据了。然后将参数传递到方法中,简历UserService接口和相应的UserServiceImp接口实现类处理浏览器端传递过来的数据即可。为了保障用户信息安全,我们对用户的信息进行了加密,加密模式为MD5,即使数据库被非法使用者盗取,想要反编译出MD5加密的信息也是相当困难的,有一定的安全性。用户ID是通过UUID的方式自动生成的ID,比系统自己编号要方便安全的多。在数据处理的过程中,首先调用了userDao.findByName()方法,查询该用户名有没有被使用,如果被使用了则返回false,提示用户该用户名已存在,如果没有被使用,则调用userDao.save()方法,该方法可以说是MyBatis的关键方法,通过Dao访问org.nciae.note.sql包中的*.xml,当找到userDao对应的save方法字段时,将执行UserMapper.xml中的id=“save”的SQL语句,即:<!- 向cn_user中插入新用户 -><insert id="save" parameterType="org.nciae.note.entity.User">insert into cn_user (cn_user_id,cn_user_name,cn_user_password,cn_user_desc,cn_user_pwd)values(#cn_user_id,#cn_user_name,#cn_user_password,#cn_user_desc,#cn_use