• 1.16 MB
  • 2022-04-22 13:54:58 发布

jsp在线聊天室系统设计毕业论文.doc

  • 37页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'jsp在线聊天室系统设计毕业论文目录1前言12可行性分析22.1技术可行性分析22.2经济可行性分析22.3社会因素可行性分析33需求分析44.1系统概要设计54.1.1系统功能模块图54.1.2系统流程图64.2数据库逻辑结构设计75详细设计及编码实现85.1系统需要解决的主要问题85.2用户登录模块设计85.2聊天者发言模块设计125.2.1聊天者以默认的设置发言125.2.2以用户自定义方式发言135.2.3发言提交和更换房间的设计165.2.4文件上传175.2.5用户离开聊天室的设计185.3显示发言信息模块设计185.3.1记录的显示顺序和显示范围195.3.2聊天信息的自动刷新问题205.4显示在线用户模块设计215.5管理员管理模块设计235.6逻辑控制模块的设计276系统的测试和维护286.2jsp在线聊天室测试28结束语29谢辞30参考文献31 1前言随着Internet的普及和宽带网络技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的Web应用程序为网民之间提供了一个即时互通信息的功能和场所,这就是聊天室。聊天室在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。聊天室为网友提供了实时对话的渠道,是网络上极为流行的一种服务。聊天室适用于网上会议或闲聊的场合。聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上类似笔友的性质,却大大节省了书信往返的时间。 2可行性分析可行性分析是依据初步调查的结果作出系统开发可行性与否的结论的过程。可行性分析是从技术可行性、经济可行性和运行可行性三个方面考虑的,论证系统开发是否可行。2.1技术可行性分析为实现系统目标,需要技术保证。此系统开发所需要的技术主要有计算机硬件、软件技术、系统开发人员的水平、用户管理与使用的能力等。通过比较ASP和JSP这两种传统的动态网页制作技术,觉得JSP具有明显的优势:(1)作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点,一次写入之后,可以运行在任何具有符合Java语法结构的环境中,取代过去单一开发。而ASP主要工作环境是微软的IIS应用程序,又因Activex对象具有平台特性,所以ASP技术不能很容易的实现跨平台的WEB服务器的工作。(2)ASP仅支持组建对象模型COM,而JSP技术提供的组建都是基于JavaBean技术或JSP标签库。除此之外,JSP还有组件的可重用性,标签的可扩充性和易于维护等特点。如上的分析比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强,在现有技术条件下,能够完成功能目的。鉴于以上分析,系统开发在技术上是完全可行的。2.2经济可行性分析本系统开发在软件方面主要使用了JSP网站设计技术、网页制作三剑客、MyEclipse8.6、SQLserver2005后台数据库等软件,这些均可在网上下载获得,注册码且不涉及商业盈利问题,因此,在经济方面可行。 2.3社会因素可行性分析本系统仅作为实习项目而提出。不会违反相关法律法规。且本系统能保证在当前的操作环境下正常运行。Jsp在线聊天室,实现了一对一,一对的多,多对多的聊天,并且能共享文件,非常方便.综上所述,系统开发完全可行。 3需求分析这是一个具有最简单功能的聊天室。通过该聊天室,用户可以通过设置不同的用户名和密码以各种不同的身份进入聊天室,用户的类型有两种:普通用户和管理员。普通用户可以在聊天室中发送信息,也可以和指定的聊天对象用户私聊,还可以对发送的信息进行动作、颜色等方面的限制。管理员出了具有普通用户的功能外,还可以对在线用户和所有数据库中的用户进行设置,以便对聊天室进行维护。管理员可以把在线用户踢出聊天室,还可以删除其他管理员不希望再次进入聊天室的用户。聊天室又分为三类,用户可以根据自己的需要进入不同的聊天室进行聊天。系统还应具有自动把在线但不发言的时间超过系统设置的时间的用户踢出聊天室和的功能,还应具有当有新用户进入聊天室时,实时更新在线用户的功能。聊天室的特点就是要求能够实时显示出聊天者所谈的内容。即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言。作为用户喜欢的Web应用程序,出了具有能够实时显示出聊天者所谈论的内容外,还应具有以多种方式发布信息的功能。JSP正好可以满足聊天室的这种要求,它可以快速地创建和显示Web页面的动态内容。总的来说,本聊天室主要实现了以下的功能:l用户输入帐号,密码登录聊天室l用户选择聊房间,一共三个l把用户的聊天信息写入数据库l用户可以修改聊天语句的颜色,选择说话动作l用户聊天室可以选择聊天对象(私聊,群聊)l用户可以噢变换聊天房间l聊天室不断地对数据库进行刷新、读取l实时更新在线的用户l管理员管理在线用户,管理注册用户 4系统概要设计Jsp在线聊天室4.1系统功能模块图文件共享显示在线用户显示聊天信息聊天发言用户退出用户登陆管理员登陆普通用户登录查看用户信息踢出在线用户 4.2系统流程图开始用户登陆帐号错误帐号正确张却帐号判断提示从新输入或注册是否是否管理员选择聊天室选择聊天室显示聊天内容文件共享删除注册用户踢出在线用户文件共享选择动作选择聊天对象选择动作选择聊天对象结束是否退出 4.3数据库逻辑结构设计建立一个名为chatroom的sqlserver数据库。数据库中共使用四个表分别名为:表4-1用户信息表(userinfo)列名数据类型长度允许空nickNamevarchar50userPasswordvarchar50lastlogintimedatatime8Yeslastchatroomvarchar50Yesrolevarchar50表4-2在线用户表(onlineuser)列名数据类型长度允许空nicknamevarchar50chatroomvarchar50intcountint4Yeslastlogintimedatetime8Yeslastchattimedatetime8Yes表3-3发送信息表(msginfo)列名数据类型长度允许空chatroomvarchar50msgfromvarchar50msgtovarchar50chattimedatetime8Yesmsgcontenttext16YesIDint4chatactionvarchar100Yessecretint4Yes表3-3发送信息表(upload)列名数据类型长度允许空filenamevarchar50uluservarchar50ultimedatetime 5详细设计5详细设计及编码实现5.1系统需要解决的主要问题在规划设计聊天室时,首先要确定好谈话内容存储方式,JSP可以用三种形式实现聊天内容的存取:1)用全局变量Application和Session对象实现。这种形式速度快、效果好,但较消耗系统资源。2)用读写数据库的方法实现。这种方法相对简单,但会使数据库负担重。本系统采用的就是该方法。本设计选择了sqlserver2000数据库来存储谈话内容。3)用读写文本文件方法。该方法适合简单的聊天室。另一个设计聊天室时要考虑的因素就是聊天室成员的动态刷新。有的用户在退出聊天室时并不是从退出链接退出的,但服务器并不知道用户已经离开了。因此需要建立一个在线用户数据库,每隔一段时间检查一次,看用户从最后一次发言到现在是否超时,若是,则将该用户自动删除。5.2用户登录模块设计本系统需注册,输入用户名和密及即可。登录成功后,显示聊天室列表,用户选择想要进入的聊天室,则在相应的聊天室中显示出欢迎信息,并在当前在线用户中增加刚才登录的当前用户的名字。如图4-1所示:图5-1用户登录界面 5详细设计图5-2房间列表页面图5-3聊天室主界面系统的主界面是一个框架页面chatroom.jsp,定义如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%>chatroom<%@includefile="chkSession.jsp"%>//先定义上下型框架//在上框架中再定义左右型框架 5详细设计"name="inputFrame"marginwidth="10"marginheight="10"scrolling="no"frameborder="0"><bodybgcolor="#FFFFFF">您的浏览器不支持框架,对不起!</body>此框架页面由三部分组成:l下面的框架,实现聊天者发送信息和进入管理员对聊天室进行管理页面,打开的网页文件为:input.jsp。l上面框架的左边部分,用来显示聊天者发送的信息,打开的网页文件为:show.jsp。l上面框架的右边部分,用来显示所有在线聊天用户的信息,打开的网页文件为:userList.jsp。用户从登陆页面进入聊天室时,如果登录失败则显示出错原因。比如用户名或密码错误,或者申请已经存在的用户名,出现检正后重新输入等提示。如果该用户已在线,出现用户以在线提示,如图4-4,4-5,4-6所示。图5-4用户名或密码为空图5-5输入的用户已在聊天室中 5详细设计图5-6申请的用户名已存在实现用户登录验证的程序为chklogin.jsp,代码如下:<%@pagelanguage="java"import="java.util.*,net.chat.*"pageEncoding="UTF-8"%>聊天用户登录<%request.setCharacterEncoding("GB2312");StringnickName=request.getParameter("nickName");StringuserPassword=request.getParameter("userPassword");StringloginMsg=check.checklogin(nickName,userPassword);if(loginMsg.equals("SUCCESS_LOGIN")){session.setAttribute("_USER",nickName);session.setAttribute("_LOGIN","_SUCCESS");response.sendRedirect("chatRoomList.jsp");}elseif(loginMsg.equals("WRONG_PASSWORD")){out.println("你输入的用户名或密码错误,请检正后重新输入");if(session.getAttribute("_LOGIN")!=null)session.removeAttribute("_LOGIN");}elseif(loginMsg.equals("NONE_USER")){check.saveToDataBase(nickName,userPassword);session.setAttribute("_USER",nickName);session.setAttribute("_LOGIN","_SUCCESS");response.sendRedirect("chatRoomList.jsp");}elseif(loginMsg.equals("existed")){out.println("用户已存在!");%> 5详细设计5.2聊天者发言模块设计该模块的主要作用是实现聊天者以各种表情、各种身份、不同颜色的文字对不同的用户发送聊天信息。当用户以正确的用户名和密码登录聊天室后就可以通过聊天者发言的功能,发送聊天信息。实现发言功能的程序为input.jsp。5.2.1聊天者以默认的设置发言聊天室默认的发言设置是:l字体:黑色字体l发言对象:所有人l动作:说话用户以聊天室默认的设置发言的过程如图4-6所示。图5-7用户以聊天室默认的设置发言如果用户没有输入发言内容直接点击发送按钮,则显示相应的提示信息,如图4-8所示。图5-8发送内容为空时显示提示信息在input.jsp程序中,用于处理发言信息的程序段如下://javascript函数,检查用户发言信息是否为空 5详细设计functioncheckForm(){if(document.chatForm.msg.value==""){alert("发言不能为空!");document.chatForm.msg.focus();returnfalse;}else{document.chatForm.msg.focus();returntrue;}}5.2.2以用户自定义方式发言使用用户自定义方式发言可以定义的功能如下:l发言文字的颜色:下拉列表中选择l发言对象:在线用户列表中选择l发言的动作:下拉列表中选择1、发言文字颜色的设置用户发言前可以从颜色下拉列表中选择某种颜色后,再进行发言,网页中显示的发言内容的颜色即为用户选择的颜色,如图4-9所示。图5-9选取用户定义的颜色发言在input.jsp中,用于实现用户定义发言字体颜色的程序段为:黑色淡蓝海蓝草蓝深蓝蓝紫 5详细设计紫色紫金红紫玫红大红棕色卡其铁灰绿色橄榄灰蓝1、发言对象的设置用户发言可以从在线用户中选择某个用户后,再进行发言,将来网页中显示的发言内容是专门指向用户选择的对象,如果不选择聊天对象,则默认为对所有人说话。如图4-10所示。图5-10选取用户指定的对象发言用于实现用户定义发言对象由input.jsp,sendmsg.jsp,datavalue.jsp三个程序共同实现,程序段如下:Input.jsp中,将文本框的name属性赋值为msgTo。sendmsg.jsp中,接受text的值msgTo,如果msgTo为空值,则赋值为allpeople;如果为特定聊天对象,则赋值为该对象的名字,并将该值和发送的消息一起存到数据库中。if(chatRoom.denyUser(session.getAttribute("_USER").toString(),session.getAttribute("_CHAT_ROOM").toString())){out.println("");out.println("");return;} 5详细设计request.setCharacterEncoding("GB2312");/*接收用户输入的聊天信息以及用户选择的信息显示颜色,聊天表情,是否悄悄话,聊天对象*/StringmsgContent=(String)request.getParameter("msg");Stringaction=(String)request.getParameter("action");Stringcolor=(String)request.getParameter("color");StringmsgTo=(String)request.getParameter("msgTo");intsecret=0;//如果聊天对象为空表示对所有人说话if(msgTo==null||msgTo.equals(""))msgTo="allpeople";//如果悄悄话的选框被选中表示这个消息是悄悄话if(request.getParameter("secret")!=null){secret=1;}//message对象,用于抽象(保存)一条聊天信息message.setMsgFrom(session.getAttribute("_USER").toString());message.setChatAction(action);message.setChatRoom(session.getAttribute("_CHAT_ROOM").toString());message.setMsgTo(msgTo);message.setSecret(secret);message.setMsgContent(""+msgContent+"");//将聊天信息保存到数据库中message.saveToDataBase();datavalue.jsp中,将发言对象的信息和发言内容一起去出来,并在页面上显示出来。//将input.jsp的聊天信息输入框清空out.println("");//刷新dataValue页面,将刚才发送的信息立即显示出来out.println("");%><%//在这里我们定义了一个msgString,它保存页面显示的所有聊天信息,最后在show.jsp//中显示这个字符串StringmsgString="";try{//从聊天信息数据库中选取出最近的15条聊天信息//这里要注意查询语句的写法//selecttop30IDfrommsgInfowherechatRoom=?orderbychatTimeDESC这句查询实际//上已经查询出最新的15条信息//但是这样查询出来的信息是按时间倒顺排序的,最新的信息在最上面,而显示的时候要//把最新信息显示在聊天室下面,所以要再做次查询排序Stringsql="select*frommsgInfowhereIDin(selecttop15IDfrommsgInfowherechatRoom=?OrderbychatTimeDESC)orderbychatTime"; 5详细设计StringuserName=session.getAttribute("_USER").toString();PreparedStatementps=conn.preparedStatement(sql);ps.setString(1,session.getAttribute("_CHAT_ROOM").toString());ResultSetrs=conn.executeQuery();//下面while循环里的程序就是实现控制聊天信息显示格式的功能while(rs.next()){StringmsgFrom=rs.getString("msgFrom");//获取聊天信息发送者StringmsgTo=rs.getString("msgTo");//获取聊天信息接收者Stringaction=rs.getString("chatAction");//获取聊天表情StringmsgContent=rs.getString("msgContent");//获取聊天信息内容intsecret=rs.getInt("secret");//获取是否悄悄话//判断是否系统公告if(msgFrom.equals("systemnotice"))msgString=msgString+"
