Web开发
课程设计报告
(2011— 2012学年 第 2 学期)
题 目: 聊 天 室
专 业: 计算机网络技术
班 级:
姓名学号:
指导教师:
成 绩:
XX职业技术学院计算机系
2012
年
X
月
X
日
目 录
目 录 II
1 概 述 1
11 设计目标 1
12 项目规划 1
13 开发工具选择 2
2 需求分析 3
21 需求分析 3
22 数库表设计 4
3 系统总体设计 6
31系统结构 6
4系统功模块实现 7
41 登录注册界面模块 7
42 选择聊天室界面模块 10
43 聊天室界面模块 12
44 理员高级功理模块 20
5 调试分析 28
6心体会 29
致 谢 30
参 考 文 献 31
1 概 述
11 设计目标
功角色讲线聊天室两种类型户普通户理员
中普通户登录选择性进入聊天室通聊天界面发送聊天消息进行聊天交流果第次进入该聊天室通模块提供注册功提交注册信息成聊天室户
理员登陆聊天外拥种理权限查线户信息遵守聊天规户赶出聊天室甚数库里恶意聊天户名
12 项目规划
聊天室需提供界面功
1需提供支持户登陆身份验证WEB界面实现台应功模块模块中根登入者拥权限分开放权限
2需支持户注册界面应台模块
3需普通户理员提供浏览聊天室界面应台功模块界面中户选择性进入聊天室
4需普通户理员提供支持聊天界面应台模块界面中户理员选择聊天象想聊天象发送信息
5需理员提供查询户界面应功模块界面实理员实现理功界面界面里理员实现赶功实现删聊天户动作
13 开发工具选择
JSP(JavaServer Pages)Sun Microsystems公司倡导许公司参起建立种动态网页技术标准JSP技术点类似ASP技术传统网页HTML文件(*htm*html)中插入Java程序段(Scriptlet)JSP标记(tag)形成JSP文件(*jsp)JSP开发Web应跨台Linux运行操作系统运行
JSP技术Java编程语言编写类XMLtagsscriptlets封装产生动态网页处理逻辑网页通tags scriptlets访问存服务端资源应逻辑JSP网页逻辑网页设计显示分离支持重基组件设计基Web应程序开发变迅速容易Web服务器遇访问JSP网页请求时首先执行中程序段然执行结果连JSP文件中HTML代码起返回客户JSPJava Servlet样服务器端执行通常返回该客户端HTML文客户端浏览器浏览JSP10规范版1999年9月推出12月推出11规范目前较新JSP12规范JSP20规范征求意见稿已出台
JSP页面HTML代码嵌入中Java代码组成服务器页面客户端请求Java代码进行处理然生成HTML页面返回客户端浏览器Java Servlet JSP技术基础型Web应程序开发需Java ServletJSP配合完成
JSP优势
(1)次编写处运行点JavaPHP更出色系统外代码做更改
(2)系统台支持基台意环境中开发意环境中进行系统部署意环境中扩展相ASPPHP局限性显易见
(3)强伸缩性Jar文件运行ServletJSP台服务器进行集群负载均衡台Application进行事务处理消息处理台服务器数台服务器Java显示巨生命力
(4)样化功强开发工具支持点ASPJava已许非常优秀开发工具许免费中许已利运行种台
2 需求分析
21 需求分析
21世纪网络时代Internet普已影响传统交流方式网络聊天室系统计算机网络发展产物常见受广互联网者认基Web网络应系统着互联网发展通网络更方便快捷进行信息交流学聊天系统家提供更交流台台通文字符号进行实时交谈聊天整特网开放方提供网民交友娱乐场聊天室里网民选择已聊天象进行话交流网民间相互沟通交流情感佳方式
传播方式讲 聊天室传播非线性传播非线形传播指聊天室传播信息数享空间网络户发出 拥网络传播权利 网络破传统媒体单传送信息格局 信息传播者接收者间互动变切实行传播信息涵讲 聊天室消息结构中心聊天室受 众带信息感受作种现代生活资源 实现传统众传播单传播传播转变 极拓展现代生活空间 传播者受众间直接连通成转变整传播结构传播效果发生巨变化 传统媒体法拟
根CNNIC 发布第十五次中国互联网络发展状况统计报告 35商业网站提供网络聊天热衷网聊天群部分集中16~24 年龄段 济没独立 缺乏网支付手段特点聊天室商业网站重理目前营商获收益渠道两条 线广告电子商务青少年济没立 营商通常难通电子商务获收入 线广告方面 商业网站目前广告客户目标群锁定中高收入白领阶层 面青少年消费市场网广告没 法通网广告获收益 青少年聚集网聊天室 网络公司然没太高热情 实际 青少年消费市场规模观利润丰厚块蛋糕流行音乐新潮服饰娱乐场 青少年消费中力市场规模 全国青少年消费市场总规模低千亿 非聊天群身缺乏商业价值 目前没办法种价值加发掘线广告理应成聊天室获商业收益手段
着研发技术进步qqmsn等聊天软件面世取代聊天室时聊天室户激法等言辞聊天室逐渐没落原聊天软件局限性聊天室开放性强面广真正解聊天室群 更设置聊天室题话题页面风格等重视聊天室产品氛围济效益 成种汽车俱乐部攀岩俱乐部行车俱乐部等合作伙伴 吸引更会员成网会聊天室应注意身形象塑造 性化特色化聊天室产品脱颖出注意适广告宣传种种素课题研究方运JSP技术营造简单友网络聊天室互联网者提供学讨交流台
22 数库表设计
ChatRoom数库中建名userinfo表表32示
列名
数类型
长度
否空
说明
ID
int
11
NOT NULL
索引号键增
nickName
varchar
50
NOT NULL
户昵称户昵称
userPassword
Varchar
50
NOT NULL
户密码
role
tinyint
1
NOT NULL
户权限0代表普通会员1代表理员
lastLoginTime
date
NULL
户登陆时间
表32userinfo数表
ChatRoom数库中新建名msginfo表保存聊天信息显示聊天记录时通查询语句户显示信息表33示
列名
数类型
长度
否空
说明
ID
int
11
NOT NULL
索引号键增
chatRoom
varchar
50
NOT NULL
聊天信息应房间
msgFrom
varchar
50
NOT NULL
聊天信息发言
msgTo
varchar
50
NOT NULL
聊天信息发表象
chatTime
datetime
NOT NULL
聊天信息发表时间
chatAction
varchar
50
NULL
聊天信息动作表情
msgContent
varchar
200
NOT NULL
聊天信息容
secret
tinyint
1
NOT NULL
0代表非悄悄话1代表悄悄话
表33msginfo表
ChatRoom数库表中新建名onlineUser表保存线户信息表34示
列名
数类型
长度
否空
说明
ID
int
20
NOT NULL
索引号键增
chatRoom
varchar
50
NOT NULL L
户房间
nickName
varchar
50
NOT NULL
户昵称
lastChatRoom
dateTime
NULL
户发言时间
denyRoom
varchar
255
NULL
户封时间
表34 onlineUser表
3 系统总体设计
31系统结构
系统分四模块数库通模块户登录注册模块聊天模块理员模块具体描述表31示
模块名
文件名
功描述
数库通理描述
BaseConnjsp
连接数查询更新操作
户登录注册模块
loginjsp
户登入界面
chkloginjsp
户登录台处理界面
Checkloginjava
封装登陆javabean
聊天室模块
chkSessionjsp
检查session信息判断户否登陆
chatRoomListjsp
聊天房间选择界面
chatRoomListjava
封装选择聊天房间javabean
chatRoomjsp
聊天框架界面
redirectChatRoomjsp
转聊天室中转界面
inputjsp
聊天室输入界面
sendMsgjsp
聊天信息发送界面
userListjsp
线户列表界面
dataValuejsp
聊天信息显示界面
logoutjsp
离开聊天室
changeRoomjsp
切换聊天房间
Messagejava
聊天信息封装javabean
ChatRoomjava
封装聊天功Javabean
理员模块
advancedjsp
理员理高级界面
kickjsp
踢功
deletejsp
删户
表31 系统结构表
4系统功模块实现
41 登录注册界面模块
登录界面模块通访问数库中userinfo表中NamePassword两字段判断户名密码否匹配果匹配登入成功否登入失败果户第次登录该聊天室动注册图41示
图41 登录界面
核心代码:
package netchat
import javasql*
import javautil*
import javatextSimpleDateFormat
public class CheckLogin {
public String checklogin(String userNameString userPassword)
throws SQLExceptionClassNotFoundException
{
BaseConn conn null
try
{
conn new BaseConn()
String sql select * from userInfo where nickName
PreparedStatement ps connpreparedStatement(sql)
pssetString(1userName)
ResultSet rs connexecuteQuery()
if(rsnext())
{
if(rsgetString(userPassword)equals(userPassword))
{
SimpleDateFormat cal new SimpleDateFormat(yyyyMMdd HHmmss)
String time calformat(new javautilDate())
sqlupdate userInfo set lastLoginTime where nickName
psconnpreparedStatement(sql)
pssetString(1time)
pssetString(2userName)
connexecuteUpdate()
return SUCCESS_LOGIN
}
else
return WRONG_PASSWORD
}
else
return NONE_USER
}catch(SQLException ex)
{
exprintStackTrace()
throw ex
}catch(ClassNotFoundException ex)
{
exprintStackTrace()
throw ex
}
finally
{
conncloseDB()
}
}
public boolean saveToDataBase(String userNameString userPassword)
throws SQLExceptionClassNotFoundException
{
BaseConn conn null
try
{
conn new BaseConn()
SimpleDateFormat cal new SimpleDateFormat(yyyyMMdd HHmmss)
String time calformat(new javautilDate())
String sql insert into userInfo(nickNameuserPasswordlastLoginTimerole) values()
PreparedStatement ps connpreparedStatement(sql)
pssetString(1userName)
pssetString(2userPassword)
pssetString(3time)
pssetInt(40)
connexecuteUpdate()
return true
}catch(SQLException ex)
{
exprintStackTrace()
throw ex
}catch(ClassNotFoundException ex)
{
exprintStackTrace()
throw ex
}finally
{
conncloseDB()
}
}
}
42 选择聊天室界面模块
果登录成功进入选择聊天室界面模块图42示:
图42 选择聊天室
核心代码:
<@ page languagejava importjavautil*netchat* pageEncodingGB2312>
<@include filechkSessionjsp>
聊天室列表
欢迎您:
Web开发
课程设计报告
(2011— 2012学年 第 2 学期)
题 目: 聊 天 室
专 业: 计算机网络技术
班 级:
姓名学号:
指导教师:
成 绩:
XX职业技术学院计算机系
2012
年
X
月
X
日
目 录
目 录 II
1 概 述 1
11 设计目标 1
12 项目规划 1
13 开发工具选择 2
2 需求分析 3
21 需求分析 3
22 数库表设计 4
3 系统总体设计 6
31系统结构 6
4系统功模块实现 7
41 登录注册界面模块 7
42 选择聊天室界面模块 10
43 聊天室界面模块 12
44 理员高级功理模块 20
5 调试分析 28
6心体会 29
致 谢 30
参 考 文 献 31
1 概 述
11 设计目标
功角色讲线聊天室两种类型户普通户理员
中普通户登录选择性进入聊天室通聊天界面发送聊天消息进行聊天交流果第次进入该聊天室通模块提供注册功提交注册信息成聊天室户
理员登陆聊天外拥种理权限查线户信息遵守聊天规户赶出聊天室甚数库里恶意聊天户名
12 项目规划
聊天室需提供界面功
1需提供支持户登陆身份验证WEB界面实现台应功模块模块中根登入者拥权限分开放权限
2需支持户注册界面应台模块
3需普通户理员提供浏览聊天室界面应台功模块界面中户选择性进入聊天室
4需普通户理员提供支持聊天界面应台模块界面中户理员选择聊天象想聊天象发送信息
5需理员提供查询户界面应功模块界面实理员实现理功界面界面里理员实现赶功实现删聊天户动作
13 开发工具选择
JSP(JavaServer Pages)Sun Microsystems公司倡导许公司参起建立种动态网页技术标准JSP技术点类似ASP技术传统网页HTML文件(*htm*html)中插入Java程序段(Scriptlet)JSP标记(tag)形成JSP文件(*jsp)JSP开发Web应跨台Linux运行操作系统运行
JSP技术Java编程语言编写类XMLtagsscriptlets封装产生动态网页处理逻辑网页通tags scriptlets访问存服务端资源应逻辑JSP网页逻辑网页设计显示分离支持重基组件设计基Web应程序开发变迅速容易Web服务器遇访问JSP网页请求时首先执行中程序段然执行结果连JSP文件中HTML代码起返回客户JSPJava Servlet样服务器端执行通常返回该客户端HTML文客户端浏览器浏览JSP10规范版1999年9月推出12月推出11规范目前较新JSP12规范JSP20规范征求意见稿已出台
JSP页面HTML代码嵌入中Java代码组成服务器页面客户端请求Java代码进行处理然生成HTML页面返回客户端浏览器Java Servlet JSP技术基础型Web应程序开发需Java ServletJSP配合完成
JSP优势
(1)次编写处运行点JavaPHP更出色系统外代码做更改
(2)系统台支持基台意环境中开发意环境中进行系统部署意环境中扩展相ASPPHP局限性显易见
(3)强伸缩性Jar文件运行ServletJSP台服务器进行集群负载均衡台Application进行事务处理消息处理台服务器数台服务器Java显示巨生命力
(4)样化功强开发工具支持点ASPJava已许非常优秀开发工具许免费中许已利运行种台
2 需求分析
21 需求分析
21世纪网络时代Internet普已影响传统交流方式网络聊天室系统计算机网络发展产物常见受广互联网者认基Web网络应系统着互联网发展通网络更方便快捷进行信息交流学聊天系统家提供更交流台台通文字符号进行实时交谈聊天整特网开放方提供网民交友娱乐场聊天室里网民选择已聊天象进行话交流网民间相互沟通交流情感佳方式
传播方式讲 聊天室传播非线性传播非线形传播指聊天室传播信息数享空间网络户发出 拥网络传播权利 网络破传统媒体单传送信息格局 信息传播者接收者间互动变切实行传播信息涵讲 聊天室消息结构中心聊天室受 众带信息感受作种现代生活资源 实现传统众传播单传播传播转变 极拓展现代生活空间 传播者受众间直接连通成转变整传播结构传播效果发生巨变化 传统媒体法拟
根CNNIC 发布第十五次中国互联网络发展状况统计报告 35商业网站提供网络聊天热衷网聊天群部分集中16~24 年龄段 济没独立 缺乏网支付手段特点聊天室商业网站重理目前营商获收益渠道两条 线广告电子商务青少年济没立 营商通常难通电子商务获收入 线广告方面 商业网站目前广告客户目标群锁定中高收入白领阶层 面青少年消费市场网广告没 法通网广告获收益 青少年聚集网聊天室 网络公司然没太高热情 实际 青少年消费市场规模观利润丰厚块蛋糕流行音乐新潮服饰娱乐场 青少年消费中力市场规模 全国青少年消费市场总规模低千亿 非聊天群身缺乏商业价值 目前没办法种价值加发掘线广告理应成聊天室获商业收益手段
着研发技术进步qqmsn等聊天软件面世取代聊天室时聊天室户激法等言辞聊天室逐渐没落原聊天软件局限性聊天室开放性强面广真正解聊天室群 更设置聊天室题话题页面风格等重视聊天室产品氛围济效益 成种汽车俱乐部攀岩俱乐部行车俱乐部等合作伙伴 吸引更会员成网会聊天室应注意身形象塑造 性化特色化聊天室产品脱颖出注意适广告宣传种种素课题研究方运JSP技术营造简单友网络聊天室互联网者提供学讨交流台
22 数库表设计
ChatRoom数库中建名userinfo表表32示
列名
数类型
长度
否空
说明
ID
int
11
NOT NULL
索引号键增
nickName
varchar
50
NOT NULL
户昵称户昵称
userPassword
Varchar
50
NOT NULL
户密码
role
tinyint
1
NOT NULL
户权限0代表普通会员1代表理员
lastLoginTime
date
NULL
户登陆时间
表32userinfo数表
ChatRoom数库中新建名msginfo表保存聊天信息显示聊天记录时通查询语句户显示信息表33示
列名
数类型
长度
否空
说明
ID
int
11
NOT NULL
索引号键增
chatRoom
varchar
50
NOT NULL
聊天信息应房间
msgFrom
varchar
50
NOT NULL
聊天信息发言
msgTo
varchar
50
NOT NULL
聊天信息发表象
chatTime
datetime
NOT NULL
聊天信息发表时间
chatAction
varchar
50
NULL
聊天信息动作表情
msgContent
varchar
200
NOT NULL
聊天信息容
secret
tinyint
1
NOT NULL
0代表非悄悄话1代表悄悄话
表33msginfo表
ChatRoom数库表中新建名onlineUser表保存线户信息表34示
列名
数类型
长度
否空
说明
ID
int
20
NOT NULL
索引号键增
chatRoom
varchar
50
NOT NULL L
户房间
nickName
varchar
50
NOT NULL
户昵称
lastChatRoom
dateTime
NULL
户发言时间
denyRoom
varchar
255
NULL
户封时间
表34 onlineUser表
3 系统总体设计
31系统结构
系统分四模块数库通模块户登录注册模块聊天模块理员模块具体描述表31示
模块名
文件名
功描述
数库通理描述
BaseConnjsp
连接数查询更新操作
户登录注册模块
loginjsp
户登入界面
chkloginjsp
户登录台处理界面
Checkloginjava
封装登陆javabean
聊天室模块
chkSessionjsp
检查session信息判断户否登陆
chatRoomListjsp
聊天房间选择界面
chatRoomListjava
封装选择聊天房间javabean
chatRoomjsp
聊天框架界面
redirectChatRoomjsp
转聊天室中转界面
inputjsp
聊天室输入界面
sendMsgjsp
聊天信息发送界面
userListjsp
线户列表界面
dataValuejsp
聊天信息显示界面
logoutjsp
离开聊天室
changeRoomjsp
切换聊天房间
Messagejava
聊天信息封装javabean
ChatRoomjava
封装聊天功Javabean
理员模块
advancedjsp
理员理高级界面
kickjsp
踢功
deletejsp
删户
表31 系统结构表
4系统功模块实现
41 登录注册界面模块
登录界面模块通访问数库中userinfo表中NamePassword两字段判断户名密码否匹配果匹配登入成功否登入失败果户第次登录该聊天室动注册图41示
图41 登录界面
核心代码:
package netchat
import javasql*
import javautil*
import javatextSimpleDateFormat
public class CheckLogin {
public String checklogin(String userNameString userPassword)
throws SQLExceptionClassNotFoundException
{
BaseConn conn null
try
{
conn new BaseConn()
String sql select * from userInfo where nickName
PreparedStatement ps connpreparedStatement(sql)
pssetString(1userName)
ResultSet rs connexecuteQuery()
if(rsnext())
{
if(rsgetString(userPassword)equals(userPassword))
{
SimpleDateFormat cal new SimpleDateFormat(yyyyMMdd HHmmss)
String time calformat(new javautilDate())
sqlupdate userInfo set lastLoginTime where nickName
psconnpreparedStatement(sql)
pssetString(1time)
pssetString(2userName)
connexecuteUpdate()
return SUCCESS_LOGIN
}
else
return WRONG_PASSWORD
}
else
return NONE_USER
}catch(SQLException ex)
{
exprintStackTrace()
throw ex
}catch(ClassNotFoundException ex)
{
exprintStackTrace()
throw ex
}
finally
{
conncloseDB()
}
}
public boolean saveToDataBase(String userNameString userPassword)
throws SQLExceptionClassNotFoundException
{
BaseConn conn null
try
{
conn new BaseConn()
SimpleDateFormat cal new SimpleDateFormat(yyyyMMdd HHmmss)
String time calformat(new javautilDate())
String sql insert into userInfo(nickNameuserPasswordlastLoginTimerole) values()
PreparedStatement ps connpreparedStatement(sql)
pssetString(1userName)
pssetString(2userPassword)
pssetString(3time)
pssetInt(40)
connexecuteUpdate()
return true
}catch(SQLException ex)
{
exprintStackTrace()
throw ex
}catch(ClassNotFoundException ex)
{
exprintStackTrace()
throw ex
}finally
{
conncloseDB()
}
}
}
42 选择聊天室界面模块
果登录成功进入选择聊天室界面模块图42示:
图42 选择聊天室
核心代码:
<@ page languagejava importjavautil*netchat* pageEncodingGB2312>
<@include filechkSessionjsp>
欢迎您: