《Web开发》课程设计报告聊天室.docx

上传人:b****9 文档编号:26281820 上传时间:2023-06-17 格式:DOCX 页数:38 大小:2.88MB
下载 相关 举报
《Web开发》课程设计报告聊天室.docx_第1页
第1页 / 共38页
《Web开发》课程设计报告聊天室.docx_第2页
第2页 / 共38页
《Web开发》课程设计报告聊天室.docx_第3页
第3页 / 共38页
《Web开发》课程设计报告聊天室.docx_第4页
第4页 / 共38页
《Web开发》课程设计报告聊天室.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

《Web开发》课程设计报告聊天室.docx

《《Web开发》课程设计报告聊天室.docx》由会员分享,可在线阅读,更多相关《《Web开发》课程设计报告聊天室.docx(38页珍藏版)》请在冰豆网上搜索。

《Web开发》课程设计报告聊天室.docx

《Web开发》课程设计报告聊天室

《Web开发》

课程设计报告

(2011—2012学年第2学期)

 

题目:

聊天室

专业:

计算机网络技术

班级:

1班

姓名学号:

xxx(1007052139)

指导教师:

楚志凯

成绩:

 

商丘职业技术学院计算机系

2012

6

5

 

1概述

1.1设计目标

从功能角色上来讲,在线聊天室可以有两种类型的用户,普通用户和管理员。

其中,普通用户在登录后,可以选择性的进入不同的聊天室,并通过聊天界面,向一人或多人发送聊天消息,进行聊天交流。

如果是第一次进入到该聊天室,还可以通过本模块提供的注册功能,提交注册信息,成为本聊天室的用户。

管理员在登陆后,除了可以聊天外,还可以拥有各种管理的权限,比如查看所有在线用户信息,还可以把一些不遵守聊天规则的用户赶出聊天室,甚至从数据库里把一些恶意聊天用户除名。

1.2项目规划

本聊天室需要提供如下的界面和功能。

1、需要提供支持用户登陆以及身份验证的WEB界面和实现后台对应功能的模块。

在这个模块中,能根据登入者拥有的权限,分别开放不同的权限。

2、需要一个支持用户注册的界面和对应的后台模块。

3、需要为普通用户和管理员提供一个浏览所有聊天室的界面和对应后台功能模块。

在这个界面中,用户可以选择性的进入不同的聊天室。

4、需要为普通用户和管理员提供一个支持多人聊天的界面和对应的后台模块。

在这个界面中用户和管理员可以选择聊天对象,也可以想聊天对象发送信息。

5、需要为管理员提供一个查询所有用户的界面和对应的功能模块,这个界面其实就是管理员实现其管理功能的界面,在这个界面里,管理员可以实现“赶人”的功能,也可以实现“删除聊天用户”的动作。

 

1.3开发工具的选择

JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。

网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。

JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。

JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。

目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。

JSP页面由HTML代码和嵌入其中的Java代码所组成。

服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。

JSP的优势

(1)一次编写,到处运行。

在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。

基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。

相比ASP/PHP的局限性是显而易见的。

(3)强大的可伸缩性。

从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。

这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

2需求分析

2.1需求分析

21世纪是网络的时代,Internet的普及已经影响了传统的交流方式。

网络聊天室系统是计算机网络发展的产物,是最为常见、最受广大互联网使用者所认可的基于Web的网络应用系统。

随着互联网的发展,人们通过网络可以更方便快捷地进行信息交流和学习,聊天系统可以为大家提供一个更好的交流平台,在这个平台上,人们可以通过文字与符号进行实时的交谈、聊天,它是一个向整个因特网开放的地方,是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自已的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。

从传播方式上讲,聊天室传播是非线性传播。

非线形传播指聊天室传播的信息是为无数的共享空间的网络用户所发出的,任何拥有网络传播权利的人都可以得到,网络打破了传统媒体单向传送信息的格局,信息传播者与接收者之间的互动变得切实可行。

从传播的信息内涵上讲,聊天室的消息结构是无中心的。

聊天室所给受众带来的信息与感受作为一种现代生活资源,在实现了从传统大众传播的单向传播向多向传播的转变后,极大地拓展了现代生活空间,使传播者与受众之间的直接连通成为可能。

这一转变使整个传播结构与传播效果发生了巨大变化,是传统媒体无法比拟的。

根据CNNIC发布的第十五次中国互联网络发展状况统计报告,有3.5%的商业网站提供网络聊天。

热衷于网上聊天的人群大部分集中于16~24年龄段上,经济上没有独立,又缺乏网上支付手段的特点也是聊天室不为商业网站看好的重要理由之一。

