JSP课程设计QQ登陆系统含源代码.docx
《JSP课程设计QQ登陆系统含源代码.docx》由会员分享,可在线阅读,更多相关《JSP课程设计QQ登陆系统含源代码.docx(13页珍藏版)》请在冰豆网上搜索。
JSP课程设计QQ登陆系统含源代码
SANY标准化小组#QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
JSP课程设计QQ登陆系统含源代码
1前言页码
问题提出页码
研究意义页码
2系统需求分析页码
系统功能分析页码
系统功能模块设计页码
3数据库的概念结构设计页码
数据抽象页码
设计全局概念模式页码
4数据库的逻辑设计页码
形成初始的关系模式页码
关系模式的规范化处理页码
5系统的实现与调试页码
6总结页码
参考文献页码
1前言
问题提出
随着嵌入式的发展,近年来,嵌入式在社会发展中占据着越来越重要的地位。
我们日常生活中的手机,电子手表,MP3,医疗设备,汽车导航等等,到处可见嵌入式相关的东西。
以前很多手动式的操作由嵌入式设备的代替后运行效率和方便程度都有了明显的提高。
目前嵌入式相关的技术已经成为未来世界发展的主流方向。
与此同时,网络的发展更是火遍了全球,几乎80%以上的人都会上网。
可以说已经成为人们的生活的一部分。
由以上可想而知,嵌入式联网功能定会是未来的一种趋势。
TCP/IP(通常它是指传输控制协议/网际协议,TransmissionControlProtocol/InternetProtocol)是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上就是其成功的明证。
Internet最初的设计是为了满足美国国防的需要,具体来讲就是使美国政府即使在遭受核打击时也能保证通信不间断,TCP/IP就是用于这个目的的。
今天,Internet已经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但其最初的所有质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。
这些特性包括可靠传输数据、自动检测和避免网络发生错误的能力。
更重要的就是TCP/IP是一个开放式通信协议,开放性意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。
研究意义
目前,嵌入式设备与TCP/IP协议的结合已经成为了必然的趋势。
但是嵌入式设备的容量小,处理速度慢等原因。
不可能会使用像普通PC机那样一样的TCP/IP协议支持系统。
所以要实现适合嵌入式设备的TCP/IP协议,是一个首要的问题。
这就要考虑在原有的协议的基础上对TCP/IP协议进行裁剪,使之留下有用的功能更适合于我们的嵌入式系统。
目前有部分的嵌入式设备上已经实现了相应的TCP/IP协议。
不过对于ARM这种比较流行的芯片来说针对于部分型号芯片的TCP/IP协议的实现并没有实现。
以LPC2124芯片为例,市面上很少会出现此类型号的匹配产品。
为了让这些型号的芯片也能够使用上功能强大的TCP/IP协议。
这就需要我们开发出具体针对这些芯片的TCP/IP协议。
为了使做出的协议更实用,成本更低。
配合免费稳定的UCOSII等操作系统也是必不可少的。
2系统需求分析
系统功能分析
这个系统仿造了QQ登录界面,可以实现注册帐号,帐号登录与修改密码功能。
注册帐号时要输入姓名,年龄,密码等信息。
注册完毕后返回登录界面输入帐号密码即可登录。
登录后可以通过旧密码来修改新密码。
经分析我们认为QQ登陆系统的具体要求为:
1.在登陆界面实现填写账号,输入密码,账号登陆的功能。
2.通过使用登陆界面可以进行注册账号,账号登陆,修改密码的功能。
3.注册账号时可以输入姓名,年龄,密码,身份证号等信息。
4.系统具有操作方便、简捷等特点
5.登陆后可以进行密码修改
图2-1数据流图
系统使用数据字典如表2-1所示:
1.主类:
成员变量描述
变量类型
名称
帐号
String
secret
密码
Int
newsecret
新密码
Int
renewsecret
表2-1成员变量见表
方法名
功能
备注
read()
查询数据库
获取密码,返回给jsp页面,jsp页面通过改密码与表单中的密码进行比较判断密码是否正确。
update()
更新数据库
向数据库中添加一组数据
表2-2方法表
2.类:
成员变量描述
变量类型
名称
帐号
String
secret
密码
Int
resecret
姓名
String
name
年龄
String
age
返回信息
int
number
表2-3成员变量表
方法名
功能
备注
getAddMessage()
向数据库添加数据
返回一个int类型的值给jsp页面,jsp页面通过该值判断是否添加成功
表2-4方法表
系统功能模块设计
用户注册:
用户注册是用户进行其他操作,如登陆账号,修改密码等操作的前提。
需要输入姓名,年龄,密码等信息。
用户登录:
用户注册后,登录系统,通过注册时的用户名和密码正确登录系统。
修改密码:
用户登陆之后可以通过旧的密码修改新的密码。
图2-2系统功能模块图
3数据库的概念结构设计
概念结构设计是将分析得到的用户需求抽象为信息结构(即概念模型)的过程,它是整个数据库设计的关键。
为了把用户的数据要求清晰明确的表达出来,通常要建立一种面向问题的数据模型,按照用户的观点来对数据和信息建模。
最常用的概念性数据模型就是ER模型。
以下是本系统涉及到数据抽象后的E-R图。
数据抽象
图3-1注册账号局部E-R图
图3-2登陆查询局部E-R图
设计全局概念模式
各个局部视图即分E-R图建立好后,还需要对它们进行合并,集成为一个整体的概念数据结构即全局E-R图。
(1)合并分E-R图,生成初步E-R图
合并分E-R图时并不能简单地将各个分E-R图画到一起,而是必须着力消除各个分E-R图中不一致的地方,以形成一个能为全系统中所有用户共同理解和接受的统一概念模型。
合理消除各分E-R图的冲突,合并分E-R图的主要工作与关键所在。
E-R图中的冲突有三种:
属性冲突,命名冲突结构冲突。
①属性冲突
属性域冲突:
属性值的类型、取值范围或取值集合不同。
属性取值单位冲突。
②命名冲突
命名不一致可能发生在实体名、属性名或联系名之间,其中属性的命名冲突更为常见。
一般表现为同名异义或异名同义。
同名异义:
不同意义的对象在不同的局部应用中具有相同的名字。
异名同义(一义多名):
同一意义的对象在不同的局部应用中具有不同的名字。
命名冲突可能发生在属性级、实体级、联系级上。
其中属性的命名冲突更为常见。
解决命名冲突的方法是通常用讨论、协商等行政手段加以解决。
③结构冲突(有三类结构冲突)
同一对象在不同应用中具有不同的抽象
解决方法:
通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
变换时要遵循两个准则。
同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。
解决方法:
使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。
实体之间的联系在不同局部视图中呈现不同的类型
解决方法:
根据应用语义对实体联系的类型进行综合或调整。
(2)消除不必要的冗余,设计基本E-R图
冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。
冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。
采用分析的方法来消除数据冗余,以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
前面图3-1和图3-2在形成初步E-R图后,以及消除冗余联系,便可得到基本的E-R模型,如下图3-3所示
图3-3优化后的全局E-R图
4数据库的逻辑设计
概念结构是各种数据模型的共同基础。
为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。
一般的逻辑结构设计分为以下三个步骤:
1.将概念结构转化为一般的关系、网状、层次模型。
2.将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。
3.对数据模型进行优化。
形成初始的关系模式
(1)一个实体转换为一个关系模式。
关系的属性:
实体的属性;关系的键:
实体的键
(2)一个m:
n联系转换为一个关系模式。
关系的属性:
与该联系相连的各实体的键以及联系本身的属性。
关系的键:
各实体键的组合。
(3)一个1:
n联系可以转换为一个关系模式
关系的属性:
与该联系相连的各实体的码以及联系本身的属性
关系的码:
n端实体的键
(4)一个1:
1联系可以转换为一个独立的关系模式。
关系的属性:
与该联系相连的各实体的键以及联系本身的属性
关系的候选码:
每个实体的码均是该关系的候选码
将图3-3中四个实体分别转换为关系模式(带下划线的为主键):
QQ登陆(账号,密码,邮箱)
信息查询(账号,信息)
修改密码(账号,密码,邮箱)
关系模式的规范化处理
关系模型的优化通常是以规范化理论为基础。
方法为:
1、确定数据依赖,按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。
2、对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3、按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
5系统的实现与调试
用SQLServer2000数据库管理系统建立数据库结构,加载数据,实现各种查询,根据系统功能建立视图等对象,并能对数据库做简单的维护操作。
该模块是系统的基础模块,账号登陆界面。
可以在该页面填写账号和密码进行登陆。
图5-1账号登陆页面
登陆后可以进行信息修改。
图5-2修改信息页面
登陆后也可以进行密码修改。
图5-3密码修改界面
修改新密码后需要进行邮箱验证。
图5-4邮箱验证界面
代码
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport=""%>
useBeanid="A"class=""scope="request"/>
<%
Stringstr1=("secret");
Stringstr2=("resecret");
Stringstr3=("name");
Stringstr4=("age");
Stringstr5=("number");
if()==0||()==0||()==0||()==0)
{
("");
}
else
{(str5);
(str1);
(str3);
(str4);
inta=();
if(a>0)
{("注册成功"+"
");}
}
%>
返回登录界面