班 级
|
|
课题类型
|
R设计类 □调研类 □实验类 □其他
|
学生姓名
|
|
课题名称
|
基于web的聊天室构建
|
指导教师
|
|
指导教师职称
|
高级软件工程师
|
选题是否
有变化
|
□是 R否
|
是否一人一题
|
R是 □否
|
是否有
文献综述
|
R是 □否
|
课题拟解决的问题
|
1. 使用Access数据库建立了两张数据表:用户注册信息表和在线用户信息表。
2. 用户的注册、登录、选择聊天房间进行聊天的基本功能。
3. 对用户基本资料、密码的修改、查看在线聊友功能、聊天中更换房间、用户退出聊天室的功能。
|
设计时间
|
2014年3月17日 至 2014年6月27日
|
以下内容由检查组填写
|
工作量及
难度
|
□太大 □大 □小 □适中 □很难 □较难 □一般 □简单
|
对分配工作完成的进度情况
|
□提前完成 □按计划完成 □拖后完成 □没有完成
|
工作态度
|
□认真 □较认真 □一般 □不认真
|
质量评价(学生前期已完成的工作情况)
|
|
存在的问题
|
|
检查组意见
|
组长签名:
|
毕业设计中期报告
一、 毕业设计进度:
1. 3月17~21日:需求分析,数据库的设计。
2. 3月22~23日:使用Access数据库建立了两张数据表:用户注册信息表和在线用户信息表。
3. 3月23~25日:注册以及登陆的JSP页面的编写。
4. 3月26~28日:注册以及登陆的javabean的编写。
5. 3月29~4月1日:databean的编写建立数据库的连接。登出JSP页面。
6. 4月2~5日:control servlet的编写,实现注册以及登陆、登出功能。
7. 4月6~10日:主页面JSP的编写以及input,transact和right等构成主页面的JSP以及相应功能的实现。
8. 4月11~15日:修改用户资料,修改密码的JSP以及相关功能的实现。
9. 4月16~20日:实现悄悄话功能以及发言时表情动作的功能实现。
10. 4月21日~23日:积分以及高级功能(踢人)的实现。
11. 4月24~25日:查看在线聊友功能以及聊天中更换房间功能的实现。
12. 4月26日~28日:整体功能的调试,修正。
二、 毕业设计主要内容:
Web聊天室曾在因特网进入中国早期的时候被广泛使用,一度深受国内网民的青睐。随着腾讯QQ以及之后微信的普及,目前Web聊天室已然较少被使用。但在一些商业网站,例如BBS以及在线购物系统,还是会有Web聊天室的存在。基于Web聊天室自身的优点,即不需要安装任何客户端应用,聊天内容呈现便捷。所以,Web聊天室将长期存在于因特网上。
该聊天室系统由用户注册、用户登录、聊天室的选择、主聊天室以及相应修改、帮助功能组成。使用Java编程语言集合JSP、JavaBean、Servlet技术完成系统的整体设计,以MyEclipse为平台,Tomcat为服务器。
系统功能:
(1)实现用户的注册与登录功能,使用户成为聊天室的合法用户。
(2)实现聊天室基本功能,能接收各个用户的发言,在聊天输入区域输入自己的发言内容、在聊天显示区域看到聊天的内容,能与所喜欢的用户进行私聊,即说悄悄话;
(3)可以根据聊友的聚集情况来选择自己喜欢的房间进入聊天室;
(4)拥有在线名单区,显示在线聊友及其所在房间;
(5)拥有发言区,让聊友能够让按照个性化的风格来发表自己的观点,并提供让聊友选择聊天对象,私聊等功能;
(6)用户可以在聊天过程中更换房间,修改自己的密码及基本资料。
(7)普通用户在积分大于1000分时就具备了管理员功能成为高级用户,高级用户可以将不遵守聊天室规定、胡乱发言的聊友踢出聊天室。
本系统在主页面使用了框架,一些用于判断的页面使用了servlet控制之外,其余页面均包含有首页面(head.jsp)和尾页面(foot.jsp)。本聊天室还拥有两张图片,即背景图片和首页面的图片。
该聊天系统主要由用户注册、用户登录、主聊天室和一些修改功能组成
欢迎模块就是聊天室开始的欢迎页面,是整个聊天室的首页,是带领用户进入本聊天室的向导,其中包括用户登录界面和用户注册界面两个链接。
用户模块主要包括用户登录和用户注册两个单元,分别是用来给用户登录和用户注册使用的页面。
用户的注册单元是常规的注册,主要包含用户名、密码、性别、年龄、邮箱、以及用于密码保护的问题和回答。用户注册使用javascript对用户所填写的信息验证,查看用户所填信息是否符合要求,只有填写的所有内容都符合要求之后,表单才能提交。表单提交后交给servlet控制器转发,之前javabean会提取表单提交的内容并进行相应的处理,servlet根据bean的处理结果决定转发方向,若用户注册的用户名数据库中已经存在,即该用户名已经被注册过,则返回相应的错误信息,提示重新注册。若用户注册的用户名不存在,则用户注册成功,相应的信息就会被插入到数据库的user表中。
用户的登录使用已经注册的注册用户身份登录,用户登录时也要经过检查后才会成功地提交表单,javabean提取表单的内容处理,servlet根据处理结果决定转发方向。用户每成功登录一次其积分就会加2分,积分大于1000分时该用户就可以自动升级为高级用户,具备管理员的功能,即具有踢人的权限。
已注册用户的登录实现主要通过将用户的提交用户名和密码与数据库中的数据作对比,查找是否有该用户名、密码是否正确。如果数据库内没有该用户名,则该用户显然尚未注册,显示用户名不存在;若有该用户名且密码正确则将页面转到聊天室房间选择界面,否则提示相应的错误信息。并同时将登录成功的用户的用户名保存到session中,选择房间后从session中取出用户名并从用户注册的信息表中查询出用户的积分将该用户的用户名、所选房间和用户的积分写入到在线用户表中从而在聊天主页面查看在线聊友的列表里能被显示出来。将查询出的用户积分保存到session中,以便在聊天主页面中显示出该用户的积分。但是如果是私聊则只有聊天对象和自己看得到聊天内容,其他人是看不到的。信息的得到是通过输入区获得(用户自己的一些发言),或系统自动生成(对某用户的进入或某户被踢出的一些系统提示)的。用户可以根据自己的喜好选择和大家一起聊天或和某人进行私聊。显示单元的文字条数在多于显示页面大小的时候会自动产生滚动条并滚动,这只要通过window.scroll()函数就可以实现了,以保持最新的聊天内容在显示单元显示。用户查看聊天记录也是显示页面实现的,所有聊天记录在信息未清除(服务器重启后或用户的发言在超过200条时,系统会自动清除所有记录内容,以便丢弃不再需要的已发送内容记录。)之前都会显示在该页面上。
输入单元是用户进行聊天的主要单元,用户的发言、聊天对象、表情用语、是否私聊、是否退出私聊或者是否退出聊天室,都是通过输入区实现的。这里是用户的操作界面。用户可以在聊天对象的文本框中输入自己喜欢的聊友给他发送信息或给所有人发送信息(默认是给所有人发送信息),当用户勾选了“悄悄话”,则该用户的发言就只有他所输入的聊天对象可以看到,其他人是看不到的,如果没有勾选(即退出了私聊),则他的发言是在线聊友都可以看到的。表情用语、字体、字体颜色、字体样式等都是下拉式列表框,可以直观的选取,用户的发言内容是将是所有这些的组合文字。离开按钮是调用用户退出页面,即logout.jsp页面,从而将用户从当前用户列表的session中删除该用户名,并从在线聊友表中删除,实现用户的退出。“聊天帮助”链接可以查看一些关于如何使用本聊天室的说明信息。“高级功能”链接是高级用户具备的管理员功能,可以踢出其他在线用户。
高级功能是高级用户具有的类似于管理员的功能。当某用户的积分大于1000分时,该用户就具备了该功能,启用该功能后可以根据下拉框选择要踢出的用户名,踢人成功后会有提示框,提示所选用户已经被踢出。被踢出的用户将不能再聊天,其他用户可以给他留言,但他是不能看到的,因为在他能看到的时候聊天信息已经被清空了。被踢出的用户可以正常登录聊天室,但要在服务器重启之后,才能继续正常聊天。
本系统采用的数据库是Microsoft Office Access数据库,共有两张表,
该系统用两张表:注册用户信息表(user表)和在线用户信息表(user_list表)。
本聊天室大部分页面都包含了首页面和尾页面,是通过JSP的动作指令实现的,
用户注册是JSP页面、JavaBean和Servlet的结合,JSP负责注册的显示,使用javascript在表单提交之前对用户填写的信息进行验证,验证通过,表单提交给Servlet,Servlet通过调用JavaBean决定注册是否成功,JavaBean会将用户提交的表单信息封装并处理,然后显示相应的信息,失败可再回到注册页面,若成功则可连接到登录页面。
用户登录功能类似于用户注册,也是通过以上几种技术的集合来实现的,用户注册时,若成功则将用户信息保存到数据库中,而用户登录时,若成功则将表单上的信息与数据库中对应的信息作比较,若符合就可以成功跳转。实现代码与用户注册类似。
用户登录成功后就可以连接到选择聊天房间的页面,用户可以根据自己的喜好选择聊天房间,在用户登录并成功选择聊天房间后,用户的用户名、所选聊天室和用户的积分就会被添加到user_list表中,只有在用户注销或被他人踢出后用户的这些信息才会从user_list中被删除。
该功能也是通过JSP页面、JavaBean和Servlet相结合实现的。
聊天室的主页面是用框架技术构建的,对于不支持框架的浏览器是无法访问的,聊天主页面主要集成了四个页面,即显示页面(show.jsp)、用户信息修改页面(right.jsp)、处理页面(transact.jsp)和输入页面(input.jsp)。
用户信息修改页面首先会显示用户所在的聊天房间,用户在聊天过程中可以修改用户资料、密码、更换房间等。主要是通过超链来将这些功能放在该页面的。
更换房间操作是用表单将更换之后的信息提交出去处理的。
用户修改资料的时候通过session将用户名传递过去,可以修改年龄和邮箱,在修改时会检查数据,查看用户名为指定用户名时,问题回答是否正确,若正确则修改成功,否则会有相应的提示信息。
用户密码修改也是通过session将用户名传递过去,查看数据表中指定用户名的旧密码是否正确,若正确,则将旧密码更新为新输入的密码,若不正确,则有相应的提示信息。
处理页面两秒钟就会更新一次,以获得最新的用户聊天信息在显示页面中显示,使得用户之间可以及时地看到聊天内容,从而进行回复。主要实现代码为:
<meta http-equiv="refresh" content="2">
处理页面是将输入页面中存放在application中用户填写和选择的一些操作取出来放入一个Vector数组中,然后根据这些元素(如是自己对别人说话还是别人对自己说话,有没有动作,是否为悄悄话)决定发出的消息的组成结构,通过字符串相加得到。再通过javascript的write方法在显示页面中写出来。
输入页面中主要有通过sesison传递过来的用户名;聊天对象,聊天对象是一个输入文本域,用户可以手动输入,这样在其他用户离开或被踢出之后还可以对他留言,留言内容会放在application中,在留言对象下次登录的时候就可以看到,并可以做相应的处理,而只有在服务器重启之后application中保存的留言信息才会被清空,这样可以使用户的聊天方式更加简便、灵活;聊天的一些动作,这个是固定的,在聊天室创建好之后就具备那么多的动作,用户可以选择自己相要表达的动作;悄悄对话框,若勾选了这个对话框,就可以进入私聊的状态,用户的发言只有私聊的对象才可以看得到,其他人是看不到的;积分,积分是通过session传递过来的;发送按钮,用户点击该按钮后,系统就会将用户输入的一系列信息添加到Message中交给处理页面处理;离开按钮,用户点击该按钮后,就会有清空session中相应信息的操作,并且将user_list表中的相应信息清除。
三、 毕业设计主要成果:
1. 使用Access数据库建立了两张数据表:用户注册信息表和在线用户信息表。
2. 用户的注册、登录、选择聊天房间进行聊天的基本功能。
3. 对用户基本资料、密码的修改、查看在线聊友功能、聊天中更换房间、用户退出聊天室的功能。
4. 按天登陆累积积分,积分积累超过1000分后具有高级功能,实现管理员的踢人禁言的功能。