目前经营商获得收益的渠道有两条:

在线广告和电子商务。

青少年在经济上没有自立,经营商通常很难通过电子商务获得收入;而在在线广告方面,各商业网站目前的广告客户主要目标人群锁定中、高收入的白领阶层,面向青少年消费市场的网上广告几乎没有,无法通过网上广告获得收益。

因此,对于青少年聚集的网上聊天室,网络公司自然没有太高的热情。

实际上,青少年的消费市场一向是规模可观、利润丰厚的一块大蛋糕。

无论流行音乐、新潮服饰、娱乐场所,青少年消费都是其中的主力。

论市场规模,全国青少年消费市场的总规模不低于一千亿。

我们看到,并非聊天的人群本身缺乏商业价值,而是目前没有好的办法将这种价值加以发掘。

在线广告理应成为聊天室获得商业收益的主要手段。

随着研发技术的进步,qq.msn等聊天软件的面世,取代了聊天室。

同时,聊天室内用户过激,不法等言辞,也是聊天室逐渐没落的原因。

但是,聊天软件的局限性,不比聊天室开放性强,面向广。

只有真正了解聊天室的主要使用人群,才能更好地设置聊天室的主题、话题、页面风格等。

要重视聊天室产品的氛围经济效益,可以成为各种汽车俱乐部、攀岩俱乐部、自行车俱乐部等的合作伙伴,吸引更多会员,成为网上会所。

聊天室还应注意自身形象的塑造,只有个性化、特色化才能使聊天室产品脱颖而出。

要注意适当的广告宣传。

在以上的种种因素下,本课题的研究方向就是运用JSP技术营造一个简单,友好的网络聊天室,为互联网使用者提供学习,讨论和交流的平台。

2.2数据库表设计

在ChatRoom数据库中建一个名为userinfo的表,如表3.2所示。

列名

数据类型

长度

可否为空

说明

ID

int

11

NOTNULL

索引号,主键,自增

nickName

varchar

50

NOTNULL

用户昵称、用户昵称

userPassword

Varchar

50

NOTNULL

用户密码

role

tinyint

1

NOTNULL

用户权限0代表普通会员,1代表管理员

lastLoginTime

date

NULL

用户最后登陆时间

表3.2userinfo数据表

 

在ChatRoom数据库中新建一个名为msginfo的表,用来保存聊天信息。

在显示聊天记录时,可以通过查询语句对不同的用户显示不同的信息。

如表3.3所示。

列名

数据类型

长度

可否为空

说明

ID

int

11

NOTNULL

索引号,主键,自增

chatRoom

varchar

50

NOTNULL

聊天信息对应的房间

msgFrom

varchar

50

NOTNULL

聊天信息发言人

msgTo

varchar

50

NOTNULL

聊天信息发表对象

chatTime

datetime

NOTNULL

聊天信息发表时间

chatAction

varchar

50

NULL

聊天信息的动作和表情

msgContent

varchar

200

NOTNULL

聊天信息的内容

secret

tinyint

1

NOTNULL

0代表非悄悄话,1代表悄悄话

表3.3msginfo表

 

在ChatRoom数据库表中新建一个名为onlineUser的表,用来保存在线用户信息。

如表3.4所示。

列名

数据类型

长度

可否为空

说明

ID

int

20

NOTNULL

索引号、主键、自增

chatRoom

varchar

50

NOTNULLL

用户所在的房间

nickName

varchar

50

NOTNULL

用户的昵称

lastChatRoom

dateTime

NULL

用户最后发言时间

denyRoom

varchar

255

NULL

用户被封的时间

表3.4onlineUser表

 

3系统总体设计

3.1系统结构

本系统将分为四大模块,即数据库通用模块、用户登录与注册模块、聊天主模块、管理员模块,具体描述如表3.1所示。

模块名

文件名

功能描述

数据库通用管理描述

BaseConn.jsp

连接和数据的查询更新操作

用户登录与注册模块

login.jsp

用户登入界面

chklogin.jsp

用户登录后台处理界面

Checklogin.java

封装登陆后的javabean

 

聊天室模块

chkSession.jsp

检查session信息判断用户是否登陆

chatRoomList.jsp

聊天房间选择界面

chatRoomList.java

封装选择聊天房间的javabean

chatRoom.jsp

聊天框架界面

redirectChatRoom.jsp

转向聊天室中转界面

input.jsp

聊天室输入界面

sendMsg.jsp

聊天信息发送界面

userList.jsp

在线用户列表界面

dataValue.jsp

聊天信息显示界面

logout.jsp

