网络会议室.docx
《网络会议室.docx》由会员分享,可在线阅读,更多相关《网络会议室.docx(23页珍藏版)》请在冰点文库上搜索。
网络会议室
XXXX大学
动态网页设计课程设计(论文)
题目:
网络会议室
院(系):
专业班级:
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
程序设计专题(报告)任务及评语
院(系):
教研室:
学号
学生姓名
专业班级
程序设计(报告)题目
网络会议室
程序设计(报告)任务
程序设计专题的任务与要求:
(1)掌握JSP编程、面向对象的基础知识。
(2)较熟练地编写基于JSP技术的动态网页。
(3)了解JSP的内置对象、Bean、Servlet编程等编程技术。
(4)联系已学过的内容,巩固所学的理论,增强独立工作能力。
(5)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。
(6)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。
(7)课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指导教师评语及成绩
成绩:
指导教师签字:
2013年12月23日
第1章实训的目的与要求
1.1实训设计目的
《动态网页设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》及《动态网页设计》等课程后,进行的一次全面的综合训练,JSP动态网页设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2实训设计的实验环境
硬件要求能运行Windows2000操作系统的微机系统。
JSP动态网页设计语言及相应的集成开发环境:
J2SDK和ECLIPSE开发工具及Tomcat服务器。
1.3实训设计的预备知识
熟悉JAVA语言及ECLIPSE开发工具、Tomcat服务器。
1.4实训设计要求
按JSP动态网页设计的设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JSP动态网页设计的基本技能和面向对象的概念和方法编程技术。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
第2章实训设计内容
2.1开发背景简述
随着Internet的普及和宽带网络技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。
与此同时,一个新型的Web应用程序为网民之间提供了一个即时互通信息的功能和场所,这就是网络会议室。
网络会议室在网络早期就开始盛行了,不论是BBS、IRC都有类似的在线会议机制。
网络会议室为网友提供了实时对话的渠道,是网络上极为流行的一种服务,用于网上会议的场合,为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上类似笔友的性质,却大大节省了书信往返的时间。
对于网络会议室,相信我们都不陌。
通过这样一个网络会议平台,不仅可以与自己的亲人和朋友随时随地的进行语言交流和沟通,也可以同不认识的人相互交流思想,为我们的生活增添了不少乐趣,生活变得更加多姿多彩了。
网络会议已经成为网络时代出现的一种标志性的时代产物。
本课题建立的就是这样一个顺应时代潮流的小型网络会议室。
管理员可以通过该系统对用户以及用户开会信息进行管理,普通用户在该系统注册成为会员后可以与其它会员进行即时会议。
用户也可以以访客身份登录网络会议系统。
登录系统后,用户还可以自由选择会议对象、自定义会议文本颜色、自己添加丰富的表情语言,增加会议的生动性。
衷心希望能够为大家搭建一个良好的语言交流平台。
2.2系统设计内容
Web技术超越了传统的客户机/服务器两层结构,采用了三层体系结构,用户界面层/事务层/数据库层。
因此Web结构有着更好的安全性。
服务器端程序的实现技术也很多,本人选用了当前比较流行的网络编程技术——JSP作为主要实现手段,配合Java
Servlet、JavaBean、HTML等。
JSP作为一种Web实现技术,它的效率是很高的。
这一点正好符合了聊天系统所要求的实时性。
JSP自身的安全性,再加上实现模式的特点,完全能够达到网络会议系统的即时性和保密性的要求,保证了人们在交流中需要维护的隐私权。
除此之外,作为Java平台的一部分,JSP拥有Java语言“一次编写,随处运行”的特点。
再者,随着越来越多的服务器供应商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。
所以本人认为JSP不失为实现本系统的最佳技术。
网络会议室系统开发在软件方面主要使用了JSP网站设计技术、Tomcat、SQLserver2000后台数据库等软件。
网络会议室,实现了一对一,一对的多,多对多的聊天,并且能共享文件,非常方便。
有许多其他网络会议室不存在的优点,例如,注册用户可以参与会议,注册用户还能使用系统提供的一些高级功能,如踢人。
但系统只能允许经验值大于1000的高级用户使用该功能。
2.3需求分析
2.3.1系统逻辑设计
网络会议室系统使用的是数据库MicrosoftSQLServer2000。
经过对网络会议室的分析,我们将系统划分为系统用户实体、会议记录实体、网络会议室实体。
各实体的属性如下:
系统用户,用户ID,登录帐号,登录密码,用户名,性别,年龄,地址,qq号码,Email,注册时间,头像,会室管理员权限,超级管理员权限。
会议记录,记录ID,发言人,发言对象,会议信息,会议动作,会议表情,图片,会议类型,公告,用户字体颜色,会议信息字体颜色,会议时间。
网络会议室初始页面信息,会议信息,提交用户会议信息,图片信息,在线用户的用户名显示信息。
本系统的具体ER模型如下:
图2.1系统E-R图
图2.2 网络会议室初始页面信息E-R图
图2.3会议记录E-R图
图2.4 实体与实体间的E-R图
2.数据库表结构
网络会议室系统中主要用到的表有2张,系统用户表和会议记录表,表与表之间通过外键确定主表与子表之间的约束关系,实现表与表之间的数据参照完整性,这些关系的建立可以避免由于误操作导致的数据库崩溃。
下面给出了本系统的表描述:
表2.1用户登录信息表
Name
Code
DateType
Mandatory
用户ID
userId
Int(pk)
NotNull
登录帐号
userName
varchar
NotNull
登录密码
password
varchar
NotNull
用户名
trueName
varchar
Null
性别
sex
varchar
Null
年龄
age
varchar
Null
地址
address
varchar
Null
qq
qq
varchar
Null
Email
email
varchar
Null
注册时间
rgTime
varchar
NotNull
头像
iamge
varchar
Null
会议室管理员权限
kickFlag
varchar
NotNull
超级管理员权限
adminFlag
varchar
NotNull
表2.2会议记录信息表
Name
code
DateType
Mandatory
记录ID
msgId
Int(pk)
NotNull
发言人
sayuser
char
NotNull
发言对象
towho
char
NotNull
会议信息
message
nvarchar
NotNull
会议动作
addsign
nvarchar
Null
会议表情
addsays
char
Null
图片
tu
nvarchar
Null
会议类型
towhoway
char
Null
公告
gonggao
char
Null
用户字体颜色
addwordcolor
char
NotNull
会议信息字体颜色
sayscolor
char
NotNull
会议时间
time
varchar
NotNull
表2.3网络会议室初始页面
Name
Code
DateType
Mandatory
会议信息
message
nvarchar
NotNull
提交用户会议信息
trueName
varchar
NotNull
图片信息
tu
nvarchar
Null
在线用户的用户名显示信息
Namemessage
nvarchar
NotNull
表2.4聊天记录(msginfo)
Name
Code
DateType
Mandatory
会议室
chatroom
varchar
NotNull
发言人
msgfrom
varchar
NotNull
接收人
msgto
varchar
Null
消息
msgcontent
varchar
NotNull
时间
msgtime
varchar
NotNull
表2.5聊天记录(msginfo)
Name
Code
DateType
Mandatory
管理员ID
User_id
int
NotNull
管理员姓名
User_name
varchar
NotNull
2.3.2系统功能需求分析
在开发每个项目之前,为了使最终的软件产品符合用户的要求,设计人员必须充分理解系统的商业总体目标和用户的工作方式。
无论是开发简单的应用程序或者是开发大规模商业软件系统,开发人员首先要做的事都是确定系统需求。
网络会议系统的用户大致可以分成两类,注册用户和访客。
注册用户在系统中提交了注册资料,每次用注册的用户名和密码登陆,系统为其累计经验值,他可以使用某些高级功能。
访客属于临时系统,没有具体的资料,不能使用系统中的一些功能。
网络会议室提供给访客如下所示的两种功能:
(1)访客在进入系统前必须登陆,即在系统的登录模块输入一个临时性的用户名,作为自身的标识;
(2)在登录系统后,访客可以像注册用户一样参与会议,但不能使用系统针对注册用户的一部分功能。
网络会议室提供给注册用户如下所示的三种功能:
(1)注册用户在进入系统前必须登录,即输入用户名和密码,系统在验证用户输入的资料无误后才能登录。
(2)在登录系统后,注册用户可以参与会议。
(3)注册用户还能使用系统提供的一些高级功能,如踢人。
但系统只能允许经验值大于1000的高级用户使用该功能。
1.系统功能模块图
系统的可用性与它的结构是否合理有很大的关系,不合理的结构会使业务逻辑混乱,功能实现困难,而合理的结构能缩短开发周期,增强系统的可用性。
本网络会议室系统的大致结构图如下:
图2.5系统功能模块图
2.各模块功能如下:
系统用户登录页,用户在开始会议前必须登录。
注册用户在此页面提交用户名和密码,登录页会自动将这些信息提交给登录验证页进行验证。
访客只需提交一个临时性的用户名,登录页也会将此用户名提交给登录验证页,去检验是否有重名用户。
注册用户登录验证页,当系统的注册用户在登录页提交了用户名和密码后,这些信息都将被提交到本页面。
验证页读取数据库中的数据并验证用户名是否存在以及密码是否正确。
如果用户名和密码正确,验证模块把用户信息提交到显示模块,显示模块在网
络会议室中发布欢迎信息。
会议主页面包括,网络会议系统初始页面、在线会议高级功能页面、提交用户会议信息页、发布信息页、在线用户的用户名显示页、会议信息显示页。
会议信息显示页,所有的在线用户的会议信息以及系统的欢迎信息都在此页面上显示。
在线会议高级功能页面,提供踢出踢出在线人员的功能,如果参加会议者需要更多的附加功能,可以尝试自己添加一些代码。
提交用户会议信息页,用户登录系统后,可以在此页面上发布所要开会的内容并提交,用户所提交的内容将会在会议信息显示页上被显示。
用户可以选择自己想要交谈会议内容的对象以及会议附加显示的动作表情。
发布信息页,把用户会议信息发布到会议信息显示页上。
提交用户会议信息页是把用户所要提交的会议信息添加到一个消息量中,发布信息页使用同步的方式在会议信息显示页上显示。
在线用户的用户名显示页,会议用户可以在此处查看所有当前在线的人。
2.系统简单的流程图
图2.8系统流程图
2.4系统实现
2.4.1系统的详细设计
1.系统主要分为前后台两部分,前台是不需要认证的,是供网站的访问者访问的,主要完成了以下功能:
(1)系统用户登录页:
用户在进入在线会议系统前必须登录。
注册用户在登录页提交用户名和密码,登录页会自动将这些信息提交给登录验证页进行验证。
访客也必须提交一个临时性的用户名,登录页也会将此用户名提交给登录验证页去检验是否有重名的用户,然后跳转到会议主
页面。
系统用户登录页运行界面:
图2.9系统用户登录页运行界面
(2)会议信息显示页:
会议信息显示页占了会议系统的大部分页面。
在线会议在提交会议用户信息页提交会议信息,该会议信息就会在此页面上显示。
用户登录会议系统时,系统的欢迎信息
页就在此页面上显示,会议信息显示页:
图2.10 会议信息显示页
2.数据处理模块
数据处理模块由一个JavaBean程序sqlbean.java组成。
一般的系统都把与数据库相关的代码封装在一个JavaBean组件中。
本系统中的sqlbean.java负责连接数据库、执行数据库查询、更新删除数据库等操作。
2.4.3程序源代码
提交用户会议信息页部分代码:
<%@pagelanguage="java"contentType="text/html;charset=GB2312"
pageEncoding="GB2312"%>
<%@pageimport="java.util.*"%>
//JavaScript函数确保用户提交的会议内容不为空
functioncheckForm(){
if(document.chatForm.usermessage.value==""){
alert("发言不能为空!
");
document.chatForm.usermessage.focus();
returnfalse;
}
else{
document.chatForm.usermessage.focus();
returntrue;
}
}
functionuserLogout(){
top.window.location="login.jsp?
logout=yes";
}
functionopenWindow(url){
varnewWin=
window.open(url,"","toolbar=no,status=no,scrollbars=yes,menubar=no,width=450
height=320");
returnfalse;
}
cellpadding="0">
<% request.setCharacterEncoding("gb2312"); Stringfirst=(String)request.getParameter("first"); StringtalkMessage=(String)request.getParameter("usermessage"); Stringaction=(String)request.getParameter("action"); Stringfontcolor=(String)request.getParameter("fontcolor"); Stringtalkwith=(String)request.getParameter("talkwith"); StringsystemSpeak=(String)request.getParameter("systemSpeak"); //用户等级资料 Stringexperience=(String)session.getAttribute("experience"); if(experience==null) { experience="0"; } //获取用户名 /* if(userlevel==null) { userlevel="过客"; } */ StringName=(String)session.getAttribute("username"); session.setAttribute("sName",Name); out.println("【"+Name+"】"+"对"); //用户第一次进入 if(first==null){ talkMessage="系统公告: "+Name+"进入网络会议室! 大家欢迎! 请大家踊跃发言! "; action="no"; fontcolor="#000000"; systemSpeak="yes"; } if(talkwith==null){ talkwith="所有人"; } %> 9pt" onclick="returncheckForm();"> 9pt" onclick="returnuserLogout();">
|