JavaWeb课题设计报告_第1页
JavaWeb课题设计报告_第2页
JavaWeb课题设计报告_第3页
JavaWeb课题设计报告_第4页
JavaWeb课题设计报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

洛 阳 理 工 学 院课 程 设 计(论 文) 姓 名 系 (部) 专 业 学 号 完成时间 第一部分目录1 引 言I1.1课程设计选题I1.2课程设计的目的I1.3本选题的设计背景I2需求分析I2.1论坛功能需求I2.2 系统的开发运行环境II3 总体设计II3.1 论坛系统体系结构设计II3.2论坛系统功能模块设计II3.3论坛系统主要Jsp页面设计III4数据库设计IV4.1数据表设计IV5 详细设计VI5.1 登录界面模块VI5.2论坛用户操作界面模块VII5.3管理员操作界面模块IX参 考 文 献XI1 引 言1.1课程设计选题技术论坛系统1.2课程设计的目的使学生在充分理解Java Web应用程序设计课程知识点的基础上,能初步掌握Java Web程序开发语言、开发流程;能利用Java Web程序设计原理及综合运用HTML、JSP以及JavaScript等Java Web设计语言实现一个完善的Java Web系统。1.3本选题的设计背景BBS论坛是一种比较好的交流平台,它能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。 鉴于BBS的这些优点,又加之制作BBS的一些基本编程知识曾学习过,如Java大学实用教程、Java Web应用程序设计以MyEclipse6.0基础教程,考虑到个人喜好及实现系统的难度,所以最后选择Java Web应用程序设计BBS论坛制作。而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。我所用的开发软件是MyEclipse6.5,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的一款实用版本;数据库软件是Microsoft Office Access 2007,它是一款容易进行中小量数据存储开发的中小型数据库软件;服务器是Tomcat6.5,它也是一款当前比较流行的软件,主要用于网络服务器的开发。无论是软件还是技术方面都能实现此次课题所要求完成的功能的设计。2需求分析2.1论坛功能需求用户注册及登录:进入登录页面后,对于第一次登录的用户来说,首先需要注册,单击“立即注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。注意:若用户名或者密码为空时,点击了“登录”按钮,则系统提示你的用户名或密码为空,请重新输入,点击对话框的“返回”链接,即可重新回到登录界面。用户发帖:已登录到论坛主页面的用户可以查看用户的基本信息、更改密码、帖子查询、进入某个论坛进行发帖。用户回帖:已登录用户可以跟在其它人帖子后回复。管理员功能:管理员成功登录到操作界面后可查看用户的信息、可增添或者删除板块论坛、可注销已注册的用户、可查询和删除用户的帖子。查找功能:成功登录的用户和管理员能够根据帖子主题或者用户查找相关帖子。2.2 系统的开发运行环境本系统开发平台: MyEclipse6.5、Microsoft Office Access 2007数据库管理软件、Java Web开发语言本系统运行环境: windows 7、Tomcat6.5、JDK1.63 总体设计3.1 论坛系统体系结构设计登陆界面:该界面可以选择使用者的身份,例如管理员、普通论坛用户,分别进入不同的链接。不同的身份登录有不同的操作界面和功能权限。不同的身份在登陆界面的用户名及密码框中正确的输入即可登录。用户系统界面:能够提供对论坛用户基本信息的查询、密码修改等功能、帖子发表、帖子查询、帖子回复。管理员系统界面:能够提供对论坛用户删除、论坛用户基本信息查询、可增添或者删除板块论坛、可查询和删除用户的帖子等功能。3.2论坛系统功能模块设计界面登录功能:系统提供不同的用户登录(例如普通论坛用户、管理员),用户在登录界面正确的输入登录名和登录密码后,即可进入到对应的操作界面完成系统提供的功能。用户查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息,例如查询所有论坛用户信息、根据用户、帖子主题、时间范围查询帖子信息、论坛的统计信息。用户发帖和回帖功能:用户成功进入论坛主页,然后可在各个论坛里发表帖子并可回复其他用户的帖子。管理员权限功能:成功进入管理员界面后可对已注册用户进行管理(例如删除用户)、用户信息查询、论坛版面的增添和删除、可查询用户的帖子及删除用户帖子。用户密码取回功能:在用户忘记密码的情况下提供用户寻回密码的功能,在登录界面单击“取回密码”链接到相应的界面,然后输入信息,如果输入的信息匹配则能找回密码,否则提示错误信息。3.3论坛系统主要Jsp页面设计系统Jsp页面表格一览bbsadd.jsp用户发表帖子页面bbsaddre.jsp用户浏览帖子和回复帖子页面bbslist.jsp论坛版主浏览、查询、删除帖子页面boardmanager.jsp管理员管理用户和论坛版块页面index1.jsp用户登录论坛进行操作页面login.jsp用户和管理员登陆界面query.jsp帖子查询页面registry.jsp用户注册页面userinfo.jsp用户信息修改页面usermanager.jsp用户管理页面lostpass.jsp用户密码取回页面论坛系统功能模块图技术论坛系统登录用户登录管理员登录用户信息用户信息查询帖子查询论坛信息统计论坛信息修改增加论坛版块查询用户信息删除用户信息删除用户帖子用户信息修改密码修改论坛版块根据主题查询根据用户查询发帖回帖密码取回4数据库设计4.1数据表设计根据本BBS技术论坛功能的要求以及功能模块的划分,其中涉及到的信息数据可存放在四张表中,它们分别是:用户信息表user表、发表帖子和回复帖子的信息表bbs表、管理员登录信息表,数据库表的具体设计如下所示:4.1.1用户信息表user表用户信息表user表包括12个字段:userid、username、usersex userpassword、useremail、userhomepage、hpname、userbirthday、comefrom、userclass、usersign、dateandtime。user表的属性如图1-1所示: (图1-1)4.1.2论坛版块信息表board表论坛版块信息表board表包括8个字段:boardid、boardname、boardmaster、masterpwd、masterword、masteremail、boardhits、boardtopics。board表的属性如图1-2所示: (图1-2)4.1.3管理员登录信息表admin表管理员登录信息表admin表包括2个字段:adminname、adminpwd。Admin表的属性如图1-3所示: (图1-3)4.1.4论坛帖子发表和帖子回复信息表bbs表论坛帖子发表和帖子回复信息表bbs表包括14个字段:bbsid、parentid、boardid、child、username、useremail、userip、expression、usersign、bbstopic、bbscontent、dateandtime、bbshits、length。bbs表的属性如图1-4所示: (图1-4)5 详细设计5.1 登录界面模块5.1.1.功能设计登录界面提供普通论坛用户和管理员登录到不同界面进行不同的操作,只要在登录界面正确的输入登录名和登录密码即可登录到相应的操作界面。5.1.2.登录界面测试如图1-5所示: (图1-5)5.1.3用户注册界面测试如图1-6所示: (图1-6)5.1.4寻回用户密码测试如图1-7所示: (图1-7)5.2论坛用户操作界面模块5.2.1.功能设计论坛用户操作界面下提供给用户的功能: 用户单击“用户信息”链接,在出现的页面中可进行密码的修改、用户信息查询、用户信息修改;单击“帖子查询”链接,在出现的页面中可根据主题、用户、时间范围查询帖子;单击“论坛信息”链接,在出现的页面中显示了论坛的统计信息;单击某个论坛版块链接,可在出现的版块页面中进行帖子的发表、帖子的回复、帖子的查询。5.2.1.论坛主界面设计效果如图1-8所示: (图1-8)5.2.3用户信息功能测试如图1-9所示: (图1-9)5.2.4帖子查询功能测试如图1-10所示: (图1-10)5.2.5帖子发表和帖子回复测试如图1-11、1-12所示: (图1-11) (图1-12) 5.3管理员操作界面模块5.3.1功能设计管理员操作界面下提供给管理员的功能:注册用户的管理(用户的查询、用户的删除)、论坛版块的添加、论坛版块信息的修改和删除、论坛帖子的查询、论坛帖子的删除等功能。 5.3.2界面设计效果如图1-13所示: (图1-13)5.3.3注册用户管理测试如图1-14、1-15所示: (图1-14) (图1-15)5.3.4论坛帖子删除测试如图1-16所示: (图1-16)第二部分目 录第一章 绪论11.1系统现状11.2国内外主要研究成果1第二章 系统开发环境和关键技术42.1系统的开发环境42.2 Application对象42.3 Ajax技术52.4 监控用户在线状态62.5 JSP技术6第三章 系统分析与设计93.1系统分析93.1.1聊天室功能需求分析93.1.2聊天室功能性能分析93.2系统运行环境93.3系统预览和项目流程图10第四章 系统的实现124.1用户登录模块124.2聊天室主体功能模块134.3实时获取并显示在线人员列表144.4实现用户发言154.5实时显示聊天内容194.6退出聊天室20参考文献24第一章 绪论1.1系统现状在人们的生活中,信息技术的飞速发展正在发生深刻变化。人与人之间的对话是不再局限于面对面,网上聊天室提供了信息交流的另一个地方。传统的聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现“白屏”的现象,这对良好的用户体验是非常不利的。而使用Ajax技术开发的聊天室,不仅可以解决页面刷新带来白屏的问题,也减少了对服务器和网络传输的负载。随着互联网应用的普及,web应用以其良好的扩展性、易于部署、维护方便等优点逐渐成为软件开发的主流。早期的Web应用采用的是同步交互过程,即用户首先向Web服务器提交一个请求或行为呼叫,服务器接收到客户请求后执行相应处理操作,最后向用户返回处理结果。服务器在处理请求时,用户处于等待状态,有时如果超过了服务器响应时间,甚至返回“页面不可用”等提示。另外,当我们只想改变页面的部分数据时,用户的请求会导致服务器重新返回整个页面内容,包括那些没有改变的数据,这不但增加了网络传输的数据量,还影响了客户端的响应时间,为什么我们不能“按需”获取数据呢?Ajax技术可以很好的解决上述web应用中存在的问题。Ajax技术是Web2.0的核心之一,本质上是一种RIA(RichIllternet Application)技术。RIA是指具有高度互动性和丰富用户体验的网络应用程序,它既具有消息确认、无刷新页面之下提供快捷的界面响应、拖放式等桌面应用程序的特点,同时又具有部署简单、跨平台等Web应用程序的特点。Ajax技术提供了客户端与服务器异步通信的能力,从而使用户从请求一响应一再请求的循环中解脱出来,同时降低了网络传输的数据量,提高了客户端的响应速度,改善了用户使用体验,使得web应用可以接近甚至达到类似“桌面应用”的效果。而Ajax有上述优势,例如Google Suggest,Gmail,Google Map等等交互程序中都使用了异步通讯技术。不知不觉中,Ajax应用程序占据了整个网络的每一个角落。纵观所有的应用程序,更好的用户体验是其的共同目标,在浏览器中实现桌面用户界面体验是Web开发的一种趋势。Ajax技术从谷歌到IBM,甲骨文,雅虎,BEA系统公司,红帽,Novell公司获得业界众多的IT巨头的支持,其快速发展是值得期待的。技术创新和标准化是Ajax技术发展的必由之路,而W3C已成立了工作小组,专门从事Ajax的规范发展工作。 1.2国内外主要研究成果Ajax技术的精髓是用异步交互替代了传统的同步交互,所以当用户操作时间大于服务器响应时间的时候,使用Ajax的效果非常明显。而当程序性能的瓶颈在于服务器响应时间的时候,Ajax无法解决程序运行缓慢的问题。因此,Ajax是更适合在网络上的互动频繁轻量级的应用程序。在Ajax开发的应用程序中,Google公司成功将Ajax技术应用到他们的商业产品。Google地图和Google Suggest都应用了这项技术。当用户使用谷歌地图查看地图(包括地图的缩放和平移地图),并没有提交任何请求到服务器,你就可以浏览到地图的各个部分。在这里,它是Ajax技术的应用,使得地图是不刷新的方式,但每个显示原始数据的基础上以增量方式显示。在这种方式下,用户觉得就像是在自己的计算机上查看本地的地图。微软也在积极开发Ajax应用程序:它将Ajax技术应用到的MSN Space上面。当用户使用MSN Space提交回复评论时,浏览器会暂时停顿,然后刷新显示用户提交的评论,这是应用了Ajax的原理。目前,Ajax应用最普遍的领域是GIS-Map方面。GIS的区域搜索强调快速响应,Ajax 的特点正好符合这种要求。在应用Ajax技术开发过程当中,处于核心位置的Ajax引擎实际上是一些复杂的JavaScript程序。 随着网络应用和界面表现的复杂化,使用面向过程的JavaScript 语言描述表现逻辑将会变得很困难。同时, JavaScript的兼容性和调试都会成为使用Ajax技术的一个障碍。为了解决这些问题,开发人员已经开发出了一些基于Ajax技术的框架,方便了开发人员使用,有利于Ajax 技术的进一步推广。当然,任何技术都是有局限性的,Ajax也不例外。Ajax更新页面无需刷新重载,这也使传统的一些用户交互行为变得不可用,如后退、前进和刷新等。另外,移动设备(如手机、PDA等)现在还不能很好的支持Ajax,Ajax 对流媒体的支持也没有Java Applet和Flash这样成熟的技术好。 因此,一些辅助的平台和插件的开发也将是Ajax技术应用当中重要的一部分。Ajax把大量的运算从服务器转移到了客户端浏览器,这意味着浏览器将承受更大的负担,而不再是简单的文档显示功能。 聊天室作为一个能够吸引人气的栏目,在现代网络应用中随处可见。它的作用是给不同的用户提供一个交流信息的场所。用户在聊天室中可以发布信息,就如同所有用户都在一个个真正室内聊天一样。 传统的聊天室程序一般设置在客户端的网页自动刷新。刷新在这样的数据会带来一些缺点,例如:每次刷新服务器应该重新获取数据,大大提高了服务器上的负载,此刷新过程正在进行,这将是非常严重的影响服务器的性能;每次刷新过程中会产生大量无用数据,不断刷新页面,用户在客户端方面,将导致屏幕闪烁。解决屏幕闪动最重要的一条原则就是,将改动的地方显示到客户端,而那些不需要改动的地方则尽量不要让用户感觉到变化。一个更好的解决办法是使用Ajax技术的无刷新聊天室应用。现在的聊天室通过四个主要功能模块实现了聊天室中用户登录、注销、环境设置、发送消息、读取消息和查看在线用户列表等。聊天室系统为用户提供了聊天场所,操作员可对后台网站的风格、广告链接等进行设置;用户可以根据个人的习惯选择字体、文字颜色和表情等;前台聊天室具有私聊的功能,私聊的内容仅供私聊双方查看;聊天者可自己手动清除聊天内容。操作员可通过客户端处理模块获取界面元素从而得到聊天内容或与服务器交互更新客户端页面响应用户事件。服务器端响应模块可提供聊天室界面元素信息获得提交数据。第二章 系统开发环境和关键技术2.1系统的开发环境MyEclipse Java如图1-1系统开发环境。图1-1系统开发环境2.2 Application对象Application对象是一个环境上下文(context)对象,用于保存应用程序中的所有公有数据,服务器启动并且自动创建Application对象以后,只要没有关闭服务器,Application对象将一直存在,并且可以被所有用户共享。Application对象为JSP提供的内置对象,可以直接使用,但在servlet中,需要通过以下代码来获取该对象的实例,才可以使用该对象。 ServletContext application=getServletContext();Application对象提供了很多方法,我的设计中,只使用了setAttribute()和getAttribute()方法。 首先来介绍setAttribute()方法,该方法用于将一个对象绑定到一个属性上,该属性在整个Servlet上下文中都适用。setAttribute()方法的语法格式如下;Application. setAttribute(String name,Object object);参数说明:name:用于指定的一个属性名该属性在整个Servlet上下文都适用。object:用于指定属性值。如本设计中的,设置保存聊天信的Application对象的属性的具体代码如下:application。setAttribute(“message”.sourceMessage);下面我们再来介绍getAttribute()方法,该方法用于返回Application对象的指定属性的值。如果不存在该属性,则返回null。getAttribute()方法的基本语法如下:Application。getAttribute(String name);参数说明:Name:用于指定一个属性名。本设计中,设置获取聊天信息的Application对象的属性的具体代码如下:StringsourceMessage=application.getAttribute(“message”).toString();2.3 Ajax技术Ajax是一种创建交互式网页的web开发技术。Ajax的一个非常成功的案例就是Google,当用户在Google的搜索输入框中输入关键字的时候。他会提示与关键字相关的另一些关键字。用户可以对自己喜欢的一些关键字进行选择,这样既方便了用户定位自己的需要,又可以很好的引导搜索结果。在Ajax应用中,页面中用户的操作将通过Ajax引擎与服务器进行通信,然后将返回结果提交给客户端页面的Ajax引擎,而有Ajax引擎决定这些数据插入到页面的任何位置。 Ajax的最大特点的就是很好的用户体验,大多数使用Ajax技术的web应用程序,比同类没有使用的web应用程序的用户体验要好的多,尽管他们都能完成相类似的功能。例如,一个普通的用户注册页面,如果用户希望知道注册的用户名是否已经注册过了,那只能等提交表单到服务器以后并重新来到一个新的页面,才知道用户名是否可用,这种情况每次单击按钮都会导致几秒钟的延迟和屏幕刷新,但事实上页面改动的地方却只有很少一部分,Ajax正在打破这种状况,是页面再无刷新的情况下,完成某些与服务器的交互功能。大大提高了用户的体验感。 2,Ajax不是单一的技术,而是四种技术的集合,有javascript ,css,Dom XMLHttpRequestAjax程序是用javascript语言写成的。Ajax程序可以使用CSS来控制页面的样式。DOM,指的是文本对象模型,它是一个web页面的对象模型,可以用javascript来操作的页面结构。XMLHttpRequest对象用来在后台向服务器端发送请求,数据的格式可以使任何的文本格式,如XML、纯文本。他也是Ajax进行异步通信的 关键元素。 这四种技术各司其职,其中javascript是其他三中的粘合剂,javascript可以通过修改DOM的结构来改变界面,或者完全改变DOM的结构来重新绘制用户界面;XMLHttpRequest对象则用来与服务器进行异步通信,javascript也正是通过控制他来提交请求和获取最新数据的。Ajax也会大量使用DHTML进行编程,并且它与服务器端的异步通信能力使得一个web页面的使用寿命大大增长,用户交互性大大增强了。Ajax技术的优缺点:作为富客户端技术之一的Ajax的最大优点,就是再不更新整个页面的前提下维护数据。这使得web应用程序能够更为迅捷的回应用户动作,并避免了在网络上发送那些没有改变过的信息。与其他富客户端技术不同,Ajax不需要任何浏览器插件,直接通过浏览器内置的javascript控制浏览器的内容和行为即可。而其他的富客户端技术往往需要安装插件,并且以一个单独的进程来运行这些富客户端,一旦处理不当,很可能造成速度很慢的后果。缺点:就是Ajax在不同的浏览器运行时,由于各个浏览器之间的差异,是的开发者在众多不同的平台和浏览器上经过严格的测试,但是随着Ajax技术的成熟,一些简化跨平台的Ajax程序库,也相继问世,程序员可以使用这些运行库进行Ajax的开发,也不担心Ajax的跨平台性。还有一个缺点就是;他动态改变的内容无法保存到本地或通过收藏夹来保存。这其实是因为Ajax改变浏览器的内容和行为,往往是通过修改网页的DOM和CSS来控制的,这些新消息都仅仅在浏览器窗口没关之前存在于内存里。Ajax更适合有少量页面内容需要改变的客户端编程,如果页面的大多说内容都需要改变的时候,还是建议使用让整个页面刷新的方式较好。2.4 监控用户在线状态 在聊天室程序中需要实时监控用户在线状态,当用户非正常退出时(如:没有单击“退出聊天室”按钮,也没有单击窗口的关闭“按钮”,而是直接将页面转向其他网站),能够保证将该用户从列表中删除。可以应用Servlet中的监听器(HttpBingListener接口)实现此效果。2.5 JSP技术JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。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代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的强势 (1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 JSP技术的弱势 (1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。 (2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。 JSP六种内置对象: request, response, out, session, application, config, pagecontext, page, exception. 一.request对象: 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。 二.response对象: 对客户的请求做出动态的响应,向客户端发送数据。 三session对象 1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。 2session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。 四aplication对象 1什么是application: 服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。 2application对象常用方法: (1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。 (2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。 五out对象 out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。 第三章 系统分析与设计3.1系统分析3.1.1聊天室功能需求分析用户登录,包括用户是否在线实时显示在线人员列表及在线人数用户发言,包括显示聊天内容和滚屏显示聊天信息安全退出聊天室,包括单击关闭按钮退出聊天室。3.1.2聊天室功能性能分析普通用户能够登录的聊天室进行文本的聊天,能够方便的实现公共交谈、选择颜色、添加文字表情等。可以用Ajax实现无刷新操作。3.2系统运行环境在开发聊天室系统时,需要具备下面的软件环境:服务器端:操作系统:WindowsXP。Web服务器:Tomcat6.0。Java开发包:MyEclipse。客户器端:IE6.0。3.3项目流程图和系统预览(1)项目流程图聊天室的系统流程,如图3-1图3-1项目流程图(2)为了是使大家对本模块有一定的了解,下面将给出聊天室的主界面预览效果图。聊天室的登录界面如图3-2登录界面.输入用户名,然后单击“进入”按钮,将进入聊天室的主界面,如图3-3主界面。图3-2登录界面图3-3主界面第四章 系统的实现4.1用户登录模块当用户访问聊天室时,首先进入的是登录聊天室页面。在该页面中,用户输入自己喜欢的用户名,如图4-1登录界面,单击进入按钮,系统将判断输入的用户名是否被占用,如果被占用将给出提示。图4-1登录界面聊天室function check()if(form1.username.value=)alert(请输入用户名!);form1.username.focus();return false;else if(form1.username.value=)alert(请不要输入非法字符!);form1.username.focus();return false;  用户名:4.2聊天室主体功能模块在用户登录页面中输入用户名,单击“进入”按钮即可进去聊天室的主界面。如图4-2聊天室主体功能模块,在页面中包括页面头部、在线人员列表区、聊天内容显示区和用户发言区4部分。图4-2聊天室主体功能模块4.3实时获取并显示在线人员列表在设计聊天室程序时,为了让用户及时了解在线用户,并与其他用户交流,需要提供实时获取并显示在线人员列表的功能。这小节介绍聊天室的主界面中,左侧显示在线人员列表及在线人数。如图4-3在线人员列表图。图4-3在线人员列表图为了实时显示在线人员列表,这里应用了Ajax技术。实现实时显示在线人员列表的具体步骤如下: 1、编写自定义的JavaScript函数showOnline(),用于实例化Ajax对象,showOline()函数的具体代码如下:function showOnline()varloader=newnet.AjaxRequest(online.jsp?nocache=+new Date().getTime(),deal_online,onerror,GET);其中?nocache=+new Date().getTime()的用处是更新在线人员列表。2、Ajax进行异步请求目标的URL地址是onlin.jsp,即JSP文件。在该文件中,主要是将保存在集合类中的在线人员列表显示到页面。Online.jsp页面的代码如下:欢迎来到心之语聊天室!所有人 0)String username=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论