交友网课程设计报告.docx
- 文档编号:28083758
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:32
- 大小:245.01KB
交友网课程设计报告.docx
《交友网课程设计报告.docx》由会员分享,可在线阅读,更多相关《交友网课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。
交友网课程设计报告
中国地质大学小学期
项目题目:
在线快捷交友系统的设计与实现
专业班级:
学生姓名:
学生学号:
指导教师姓名:
2013年7月30日
三、系统的需求分析11-13
四、系统的数据库设计
五、系统详细设计13-15
1、系统目标
在现代社会里,网上交友作为一种网络服务形式得到了越来越多的人的认可,也已经成为近两年来广泛受到用户欢迎和商家青睐的网络服务项目。
网络技术的发展为交友模式的革新带来了新的机遇,现代网络交友将结合现代网络技术、多媒体技术与传统沟通与交流学习的优势,改变传统的面对面的交友方式,开发出基于B/S架构的交友平台系统。
该系统主要就是实现网络交友平台,完成在线聊天,留言,发送短消息,对相册的上传下载,对系统模块的问题,对用户的管理,对在线用户的搜索功能,从而能够达到在线交友,交流,学习的一个知识平台
2、开发工具及技术简介
2.1JSP技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
2.2MySQL数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。
由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“组合。
2.3JDBC连接数据库技术
一、JDBC技术
JDBC是JavaDatabaseConnectivity技术的简称,它是Java进行数据库编程的API,为开发人员提供了一套访问各种数据库的标准编程接口。
这个标准编程接口,使得基于多种后台数据库的程序开发变得非常容易实现,开发人员只要使用JDBCAPI开发一个数据库访问程序就可以了,没有必要为访问SQLServer数据库写一个程序,为访问Oracle数据库专门写一个程序,或者为访问MySQL数据库又写另一个程序。
JDBCAPI主要由一些接口组成,这些接口定义了用于数据库访问的许多方法,主要实现了下图所示的功能:
图1
λ建立与数据库的连接λ发送SQL语句至数据库执行λ处理SQL执行结果
其中,建立数据库连接是进行数据库编程的基础,在建立好连接的基础之上才能进行程序与数据库之间的信息传递,本文就着重介绍了使用JDBC获取各种常见数据库的连接对象的方法。
JDBCAPI提供了Java程序访问数据库的统一编程接口,使得访问不同的数据库编码可以是一致的,但对于特定的数据库,需要这些接口针对特定数据库的具体实现。
数据库引擎开发商和第三方厂商就针对特定数据库引擎提供了这些接口的实现方法,这种实现称为JDBC驱动程序(JDBCDriver)。
开发数据库应用程序时,必须提供合适的JDBCDrvier。
2.4HTML技术
全称:
HyperTextMark-upLanguage,译称:
超文本标记语言。
是一套独立于平台的格式定义•是由各种标记(Tag)组成的标记语言。
用来描述网页文档中的各个组成部分。
无需编译,浏览器可直接解释。
通常HTML的标记是以成对的方式出现的,其格式如下:
<标记名称「属性名称=参数…]>內容</标记名称>。
凡是在<标记>和标记>之间的內容均會受到這個标记的影响。
但是有少部份的标记,加上結尾標註反而觉得累赘,因此在习惯上也有不加結尾标记的。
其格式如下:
<标记名称>
2.5Tomcat服务器
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。
另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML的能力不如Apache服务器。
目前Tomcat最新版本为7.0.42。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
2.6MyEclipse集成开发环境
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
1.J2EE模型
2.WEB开发工具
3.EJB开发工具
4.应用程序服务器的连接器
5.J2EE项目部署服务
6.数据库服务
7.MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
系统的需求分析
3.1可行性分析
传统的交友平台设计是应用系统方法分析和需求,确立解决他们的方法与步骤,并对交友结果作出评价的一种计划过程与操作程序。
现代交友设计理论已经不拘泥于系统论的理论基础,不强调对交友活动的绝对控制,逐渐放弃呆板的设计模式,开始强调互动性设计的关系性、灵活性和实时性,从而更加有利于网友的相互交际的能力。
jsp:
在网页里能够用java代码这里使跟html不相同的实现数据库连接或者一些语句的判断使得页面更加简洁。
JDBC:
使服务器连接到数据库,可以对数据库进行查询、修改、显示。
用这个功能来实现对用户的行为的记录。
Tomacat服务器:
访问人数不多的情况下使用,配置好环境变量。
使调试和开发JSP页面变得容易。
Servlet:
服务器端的接口,在进行数据库和网页之间的连接的时候要写入servlet程序,实质上就是一个JSP页面。
可以用直接跳转输入xml对应servlet程序里面的mappingurl的名字进行直接跳转,而从jsp里面跳转到Servlet一般是用一个表单,然后action=“”内填其名字实现跳转。
Ajax:
当要访问数据库可是不想跳进Servlet页面而想在当前页面输出或这修改的动作时,用Ajax得到Xml是在HttpReuqest里的。
然后跳进Servlet这里虽然跳进了servlet但是页面不变成servlet那个页面而是只执行里面的操作。
Ajax还可以传送数据去servlet里面去随便多少个。
jQuery:
使得代码更加简便,并且有很多方法,让页面很容易就变得生动活泼起来
JavaScript:
可以通过标签的属性来触发script里面的function函数。
css样式使得网页变的生动活泼且动人,表格使得网页的格式平整对齐。
表单让用户能输入数据并被服务器接受。
链接可以直接实现跳转。
转发:
使用转发功能可以使的数据在跳转页面的时候进行传送。
而且可以绑定多个数据。
重定向:
response.setRedirect(“uri”);这是把当前页面转到另外一个页面,因为在servlet里面使根本没办法用类似标记进行直接跳转的。
但是重定向到的页面带的数据只能用到下一个页面,到下下个页面就没办法得到数据了。
Cookies:
使客户端管理用户状态。
每次访问页面,都会有属于当前访问者的cookieid。
而且会保存一段时间,浏览器会将cookie以文件的形式保存在硬盘上,超过指定的时间后,删除该文件seconds<0:
默认值,浏览器会将cookie保存在内存里面,只有关闭浏览器的时候,才会删除。
second=0:
立即删除cookie,所以用完要直接删除。
Session:
在登陆界面时候,一旦登陆成功之后,在servlet里面创建一个属于用户的session。
之后在整个交友界面的过程中,session中绑定的数据一直可以用。
在退出登陆后session要删除。
设置中文状态:
request.setCharacterEncoding(“utf-8”);
Response.setContentType(“utf-8”);
3.2功能图
在线交友系统统
网友注册模块
网友个人管理模块
网站会员管理模块
网友注册信息
网友登录验证
个人资料管理
相片管理
交友请求管理
交友回复管理
留言管理
注册会员管理
3、系统的数据库设计
4.1数据库结构分析
根据系统功能设计要求和模块划分,本站的数据库主要存储用户注册信息、留言信息、好友信息、照片信息、管理员信息、申请好友者信息、交友请求回复信息等。
实现的表为:
1.createtablefriend_user(
idbigintprimarykeyauto_increment,
usernamevarchar(20)unique,
passwordvarchar(10),
namevarchar(20),
ageint(3),
gendervarchar
(2),
telvarchar(20));
2.createtablefriend_pic(
usernamevarchar(20),
path1varchar(100));
3.createtablepersondetail(usernamevarchar(20),
heightdouble,
studyvarchar(14),marryvarchar(10),
salaryint(5),provincevarchar(6),
cityvarchar(6),housevarchar(6),
vehiclevarchar(10),innerwordsvarchar(100));
4.createtablesayhello(
usernamevarchar(20),
hellovarchar(50),
attentionvarchar(20)
);
5.createtablechoose(
usernamevarchar(20),
heightdouble,
studyvarchar(14),
marriagevarchar(10),
provincevarchar(6),
cityvarchar(6)
);
4.2数据表的设计
根据需求分析中对系统功能的各方面做出的定义,系统设计了相应的数据库表。
进行开发时,在MySQL数据库中应该严格按照此结构进行表的定义,而且一定要注意在设计的过程中,对各字段大小所做的限制。
1、用户简单注册信息表。
编号
字段名称
数据类型
说明
1
user_name
varchar(18)
用户名
2
password
Varchar(18)
用户密码
2、用户详细注册表、
编号
字段名称
数据类型
说明
1
lar_id
bigint(19)
自动编号,主键
2
user_id
bigint(19)
用户编号
3
name
varchar(50)
用户姓名
4
sex
varchar(50)
用户性别
5
age
varchar(50)
用户年龄
6
home
varchar(50)
用户籍贯
7
education
varchar(50)
用户学历
8
netname
varchar(50)
用户网名
9
homepage
varchar(50)
个人主页
3、发信信息表
编号
字段标识
数据类型
说明
1
id
Bigint(19)
消息编码,主键
2
netname
Varchar(10)
网名
3
word
Varchar(255)
发信内容
4
date
timestamp
发信时间
5
for_id
bigint
发信用户编号
6
user_id
bigint
用户编号
4、好友信息列表friend。
编号
字段标识
数据类型
说明
1
id
Bigint(19)
好友编码,主键
2
netname
Varchar(50)
网名
3
for_id
Bigint(19)
好友编号
4
user_id
Bigint(19)
用户编号
5
sex
Varchar(50)
好友性别
6
home
Varchar(50)
好友籍贯
5、照片信息列表friendimg。
编号
字段标识
数据类型
说明
1
fid
Bigint(19)
文件编号,主键
2
id
Bigint(19)
编号
3
fimgae
blob
存储图片
五、系统详细设计
注册模块1主要填写一写用户名密码等等基本信息,每一项信息都有限制,用户名与以前别人注册过的相同,密码必须6位数以上。
电话必须11位数,验证码要与图片里的数字一致,防止有木马一直注册攻击数据库。
这些信息会达到数据库,与第一个表相连,并且数据加入到第一个表中。
注册模块2主要填写用户的详细信息,没项必须选择,不选择的话没法让其他的用户去查询你并且认识你。
与第三个表相连,并且数据加入到第三个表中。
注册模块3填写内心独白,与第三个表的innerwords相连,并且数据加入到第三个表中。
注册模块4,填写择友条件。
与第五个表相连,并且数据加入到第二个表中。
注册成功,返回到登陆界面。
登陆界面,可以实现判断用户名是否存在以及用户名和密码是否和数据库里面的匹配。
主页面,显示总共的注册过的用户的信息,并且有详细信息的链接点入,有收信箱和查看我关注的人的功能,还有退出主页面
收件箱,有人和你打招呼那么点击收件箱的时候打招呼会显示出来,不点击则不显示
我关注的人,里面显示用户曾经点过加关注的人的信息,后面仍然附有详细信息链接。
高级查询,可以利用下拉列表分别用按照性别查找,按照买房查找,按照年龄查找等等等。
用户详细信息:
里面利用表格打印出用户的详细信息,比如内心独白,年龄,买房,婚姻等等。
并且有加关注,打招呼,和上传图片等功能。
当然,还附有一个判断,如果是点入了本人的详细信息,在每一项详细信息的属性下还可以修改。
上传照片
六、系统实现
1、用户注册页面
实现代码:
functioncheckUser()
{varusername=document.getElementById("username");
varuser_msg=document.getElementById("user_msg");
if(username.value==""){
user_msg.innerHTML="用户名不能为空";}
else{
user_msg.innerHTML="";}}
functioncheck_username2(){
$.post("check_username",{
username:
$("#username").val()},
function(data){
$("#username_msg").html(data);});}
functioncheckName(){
varname=document.getElementById("name");
varname_msg=document.getElementById("name_msg");
varreg=/^[\u4e00-\u9fa5]*$/;
varrs=reg.test(name.value);
if(name.value==""){
name_msg.innerHTML="真实姓名不能为空";}
else{
if(!
rs){
name_msg.innerHTML="姓名必须为中文";}
else{
name_msg.innerHTML="";}}}
functioncheckPwd(){
varpwd=document.getElementById("pwd");
varpwd_msg=document.getElementById("pwd_msg");
varreg=/^[a-z]*[A-Z]*\d*$/;
varrs=reg.test(pwd.value);
if(pwd.value==""){
pwd_msg.innerHTML="密码不能为空";}
else{
if(!
rs||pwd.value.length<6){
pwd_msg.innerHTML="必须由六位以上字母和数字组成";}
else{
pwd_msg.innerHTML="";}}}
functioncheckConPwd(){
varo1=document.getElementById("pwd");
varo2=document.getElementById("conPwd");
varconPwd_msg=document.getElementById("conPwd_msg");
if(o2.value!
=o1.value){conPwd_msg.innerHTML="确认密码与密码不同,请重新输入";}
else{
conPwd_msg.innerHTML="";}}
functioncheckTel(){
varobj=document.getElementById("tel");
vartel_msg=document.getElementById("tel_msg");
varreg1=/^\d{11}$/;
varreg2=/^\d{3}[\-]\d{8}$/;
varb=(reg1.test(obj.value)||reg2.test(obj.value));
if(!
b){
tel_msg.innerHTML="电话格式输入错误";}
else{
tel_msg.innerHTML="";}}
functiongetXmlHttpRequest(){
varxhr=null;
if(typeofXMLHttpRequest!
='undefined'){
xhr=newXMLHttpRequest();}
else{
xhr=newActiveXObject('MicrosoftXMLHttp');}
returnxhr;}
functioncheckCheckCode(){
varmsg=document.getElementById("code_msg");
varcode=document.getElementById("checkCode");
varxhr=getXmlHttpRequest();
xhr.open('post','checkyzm',true);
xhr.setRequestHeader("Content-Type","application/x-");
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
vartxt=xhr.responseText;
msg.innerHTML=txt;
}else{
msg.innerHTML="系统错误,请稍后重试";}
}else{
msg.innerHTML="正在验证...";}};
xhr.send('checkCode='+code.value);}
2、用户登录
登录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交友 课程设计 报告
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1