systemnotice:"+msgContent+"
";//判断是否悄悄话elseif(secret==0){//判断是否使用聊天表情if(action==null||action.equals("no"))msgString=msgString+"
"+msgFrom+"对"+msgTo+"说:"+msgContent+"
";else{msgString=msgString+"
"+msgFrom+""+action.replaceAll("B",""+msgTo+"")+msgContent+"
";}3、用户发言动作的设置和发言文字颜色的设置方法相同。所以不再赘述。5.2.3发言提交和更换房间的设计当用户定义了发言文字的颜色、发言的动作、发言的对象并输入了发言内容后,就可以点击send按钮将发言的内容提交。用户也可以点击changroom按钮更换房间。实现发言提交和更换房间的代码如下: 5详细设计5.2.4文件上传选择文件后,提交即可,后台会记录文件的名字,上传者和上传时间图5-10文件上传<%if(request.getParameter("flag")==null&&request.getParameter("flags")==null){SmartUploadsu=newSmartUpload();//上传初始化su.initialize(pageContext);//新建一个SmartUpload对象//设定上传限制//1.限制每个上传文件的最大长度。su.setMaxFileSize(10240000);//单个文件最大10M//2.限制总上传数据的长度。su.setTotalMaxFileSize(10240000);//总容量限制在20Mtry{su.upload();}catch(Exceptione){//得到当前工程目录StringfileRealPath=request.getRealPath("/");//加上临时文件夹fileRealPath=fileRealPath+"chatroom/upload/";java.io.Filemd=newjava.io.File(fileRealPath);//如果不存在,则创建.if(!md.exists())md.mkdir();//System.out.println(fileRealPath);//重命名文件Stringext=file.getFileExt();StringfileName=Attachment.reFileName()+"."+ext;//得到文件大小intfileSize=file.getSize();System.out.println(fileRealPath+fileName); 5详细设计//保存文件file.saveAs(fileRealPath+fileName);%>5.2.5用户离开聊天室的设计用户离开聊天室时,将用户从在线列表中删除。用于实现该功能的程序为logout.jsp,代码如下:<%@pageimport="java.util.*,net.chat.*"%><%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%>logout.jsp<%try{//chatRoomObj对象调用logout方法将该用户从聊天室在线用户列表中删除chatRoomObj.logout(session.getAttribute("_USER").toString());//设置session失效session.invalidate();//跳转到聊天室登录界面response.sendRedirect("login.jsp");}catch(Exceptionex){ex.printStackTrace();out.println("error!");}%>5.3显示发言信息模块设计用户输入正确的用户名和密码,进入聊天室便可进行聊天,按send按钮时,用户的发言内容、发言文字的颜色、发言的动作以及发言的对象便会一起写入msginfo表中。接下来,系统便要将发言的信息显示在浏览器中,而且还要实现自动刷新最新的聊天内容。 5详细设计5.3.1记录的显示顺序和显示范围程序将发言信息写入数据库时,记录是不断往数据表的尾部增加的。因此,用户必须知道那一句话是最新的,那一句话是在前面说的。在msginfo表中,有一个自动编号的字段ID,这个字段起着十分重要的作用。ID最大的记录是最新输入的记录,每添加一个记录,ID自动加1。因此,用户可以通过ID来选出最新的信息,并按时间的先后顺序显示在浏览器中,即把最新的信息显示在聊天室的最下面。由于用户的聊天信息不断地加入msginfo表中,数据库将会变得越来越大。为了获得较快的信息读取和现实速度,用户只需看到最新的N条聊天信息即可。本系统中N设置为15。实现这一功能的程序代码如下:Stringsql="select*frommsgInfowhereIDin(selecttop15IDfrommsgInfowherechatRoom=?OrderbychatTimeDESC)orderbychatTime";StringuserName=session.getAttribute("_USER").toString();PreparedStatementps=conn.preparedStatement(sql);ps.setString(1,session.getAttribute("_CHAT_ROOM").toString());ResultSetrs=conn.executeQuery();//下面while循环里的程序就是实现控制聊天信息显示格式的功能while(rs.next()){StringmsgFrom=rs.getString("msgFrom");//获取聊天信息发送者StringmsgTo=rs.getString("msgTo");//获取聊天信息接收者Stringaction=rs.getString("chatAction");//获取聊天表情StringmsgContent=rs.getString("msgContent");//获取聊天信息内容intsecret=rs.getInt("secret");//获取是否悄悄话//判断是否系统公告if(msgFrom.equals("systemnotice"))msgString=msgString+"
systemnotice:"+msgContent+"
";//判断是否悄悄话elseif(secret==0){//判断是否使用聊天表情if(action==null||action.equals("no"))msgString=msgString+"
"+msgFrom+"对"+msgTo+"说:"+msgContent+"
";elsemsgString=msgString+"
"+msgFrom+""+action.replaceAll("B",""+msgTo+"")+msgContent+"
";}//如果是悄悄话只在发送者和接收者的页面中显示 5详细设计elseif(msgFrom.equals(userName)||msgTo.equals(userName)){if(action==null||action.equals("no"))msgString=msgString+"
[悄悄话]"+msgFrom+"对"+msgTo+"说:"+msgContent+"
";elsemsgString=msgString+"
[悄悄话]"+msgFrom+""+action.replaceAll("B",""+msgTo+"")+msgContent+"
";}}5.3.2聊天信息的自动刷新问题实现聊天信息自动刷新功能的代码如下://javascript函数,每融2000毫秒(2秒)刷新一次页面functionGetData(){vartimeoutid=setTimeout("window.location.reload()",2000)}本设计中设置页面的自动刷新的时间为2s,body属性设置,页面载入时就自动执行。当用户输入聊天信息并点击send按钮后,在短暂的时间延迟就可以看到发言的内容,如图4-11所示。 5详细设计图4-10显示聊天者的发言信息5.4显示在线用户模块设计每当一个新的用户进入聊天室后,系统应当将该用户显示在在线用户列表中,如图4-11所示。图4-11用户登陆后线列表的显示 5详细设计实现显示在线用户功能的程序为userlist.jsp,代码如下:<%@pagelanguage="java"contentType="text/html;charset=GB2312"pageEncoding="GB2312"%><%@includefile="chkSession.jsp"%><%@pageimport="java.sql.*"%>//javascript函数,实现用户选择特定聊天用户发送消息functionPerformSubmit(user){parent.inputFrame.chatForm.msgTo.value=user;returnfalse;}<%//检查当前用户是否已经被踢出聊天室,如果已经被踢出聊天室后面程序不再执行if(chatRoomObj.denyUser(session.getAttribute("_USER").toString(),session.getAttribute("_CHAT_ROOM").toString())){out.println("");out.println("");//response.sendRedirect("chatRoomList.jsp");return;}StringuserName=session.getAttribute("_USER").toString();//断用户是否已经和聊天室断开连接if(userName==null){out.println("");out.println("");return;}StringchatRoom=(String)session.getAttribute("_CHAT_ROOM").toString();%> 5详细设计onlineuser[<%=list.countUser(chatRoom)%>]allpeople
<%try{//获取当前聊天房间中的所有用户列表Stringsql="select*fromonlineUserwherechatRoom=""+session.getAttribute("_CHAT_ROOM")+""";ResultSetrs=conn.executeQuery(sql);while(rs.next()){%>[")><%=rs.getString("nickName")%>]
<%}}catch(Exceptionex){out.println("数据库维护");}finally{}%>5.5管理员管理模块设计管理员具有将在线发言不当的用户踢出聊天室和删除数据库中已注册用户的权限。该功能由程序advanced.jsp来实现,如图4-12所示。 5详细设计图4-12管理员管理界面代码如下:<%@pagelanguage="java"import="java.sql.*"pageEncoding="UTF-8"%>高级管理页面//javascript函数,实现踢人功能functionkick(){document.form1.action="kick.jsp";document.form1.submit();}//javascript函数,实现删除用户功能functiondel(){document.form1.action="delete.jsp";document.form1.submit();}//javascript函数,实现列出所有注册会员列表functionlist(){document.location.href="advanced.jsp?list=true";}<% 5详细设计try{//检查用户是否管理员用户,如果是管理员用户才执行下面代码if(chatRoom.checkAdmin(session.getAttribute("_USER").toString())){%><%if(request.getParameter("list")==null){%><%//如果不是列出所有注册用户列表,则列出当前聊天房间所有在线用户列表//Stringsql="selectonlineUser.nickNameAsnickName,lastChatTime,lastLoginTimefromuserInfo,onlineUserwhereuserInfo.nickName=onlineUser.nickNameandchatRoom=""+session.getAttribute("_CHAT_ROOM").toString()+""";Stringsql="selectnickName,lastChatTime,lastLoginTimefromonlineUserwherechatRoom=""+session.getAttribute("_CHAT_ROOM").toString()+""";ResultSetrs=conn.executeQuery(sql);while(rs.next()){%><%}%><%}else{%><%//管理选择列出所有用户列表,按登录时间顺序排序Stringsql="selectnickName,lastLoginTimefromuserInfoorderbylastLoginTime";ResultSetrs=conn.executeQuery(sql);while(rs.next()){StringnickName=rs.getString("nickName");//系统公告是系统用户,在这里不允许删除,不允许查看if(!nickName.equals("系统公告")){%><%}}%>
用户最后发言时间最近登录时间
"><%=rs.getString("nickName")%><%=rs.getString("lastChatTime")!=null?rs.getString("lastChatTime"):"没有发言"%><%=rs.getString("lastLoginTime")%> 5详细设计
用户最近登录时间
"><%=rs.getString("nickName")%><%=rs.getString("lastLoginTime")%> 5详细设计
<%}}else{//如果不是管理员用户弹出无权限对话框,并关闭页面out.println("");}}catch(Exceptionex){out.println("系统维护");}finally{conn.closeDB();}%>
5详细设计5.6逻辑控制模块的设计系统设计中一共用到五个逻辑控制模块,分别是Baseconn.java:用来连接和关闭数据库,在数据库中实现查找、插入、删除等操作。Chatroom.java:用来实现管理员对聊天室系统的管理和维护。chatroomlist.java:用来把新的在线用户添加到数据库和统计聊天室人数。Checklogin.java:用来检查用户信息,保存用户登录名和密码。Message.java:用来把聊天信息保存在数据库中。将这些java文件编译成class文件,便可以在jsp文件中调用来执行相应的功能。 5详细设计6系统的测试和维护对系统测试主要包括一下内容:(1)功能测试:连接测试、表单测试、数据库测试;(2)可用性测试:导航测试、图形测试、内容测试、整体界面测试;(3)兼容性测试:平台测试;(4)安全测试。6.1jsp在线聊天室测试(1)功能测试:经过测试公司办公自动化系统所有链接均按要求连接到了相应的页面,所链接的页面均存在,对表单进行提交测试,当输入错误信息或细腻系格式错误时,系统就会转到相应页面,保证了提交操作的完整性和提交给服务器信息的正确性;通过用户发布和查看公文、浏览、查看员工信息等操作对数据库信息的存入和读取进行测试,数据库运行正常。(2)可用性测试:本网站系统导航结构清晰、目的明确,菜单、连接的风格:页面字体使用CSS,确保了风格的一致;网站整体界面布局合理,颜色搭配协调,所以可用性良好。(3)兼容性测试:在安装了Windows的客户端上进行测试,系统能够正常运行;在安装了腾讯TT、MaxthonBrowser等不同浏览器的客户端进行测试,系统中的JavaScript均可正常运行,框架和层次结构风格差别不大,所以jsp在线聊天室系统系统兼容性较好。(4)安全测试:本系统后台采用先验证,后登陆的方式,进行了有效和无效的用户名和密码测试,测试到不可以不登陆而直接对某个页面进行操作等,所以,jsp在线聊天室系统安全性良好。 5详细设计结束语通过这次的毕业设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。同时,在软件开发方面也累积了不少经验,特别是在对软件开发工具不很熟悉的情况下,通过自己的学习和导师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解。这次毕业设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。在学与做的过程中自身的努力以及相关图书资料的帮助,逐渐熟悉了JSP在数据库方面的应用知识。程序开发的一般过程和对数据库知识的进一步的了解,在这个快速发展的当代社会里,数据库已经普遍应用在各个领域。在这次的毕业设计中我学习到不少的数据库知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题,甚至错误。恳请各位老师批评指正,以使我在以后的工作和实践中加以改进和提高。 5详细设计谢辞在整个毕业设计中,我得到了指导老师陈卫卫老师的热心指导和帮助。我衷心的感谢尉鹏博老师和姚海军老师两位老师。我完成这个项目,是在工作的空暇时间做的。所以历时三个多月,在实习的这段日子,我主要学习了Java在JSP方面的广大应用,还有JavaScript,而且把这些元素也融入到我的项目中。项目之所以能顺利的完成,我要感谢两位老师,她对我提出了很多精辟的思路和解决方案。确保了项目的成功。再次感谢我的两位老师以及所有帮助过我学习的老师,他们为我提供了发展的舞台,为我的项目提出了很多不错的意见。谢谢老师! 5详细设计参考文献[1]杨昭.JSP课程设计案例精编[M].北京:中国水利水电出版社,2005.[2]武延军,黄飞跃.精通JSP编程技术[M].北京:人民邮电出版社,2001.[3]赛奎春.JSP工程应用与项目实践[M].北京:机械工业出版社,2005.[4]贾素玲,王强.JSP应用开发技术[M].北京:清华大学出版社,2008.[5]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006. [6]刘瑞新.ASP动态网站开发毕业设计指导及实例[M].北京:机械工业出版社,2005. 5详细设计系毕业设计(论文)教师指导记录表指导教师职称教研室学生姓名题目专业班级第一次指导指导时间:指导内容:第二次指导指导时间:指导内容:第三次指导指导时间:指导内容: 5详细设计西安航空职业技术学院毕业设计(论文)审查意见书指导教师对学生所完成的题目为的毕业设计(论文)进行情况、完成质量的审查意见:成绩:指导教师:年月日西安航空职业技术学院 5详细设计毕业设计(论文)评阅意见书评阅人对学生所完成的题目为的毕业设计(论文)评阅意见为:成绩:评阅人:年月日西安航空职业技术学院毕业设计(论文)答辩结果 5详细设计毕业设计(论文)答辩委员会对学生所完成的题目为的毕业设计(论文)及答辩评语为:经答辩委员会研究,确定成绩为:毕业设计(论文)答辩委员会主任:答辩委员会委员:年月日该生毕业设计(论文)最终成绩评定:审阅成绩(权重0.4)评阅成绩(权重0.4)答辩成绩(权重0.2)最终成绩'