离开聊天室

changeRoom.jsp

切换聊天房间

Message.java

聊天信息封装javabean

ChatRoom.java

封装聊天功能的Javabean

管理员模块

advanced.jsp

管理员管理高级界面

kick.jsp

踢人功能

delete.jsp

删除用户

表3.1系统结构表

4系统功能模块实现

4.1登录和注册界面模块

登录界面模块是通过访问数据库中的userinfo表中的Name和Password两个字段来判断用户名和密码是否匹配,如果匹配就登入成功,否则登入失败,如果用户是第一次登录该聊天室,则自动注册。

如图4.1所示。

图4.1登录界面

核心代码:

packagenet.chat;

importjava.sql.*;

importjava.util.*;

importjava.text.SimpleDateFormat;

publicclassCheckLogin{

publicStringchecklogin(StringuserName,StringuserPassword)

throwsSQLException,ClassNotFoundException

{

BaseConnconn=null;

try

{

conn=newBaseConn();

Stringsql="select*fromuserInfowherenickName=?

";

PreparedStatementps=conn.preparedStatement(sql);

ps.setString(1,userName);

ResultSetrs=conn.executeQuery();

if(rs.next())

{

if(rs.getString("userPassword").equals(userPassword))

{

SimpleDateFormatcal=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

Stringtime=cal.format(newjava.util.Date());

sql="updateuserInfosetlastLoginTime=?

wherenickName=?

";

ps=conn.preparedStatement(sql);

ps.setString(1,time);

ps.setString(2,userName);

conn.executeUpdate();

return"SUCCESS_LOGIN";

}

else

return"WRONG_PASSWORD";

}

else

return"NONE_USER";

}catch(SQLExceptionex)

{

ex.printStackTrace();

throwex;

}catch(ClassNotFoundExceptionex)

{

ex.printStackTrace();

throwex;

}

finally

{

conn.closeDB();

}

}

publicbooleansaveToDataBase(StringuserName,StringuserPassword)

throwsSQLException,ClassNotFoundException

{

BaseConnconn=null;

try

{

conn=newBaseConn();

SimpleDateFormatcal=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

Stringtime=cal.format(newjava.util.Date());

Stringsql="insertintouserInfo(nickName,userPassword,lastLoginTime,role)values(?

?

?

?

)";

PreparedStatementps=conn.preparedStatement(sql);

ps.setString(1,userName);

ps.setString(2,userPassword);

ps.setString(3,time);

ps.setInt(4,0);

conn.executeUpdate();

returntrue;

}catch(SQLExceptionex)

{

ex.printStackTrace();

throwex;

}catch(ClassNotFoundExceptionex)

{

ex.printStackTrace();

throwex;

}finally

{

conn.closeDB();

}

}

}

 

4.2选择聊天室界面模块

如果登录成功则进入选择聊天室界面的模块,如图4.2所示:

图4.2选择聊天室

核心代码:

<%@pagelanguage="java"import="java.util.*,net.chat.*"pageEncoding="GB2312"%>

<%@includefile="chkSession.jsp"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

聊天室列表

useBeanid="chatList"class="net.chat.ChatRoomList"/>

url('image/crl.jpg')">

#ff88ff">欢迎您:

red"><%=session.getAttribute("_USER")%>

#ff88ff">希望您在这里聊得愉快!

--form表单,让用户选择一个聊天房间提交给redirectChatRoom.jsp处理-->

#ff0000">情感倾诉

<%//这里通过javaBean组件获取每个聊天室房间的在线人数%>

[<%=chatList.countUser("情感倾诉")%>]人

#000088">交友天地

[<%=chatList.countUser("交友天地")%>]人

#90E090">龙门客栈

[<%=chatList.countUser("龙门客栈")%>]人

absolute">

\Users\Administrator\Workspaces\MyEclipse8.5\ChatRoom\WebRoot\image\room1.jpg"border="0">

4.3聊天室主界面模块

此界面由三个用户输入模块、聊天信息显示模块和在线用户列表等三个模块组成,如图4.3所示。

图4.3聊天室主窗体

 

核心代码:

packagenet.chat;

importjava.text.SimpleDateFormat;

importjava.sql.*;

publicclassMessage{

privateStringchatRoom;

privateStringmsgFrom;

privateStringmsgTo;

privateStringchatAction;

privateStringmsgContent;

privateintsecret;

publicvoidsetChatRoom(StringchatRoom)

{

this.chatRoom=chatRoom;

}

publicvoidsetMsgFrom(StringmsgFrom)

{

this.msgFrom=msgFrom;

}

publicvo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1