版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-PAGE . z. . - . -可修- .洛 阳 理 工 学 院课 程 设 计论 文 姓 名 系 部专 业 学 号 完成时间第一局部目录 TOC o 1-3 h z HYPERLINK l _Toc343796149 1 引言 PAGEREF _Toc343796149 h I HYPERLINK l _Toc343796150 1.1课程设计选题 PAGEREF _Toc343796150 h I HYPERLINK l _Toc343796151 1.2课程设计的目的 PAGEREF _Toc343796151 h I HYPERLINK l _Toc343796152 1.3本选题的
2、设计背景 PAGEREF _Toc343796152 h I HYPERLINK l _Toc343796153 2需求分析 PAGEREF _Toc343796153 h I HYPERLINK l _Toc343796154 2.1论坛功能需求 PAGEREF _Toc343796154 h I HYPERLINK l _Toc343796155 2.2 系统的开发运行环境 PAGEREF _Toc343796155 h II HYPERLINK l _Toc343796156 3 总体设计 PAGEREF _Toc343796156 h II HYPERLINK l _Toc343796
3、157 3.1 论坛系统体系构造设计 PAGEREF _Toc343796157 h II HYPERLINK l _Toc343796158 3.2论坛系统功能模块设计 PAGEREF _Toc343796158 h II HYPERLINK l _Toc343796159 3.3论坛系统主要Jsp页面设计 PAGEREF _Toc343796159 h III HYPERLINK l _Toc343796160 4数据库设计 PAGEREF _Toc343796160 h IV HYPERLINK l _Toc343796161 4.1数据表设计 PAGEREF _Toc343796161
4、 h IV HYPERLINK l _Toc343796162 5 详细设计 PAGEREF _Toc343796162 h VI HYPERLINK l _Toc343796163 5.1 登录界面模块 PAGEREF _Toc343796163 h VI HYPERLINK l _Toc343796164 5.2论坛用户操作界面模块 PAGEREF _Toc343796164 h VII HYPERLINK l _Toc343796165 5.3管理员操作界面模块 PAGEREF _Toc343796165 h I* HYPERLINK l _Toc343796167 参考文献 PAGER
5、EF _Toc343796167 h *I-. z.-. z. . - . -可修- .引 言1.1课程设计选题技术论坛系统1.2课程设计的目的使学生在充分理解Java Web应用程序设计课程知识点的根底上,能初步掌握Java Web程序开发语言、开发流程;能利用Java Web程序设计原理及综合运用HTML、JSP以及JavaScript等Java Web设计语言实现一个完善的Java Web系统。1.3本选题的设计背景BBS论坛是一种比拟好的交流平台,它能方便人们进展即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。
6、 鉴于BBS的这些优点,又加之制作BBS的一些根本编程知识曾学习过,如Java大学实用教程、Java Web应用程序设计以MyEclipse6.0根底教程,考虑到个人喜好及实现系统的难度,所以最后选择Java Web应用程序设计BBS论坛制作。而在这里,我将采用基于JSP网页技术的方法进展简单的BBS论坛制作。我所用的开发软件是MyEclipse6.5,它是一款可以做根底Java工程开发的工具;JDK1.6,当前进展Java开发的一款实用版本;数据库软件是Microsoft Office Access 2007,它是一款容易进展中小量数据存储开发的中小型数据库软件;效劳器是Tomcat6.5,
7、它也是一款当前比拟流行的软件,主要用于网络效劳器的开发。无论是软件还是技术方面都能实现此次课题所要求完成的功能的设计。2需求分析2.1论坛功能需求用户注册及登录:进入登录页面后,对于第一次登录的用户来说,首先需要注册,单击立即注册按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击登录按钮,系统即将用户名和密码发送到网络效劳器上,与保存在效劳器数据库中的信息进展核对。假设核对正确,则进入帖子浏览的界面,假设不正确,则重新返回登录界面。注意:假设用户名或者密码为空时,点击了登录按钮,则系统提示你的用户名或密码为空,请重新输入,点击对话框的返回,即可重新回到登
8、录界面。用户发帖:已登录到论坛主页面的用户可以查看用户的根本信息、更改密码、帖子查询、进入*个论坛进展发帖。用户回帖:已登录用户可以跟在其它人帖子后回复。管理员功能:管理员成功登录到操作界面后可查看用户的信息、可增添或者删除板块论坛、可注销已注册的用户、可查询和删除用户的帖子。查找功能:成功登录的用户和管理员能够根据帖子主题或者用户查找相关帖子。2.2 系统的开发运行环境本系统开发平台: MyEclipse6.5、Microsoft Office Access 2007数据库管理软件、Java Web开发语言本系统运行环境:windows 7、Tomcat6.5、JDK1.63 总体设计3.1
9、 论坛系统体系构造设计登陆界面:该界面可以选择使用者的身份,例如管理员、普通论坛用户,分别进入不同的。不同的身份登录有不同的操作界面和功能权限。不同的身份在登陆界面的用户名及密码框中正确的输入即可登录。用户系统界面:能够提供对论坛用户根本信息的查询、密码修改等功能、帖子发表、帖子查询、帖子回复。管理员系统界面:能够提供对论坛用户删除、论坛用户根本信息查询、可增添或者删除板块论坛、可查询和删除用户的帖子等功能。3.2论坛系统功能模块设计界面登录功能:系统提供不同的用户登录例如普通论坛用户、管理员,用户在登录界面正确的输入登录名和登录密码后,即可进入到对应的操作界面完成系统提供的功能。用户查询功能
10、:为所有用户提供查询的功能,可查询允许围的所有信息,例如查询所有论坛用户信息、根据用户、帖子主题、时间围查询帖子信息、论坛的统计信息。用户发帖和回帖功能:用户成功进入论坛主页,然后可在各个论坛里发表帖子并可回复其他用户的帖子。管理员权限功能:成功进入管理员界面后可对已注册用户进展管理例如删除用户、用户信息查询、论坛版面的增添和删除、可查询用户的帖子及删除用户帖子。用户密码取回功能:在用户忘记密码的情况下提供用户寻回密码的功能,在登录界面单击取回密码到相应的界面,然后输入信息,如果输入的信息匹配则能找回密码,否则提示错误信息。3.3论坛系统主要Jsp页面设计系统Jsp页面表格一览bbsadd.j
11、sp用户发表帖子页面bbsaddre.jsp用户浏览帖子和回复帖子页面bbslist.jsp论坛版主浏览、查询、删除帖子页面boardmanager.jsp管理员管理用户和论坛版块页面inde*1.jsp用户登录论坛进展操作页面login.jsp用户和管理员登陆界面query.jsp帖子查询页面registry.jsp用户注册页面userinfo.jsp用户信息修改页面usermanager.jsp用户管理页面lostpass.jsp用户密码取回页面论坛系统功能模块图技术论坛系统登录用户登录管理员登录用户信息用户信息查询帖子查询论坛信息统计论坛信息修改增加论坛版块查询用户信息删除用户信息删除用
12、户帖子用户信息修改密码修改论坛版块根据主题查询根据用户查询发帖回帖密码取回4数据库设计4.1数据表设计根据本BBS技术论坛功能的要求以及功能模块的划分,其中涉及到的信息数据可存放在四表中,它们分别是:用户信息表user表、发表帖子和回复帖子的信息表bbs表、管理员登录信息表,数据库表的具体设计如下所示:用户信息表user表用户信息表user表包括12个字段:userid、username、userse* userpassword、useremail、userhomepage、hpname、userbirthday、efrom、userclass、usersign、dateandtime。use
13、r表的属性如图1-1所示: 图1-1论坛版块信息表board表论坛版块信息表board表包括8个字段:boardid、boardname、boardmaster、masterpwd、masterword、masteremail、boardhits、boardtopics。board表的属性如图1-2所示: 图1-2管理员登录信息表admin表管理员登录信息表admin表包括2个字段:adminname、adminpwd。Admin表的属性如图1-3所示: 图1-3论坛帖子发表和帖子回复信息表bbs表论坛帖子发表和帖子回复信息表bbs表包括14个字段:bbsid、parentid、boardid
14、、child、username、useremail、userip、e*pression、usersign、bbstopic、bbscontent、dateandtime、bbshits、length。bbs表的属性如图1-4所示: 图1-45 详细设计5.1 登录界面模块.功能设计登录界面提供普通论坛用户和管理员登录到不同界面进展不同的操作,只要在登录界面正确的输入登录名和登录密码即可登录到相应的操作界面。.登录界面测试如图1-5所示: 图1-5用户注册界面测试如图1-6所示: 图1-6寻回用户密码测试如图1-7所示: 图1-75.2论坛用户操作界面模块.功能设计论坛用户操作界面下提供应用户的
15、功能: 用户单击用户信息,在出现的页面中可进展密码的修改、用户信息查询、用户信息修改;单击帖子查询,在出现的页面中可根据主题、用户、时间围查询帖子;单击论坛信息,在出现的页面中显示了论坛的统计信息;单击*个论坛版块,可在出现的版块页面中进展帖子的发表、帖子的回复、帖子的查询。.论坛主界面设计效果如图1-8所示: 图1-8用户信息功能测试如图1-9所示:图1-9帖子查询功能测试如图1-10所示:图1-10帖子发表和帖子回复测试如图1-11、1-12所示:图1-11图1-12 5.3管理员操作界面模块功能设计管理员操作界面下提供应管理员的功能:注册用户的管理用户的查询、用户的删除、论坛版块的添加、
16、论坛版块信息的修改和删除、论坛帖子的查询、论坛帖子的删除等功能。 界面设计效果如图1-13所示: 图1-13注册用户管理测试如图1-14、1-15所示: 图1-14 图1-15论坛帖子删除测试如图1-16所示: 图1-16第二局部目 录-. z.目 录 TOC o 1-3 h z u HYPERLINK l _Toc7359 第一章 绪论 PAGEREF _Toc7359 1 HYPERLINK l _Toc20080 1.1系统现状1 HYPERLINK l _Toc12685 1.2国外主要研究成果1 HYPERLINK l _Toc31101 第二章 系统开发环境和关键技术4 HYPER
17、LINK l _Toc24492 2.1系统的开发环境4 HYPERLINK l _Toc29112 2.2 Application对象4 HYPERLINK l _Toc6174 2.3 Aja*技术5 HYPERLINK l _Toc14956 2.4 监控用户在线状态6 HYPERLINK l _Toc21629 2.5 JSP技术6 HYPERLINK l _Toc27328 第三章 系统分析与设计93.1系统分析9 HYPERLINK l _Toc6839 3.1.1聊天室功能需求分析9 HYPERLINK l _Toc1984 3.1.2聊天室功能性能分析9 HYPERLINK l
18、 _Toc1302 3.2系统运行环境9 HYPERLINK l _Toc23430 3.3系统预览和工程流程图10 HYPERLINK l _Toc2297 第四章 系统的实现12 HYPERLINK l _Toc9041 4.1用户登录模块12 HYPERLINK l _Toc9041 4.2聊天室主体功能模块13 HYPERLINK l _Toc9041 4.3实时获取并显示在线人员列表14 HYPERLINK l _Toc9041 4.4实现用户发言15 HYPERLINK l _Toc9041 4.5实时显示聊天容19 HYPERLINK l _Toc9041 4.6退出聊天室20
19、HYPERLINK l _Toc15096 参考文献24第二章 系统开发环境和关键技术-. z.第一章 绪论1.1系统现状在人们的生活中,信息技术的飞速开展正在发生深刻变化。人与人之间的对话是不再局限于面对面,网上聊天室提供了信息交流的另一个地方。传统的聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现白屏的现象,这对良好的用户体验是非常不利的。而使用Aja*技术开发的聊天室,不仅可以解决页面刷新带来白屏的问题,也减少了对效劳器和网络传输的负载。随着互联网应用的普及,web应用以其良好的扩展性、易于部署、维护方便等优点逐渐成为软
20、件开发的主流。早期的Web应用采用的是同步交互过程,即用户首先向Web效劳器提交一个请求或行为呼叫,效劳器接收到客户请求后执行相应处理操作,最后向用户返回处理结果。效劳器在处理请求时,用户处于等待状态,有时如果超过了效劳器响应时间,甚至返回页面不可用等提示。另外,当我们只想改变页面的局部数据时,用户的请求会导致效劳器重新返回整个页面容,包括那些没有改变的数据,这不但增加了网络传输的数据量,还影响了客户端的响应时间,为什么我们不能按需获取数据呢Aja*技术可以很好的解决上述web应用中存在的问题。Aja*技术是Web2.0的核心之一,本质上是一种RIA(RichIllternet Applica
21、tion)技术。RIA是指具有高度互动性和丰富用户体验的网络应用程序,它既具有消息确认、无刷新页面之下提供快捷的界面响应、拖放式等桌面应用程序的特点,同时又具有部署简单、跨平台等Web应用程序的特点。Aja*技术提供了客户端与效劳器异步通信的能力,从而使用户从请求一响应一再请求的循环中解脱出来,同时降低了网络传输的数据量,提高了客户端的响应速度,改善了用户使用体验,使得web应用可以接近甚至到达类似桌面应用的效果。而Aja*有上述优势,例如Google Suggest,Gmail,Google Map等等交互程序中都使用了异步通讯技术。不知不觉中,Aja*应用程序占据了整个网络的每一个角落。纵
22、观所有的应用程序,更好的用户体验是其的共同目标,在浏览器中实现桌面用户界面体验是Web开发的一种趋势。Aja*技术从谷歌到IBM,甲骨文,雅虎,BEA系统公司,红帽,Novell公司获得业界众多的IT巨头的支持,其快速开展是值得期待的。技术创新和标准化是Aja*技术开展的必由之路,而W3C已成立了工作小组,专门从事Aja*的规开展工作。 1.2国外主要研究成果Aja*技术的精华是用异步交互替代了传统的同步交互,所以当用户操作时间大于效劳器响应时间的时候,使用Aja*的效果非常明显。而当程序性能的瓶颈在于效劳器响应时间的时候,Aja*无法解决程序运行缓慢的问题。因此,Aja*是更适合在网络上的互
23、动频繁轻量级的应用程序。在Aja*开发的应用程序中,Google公司成功将Aja*技术应用到他们的商业产品。Google地图和Google Suggest都应用了这项技术。当用户使用谷歌地图查看地图包括地图的缩放和平移地图,并没有提交任何请求到效劳器,你就可以浏览到地图的各个局部。在这里,它是Aja*技术的应用,使得地图是不刷新的方式,但每个显示原始数据的根底上以增量方式显示。在这种方式下,用户觉得就像是在自己的计算机上查看本地的地图。微软也在积极开发Aja*应用程序:它将Aja*技术应用到的MSN Space上面。当用户使用MSN Space提交回复评论时,浏览器会暂时停顿,然后刷新显示用户
24、提交的评论,这是应用了Aja*的原理。目前,Aja*应用最普遍的领域是GIS-Map方面。GIS的区域搜索强调快速响应,Aja* 的特点正好符合这种要求。在应用Aja*技术开发过程当中,处于核心位置的Aja*引擎实际上是一些复杂的JavaScript程序。 随着网络应用和界面表现的复杂化,使用面向过程的JavaScript 语言描述表现逻辑将会变得很困难。同时, JavaScript的兼容性和调试都会成为使用Aja*技术的一个障碍。为了解决这些问题,开发人员已经开发出了一些基于Aja*技术的框架,方便了开发人员使用,有利于Aja* 技术的进一步推广。当然,任何技术都是有局限性的,Aja*也不例
25、外。Aja*更新页面无需刷新重载,这也使传统的一些用户交互行为变得不可用,如后退、前进和刷新等。另外,移动设备如手机、PDA等现在还不能很好的支持Aja*,Aja* 对流媒体的支持也没有Java Applet和Flash这样成熟的技术好。 因此,一些辅助的平台和插件的开发也将是Aja*技术应用当中重要的一局部。Aja*把大量的运算从效劳器转移到了客户端浏览器,这意味着浏览器将承受更大的负担,而不再是简单的文档显示功能。 聊天室作为一个能够吸引人气的栏目,在现代网络应用中随处可见。它的作用是给不同的用户提供一个交流信息的场所。用户在聊天室中可以发布信息,就如同所有用户都在一个个真正室聊天一样。
26、传统的聊天室程序一般设置在客户端的网页自动刷新。刷新在这样的数据会带来一些缺点,例如:每次刷新效劳器应该重新获取数据,大大提高了效劳器上的负载,此刷新过程正在进展,这将是非常严重的影响效劳器的性能;每次刷新过程中会产生大量无用数据,不断刷新页面,用户在客户端方面,将导致屏幕闪烁。解决屏幕闪动最重要的一条原则就是,将改动的地方显示到客户端,而那些不需要改动的地方则尽量不要让用户感觉到变化。一个更好的解决方法是使用Aja*技术的无刷新聊天室应用。现在的聊天室通过四个主要功能模块实现了聊天室中用户登录、注销、环境设置、发送消息、读取消息和查看在线用户列表等。聊天室系统为用户提供了聊天场所,操作员可对
27、后台的风格、广告等进展设置;用户可以根据个人的习惯选择字体、文字颜色和表情等;前台聊天室具有私聊的功能,私聊的容仅供私聊双方查看;聊天者可自己手动去除聊天容。操作员可通过客户端处理模块获取界面元素从而得到聊天容或与效劳器交互更新客户端页面响应用户事件。效劳器端响应模块可提供聊天室界面元素信息获得提交数据。*信息职业技术学院毕业设计论文-. z.第二章 系统开发环境和关键技术2.1系统的开发环境MyEclipse Java如图1-1系统开发环境。图1-1系统开发环境2.2 Application对象Application对象是一个环境上下文conte*t对象,用于保存应用程序中的所有公有数据,效
28、劳器启动并且自动创立Application对象以后,只要没有关闭效劳器,Application对象将一直存在,并且可以被所有用户共享。Application对象为JSP提供的置对象,可以直接使用,但在servlet中,需要通过以下代码来获取该对象的实例,才可以使用该对象。ServletConte*t application=getServletConte*t();Application对象提供了很多方法,我的设计中,只使用了setAttribute()和getAttribute()方法。 首先来介绍setAttribute()方法,该方法用于将一个对象绑定到一个属性上,该属性在整个Servle
29、t上下文中都适用。setAttribute()方法的语法格式如下;Application. setAttribute(String name,Object object);参数说明:name:用于指定的一个属性名该属性在整个Servlet上下文都适用。object:用于指定属性值。如本设计中的,设置保存聊天信的Application对象的属性的具体代码如下:application。setAttribute(message.sourceMessage);下面我们再来介绍getAttribute()方法,该方法用于返回Application对象的指定属性的值。如果不存在该属性,则返回null。ge
30、tAttribute()方法的根本语法如下:Application。getAttribute(String name);参数说明:Name:用于指定一个属性名。本设计中,设置获取聊天信息的Application对象的属性的具体代码如下:StringsourceMessage=application.getAttribute(message).toString();2.3 Aja*技术Aja*是一种创立交互式网页的web开发技术。Aja*的一个非常成功的案例就是Google,当用户在Google的搜索输入框中输入关键字的时候。他会提示与关键字相关的另一些关键字。用户可以对自己喜欢的一些关键字进展
31、选择,这样既方便了用户定位自己的需要,又可以很好的引导搜索结果。在Aja*应用中,页面中用户的操作将通过Aja*引擎与效劳器进展通信,然后将返回结果提交给客户端页面的Aja*引擎,而有Aja*引擎决定这些数据插入到页面的任何位置。Aja*的最大特点的就是很好的用户体验,大多数使用Aja*技术的web应用程序,比同类没有使用的web应用程序的用户体验要好的多,尽管他们都能完成相类似的功能。例如,一个普通的用户注册页面,如果用户希望知道注册的用户名是否已经注册过了,那只能等提交表单到效劳器以后并重新来到一个新的页面,才知道用户名是否可用,这种情况每次单击按钮都会导致几秒钟的延迟和屏幕刷新,但事实上
32、页面改动的地方却只有很少一局部,Aja*正在打破这种状况,是页面再无刷新的情况下,完成*些与效劳器的交互功能。大大提高了用户的体验感。2,Aja*不是单一的技术,而是四种技术的集合,有javascript ,css,Dom *MLHttpRequestAja*程序是用javascript语言写成的。Aja*程序可以使用CSS来控制页面的样式。DOM,指的是文本对象模型,它是一个web页面的对象模型,可以用javascript来操作的页面构造。*MLHttpRequest对象用来在后台向效劳器端发送请求,数据的格式可以使任何的文本格式,如*ML、纯文本。他也是Aja*进展异步通信的 关键元素。这
33、四种技术各司其职,其中javascript是其他三中的粘合剂,javascript可以通过修改DOM的构造来改变界面,或者完全改变DOM的构造来重新绘制用户界面;*MLHttpRequest对象则用来与效劳器进展异步通信,javascript也正是通过控制他来提交请求和获取最新数据的。Aja*也会大量使用DHTML进展编程,并且它与效劳器端的异步通信能力使得一个web页面的使用寿命大大增长,用户交互性大大增强了。Aja*技术的优缺点:作为富客户端技术之一的Aja*的最大优点,就是再不更新整个页面的前提下维护数据。这使得web应用程序能够更为迅捷的回应用户动作,并防止了在网络上发送那些没有改变过
34、的信息。与其他富客户端技术不同,Aja*不需要任何浏览器插件,直接通过浏览器置的javascript控制浏览器的容和行为即可。而其他的富客户端技术往往需要安装插件,并且以一个单独的进程来运行这些富客户端,一旦处理不当,很可能造成速度很慢的后果。缺点:就是Aja*在不同的浏览器运行时,由于各个浏览器之间的差异,是的开发者在众多不同的平台和浏览器上经过严格的测试,但是随着Aja*技术的成熟,一些简化跨平台的Aja*程序库,也相继问世,程序员可以使用这些运行库进展Aja*的开发,也不担忧Aja*的跨平台性。还有一个缺点就是;他动态改变的容无法保存到本地或通过收藏夹来保存。这其实是因为Aja*改变浏览
35、器的容和行为,往往是通过修改网页的DOM和CSS来控制的,这些新消息都仅仅在浏览器窗口没关之前存在于存里。Aja*更适合有少量页面容需要改变的客户端编程,如果页面的大多说容都需要改变的时候,还是建议使用让整个页面刷新的方式较好。2.4 监控用户在线状态在聊天室程序中需要实时监控用户在线状态,当用户非正常退出时如:没有单击退出聊天室按钮,也没有单击窗口的关闭按钮,而是直接将页面转向其他,能够保证将该用户从列表中删除。可以应用Servlet中的监听器HttpBingListener接口实现此效果。2.5 JSP技术JSP(JavaServer Pages)是由Sun Microsystems公司倡
36、导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linu*下运行,也能在其他操作系统上运行。 JSP技术使用Java编程语言编写类*ML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示别离,支持可重用的基于组件的设计,使基于Web的应用程序的开发
37、变得迅速和容易。 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代
38、码进展处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术根底,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且平安可靠,主要面向因特网的所有特点。JSP技术的强势 1一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。 2系统的多平台支持。根本上可以在所有平台上的任意环境中开发,在任意环境中进展系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 3强大的可伸缩性。从只有一个小的Jar文件就可以运行Se
39、rvlet/JSP,到由多台效劳器进展集群和负载均衡,到多台Application进展事务处理,消息处理,一台效劳器到无数台效劳器,Java显示了一个巨大的生命力。 4多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 JSP技术的弱势 1 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。 2 Java的运行速度是用class常驻存来完成的,所以它在一些情况下所使用的存比起用户数量来说确实是最低性能价格比
40、了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。 JSP六种置对象: request, response, out, session, application, config, pageconte*t, page, e*ception. 一.request对象: 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。 二.response对象: 对客户的请求做出动态的响应,向客户端发送数据。 三session对象 1.什么是session:session对象是一个JSP置对象,它在第一个JS
41、P页面被装载时自动创立,完成会话期管理。 从一个客户翻开浏览器并连接到效劳器开场,到客户关闭浏览器离开这个效劳器完毕,被称为一个会话。当一个客户访问一个效劳器时,可能会在这个效劳器的几个页面之间反复连接,反复刷新一个页面,效劳器应当通过*种方法知道这是同一个客户,这就需要session对象。 2session对象的ID:当一个客户首次访问效劳器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该效劳器的其他页面时,
42、不再分配给客户新的session对象,直到客户关闭浏览器后,效劳器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新翻开浏览器再连接到该效劳器时,效劳器为该客户再创立一个新的session对象。 四aplication对象 1什么是application: 效劳器启动后就产生了这个application对象,当客户再所访问的的各个页面之间浏览时,这个application对象都是同一个,直到效劳器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个置的application对象。 2application对象常用方法:
43、 (1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。 (2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。 五out对象 out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。第四章 系统的实现-. z. 第三章 系统分析与设计3.1系统分析聊天室功能需求分析用户登录,包括用户是否在线实时显示在线人员列表及在线人数用户发言,包括显示聊
44、天容和滚屏显示聊天信息平安退出聊天室,包括单击关闭按钮退出聊天室。聊天室功能性能分析普通用户能够登录的聊天室进展文本的聊天,能够方便的实现公共交谈、选择颜色、添加文字表情等。可以用Aja*实现无刷新操作。3.2系统运行环境在开发聊天室系统时,需要具备下面的软件环境:效劳器端:操作系统:Windows*P。Web效劳器:Tomcat6.0。Java开发包:MyEclipse。客户器端:IE6.0。3.3工程流程图和系统预览(1)工程流程图聊天室的系统流程,如图3-1图3-1工程流程图(2)为了是使大家对本模块有一定的了解,下面将给出聊天室的主界面预览效果图。聊天室的登录界面如图3-2登录界面.输
45、入用户名,然后单击进入按钮,将进入聊天室的主界面,如图3-3主界面。图3-2登录界面图3-3主界面第五章 总结与致谢-. z.第四章 系统的实现4.1用户登录模块当用户访问聊天室时,首先进入的是登录聊天室页面。在该页面中,用户输入自己喜欢的用户名,如图4-1登录界面,单击进入按钮,系统将判断输入的用户名是否被占用,如果被占用将给出提示。图4-1登录界面聊天室function check()if(form1.username.value=)alert(请输入用户名!);form1.username.focus();returnfalse;elseif(form1.username.value=)
46、alert(请不要输入非法字符!);form1.username.focus();returnfalse;用户名:4.2聊天室主体功能模块在用户登录页面中输入用户名,单击进入按钮即可进去聊天室的主界面。如图4-2聊天室主体功能模块,在页面中包括页面头部、在线人员列表区、聊天容显示区和用户发言区4局部。图4-2聊天室主体功能模块4.3实时获取并显示在线人员列表在设计聊天室程序时,为了让用户及时了解在线用户,并与其他用户交流,需要提供实时获取并显示在线人员列表的功能。这小节介绍聊天室的主界面中,左侧显示在线人员列表及在线人数。如图4-3在线人员列表图。图4-3在线人员列表图为了实时显示在线人员列表
47、,这里应用了Aja*技术。实现实时显示在线人员列表的具体步骤如下: 1、编写自定义的JavaScript函数showOnline(),用于实例化Aja*对象,showOline()函数的具体代码如下:function showOnline()varloader=newnet.Aja*Request(online.jspnocache=+new Date().getTime(),deal_online,onerror,GET);其中nocache=+new Date().getTime()的用处是更新在线人员列表。2、Aja*进展异步请求目标的URL地址是onlin.jsp,即JSP文件。在该文
48、件中,主要是将保存在集合类中的在线人员列表显示到页面。Online.jsp页面的代码如下:欢送来到心之语聊天室!所有人0)String username=; amount=vector.size();for(int i=0;iahref=#onclick=set()当前在线人3、在聊天室的主界面中,将左侧用于显示在线人员列表的单元格的id属性设置为online,用于实时显示在线人员列表,具体代码如下:在线人员列表4、编写Aja*的回调函数deal_online(),用于将获取的在线人员列表赋值给id为online的标记的innerHYML属性。Deal_online()函数的具体代码如下:fu
49、nction deal_online()online.innerHTML=this.req.responseTe*t;5、为了让页面载入后就调用Aja*获取在线人员列表,并且每隔10秒钟便获取一次数据,还需要在页面中添加JavaScript代码,具体代码如下:window.setInterval(showOnline();,10000);window.onload=function()showOnline(); /当页面载入后显示在线人员列表4.4实现用户发言在聊天室程序中一个必不可少的功能就是实现用户发言,设计中,用户发言区位于聊天室主界面的底部,如图:4-4用户发言模块。图4-4用户发言模
50、块实现用户发言的具体步骤如下:1、在页面的适宜位置添加用于收集用户发言信息的表单及表单元素,关键代码如下:$username 对表情无表情的微笑着笑呵呵地热情的温柔的红着脸幸福的嘟着嘴热泪盈眶的依依不舍的得意的神秘兮兮的恶狠狠的大声的生气的幸灾乐祸的同情的遗憾的正义凛然的严肃的慢条斯理的无精打采的说:字体颜色:默认颜色红色热情蓝色开朗桃色浪漫绿色青春青色清爽紫色拘谨暗夜兴奋深蓝忧郁卡其制服镏金岁月湖波荡漾发亮蓝紫爱的暗示墨绿深沉烟雨蒙蒙聊天对象文本框设置为只读属性是用户就不能手动输入聊天对象,因此还需要提供选择聊天对象的功能,可以通过在主页面中添加选择聊天对讲的JavaScript自定义函数及
51、在线人员列表中添加超实现。实现将选择的聊天对象添加到聊天对象文本框的JavaScript代码如下:function set(selectPerson)/自动添加聊天对象if(selectPerson!=$username)form1.to.value=selectPerson;elsealert(请重新选择聊天对象!);2、编写自定义的JavaScript函数send(),用于调用Aja*实现用户发言。在函数中,首先验证用户输入信息的合法性然后再将提交的表单的容连接为一个参数字符串,最后实例化Aja*对象。Send()函数的具体代码如下:function send()/验证聊天信息并发送if(
52、form1.to.value=)alert(请选择聊天对象!);returnfalse;if(form1.content1.value=)alert(发送信息不可以为空!);form1.content1.focus();returnfalse;Varparam=from=+form1.from.value+&face=+form1.face.value+&color=+form1.color.value+&to=+form1.to.value+&content=+form1.content1.value;varloader=newnet.Aja*Request(Messagesaction=s
53、endMessage,deal_send,onerror,POST,param);3、在聊天室相关的Servlet实现类中添加发送聊天信息的方法sendMessages()。在该方法中,首先获取用户发言的相关信息,并将发言信息保存在应用程序对象ServletConte*t中,然后通过RequsetDispatcher对象的forward()方法将请求转发。SendMessages()方法的具体代码如下:publicvoid sendMessages(HttpServletRequest request, HttpServletResponse response)throws ServletE*
54、ception, IOE*ception response.setContentType(te*t/html;charset=UTF-8);request.setCharacterEncoding(UTF-8);Random random = new Random();String from = request.getParameter(from); /发言人String face = request.getParameter(face); /表情String to = request.getParameter(to); /接收者String color = request.getParame
55、ter(color); /字体颜色String content = request.getParameter(content); /发言容String sendTime =new Date().toLocaleString();/发言时间ServletConte*t application = getServletConte*t();String sourceMessage = application.getAttribute(message).toString();try /发言时间sourceMessage += + from + + face + 对 + to + 说: + + cont
56、ent + + sendTime + ;application.setAttribute(message,sourceMessage); request.getRequestDispatcher(Messagesaction=getMessages&nocache=+ random.ne*tInt(10000).forward(request, response); catch (E*ception e*) Logger.getLogger(Messages.class.getName().log(Level.SEVERE, null, e*);4.5实时显示聊天容在聊天室程序中另一个必不可少
57、的功能就是显示聊天容。这个版块是在主界面的右侧,如图4-5聊天容模块。图4-5聊天容模块在实现显示聊天容功能时,为了实时显示聊天容,这里应用了Aja*技术,技术Aja*重构的方法,实现实时显示聊天容的具体步骤如下:1、编写自定义的JavaScript函数showContent(),用于实例化Aja*对象。showContent()函数的具体代码如下:function showContent()varloader1=newnet.Aja*Request(Messagesaction=getMessages&nocache=+new Date().getTime(),deal_content,on
58、error,GET);2、从上可以看出,Aja*进展异步请求目标的URL地址为MessagesAction?action=getMessage。从该URL地址可以看出,在进入主界面前会调用聊天室相关的Servlet实现类中的getMessages()。getMessage()方法的具体代码如下:publicvoid getMessages(HttpServletRequest request,HttpServletResponse response) response.setContentType(te*t/html;charset=UTF-8);tryrequest.getRequestDi
59、spatcher(content.jsp).forward(request, response); catch (E*ception e*) Logger.getLogger(Messages.class.getName().log(Level.SEVERE, null, e*);3、编写显示聊天容的JSP页面content.jsp,在该页面中只需要应用EL表达式将返回的执行结果输出即可,具体代码如下:$message4、在聊天室主界面的右侧侠士聊天容的单元格中添加一个id属性为content的标记,用于实时显示聊天容,具体代码如下:聊天容5、编写Aja*的回调函数deal_content()
60、,在这个函数中,首先获取Aja*处理页面的返回值,然后取出字符串中的Unicode空白符,最后判断在获取信息时是否产生错误,如果是,则退出聊天室,否则将获取的聊天容辅助给id为cotent的标记的innerHTML属性,deal_content()函数的具体代码如下:function deal_content()var returnValue=this.req.responseTe*t;/获取Aja*处理页的返回值var h=returnValue.replace(/s/g,);/去除字符串中的Unicode空白符if(h=error)/alert(您的账户已经过期,请重新登录!);E*it(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026大数据分析平台行业竞争态势与商业机会评估报告
- 2026网络安全行业技术创新趋势及市场机遇与投资风险评估报告
- 2026中国基因治疗技术临床转化及产业化障碍分析报告
- 2026医疗器械行业发展趋势全面解析及技术革新与市场开拓策略研究报告
- 2026桥梁建设设备行业市场供需变形及投资机遇规划分析研究报告
- 2026中国罕见病药物可及性分析与医疗保障政策研究报告
- 2026中国第三方医学检验机构区域扩张策略与竞争格局报告
- 2026以色列医疗诊断设备制造业市场现状分析及技术创新与市场增长研究报告
- 2026中国第三方医学检验机构市场渗透率及竞争策略报告
- 2026磁传感器核心材料国产化进程与专利布局战略分析报告
- 2026年医用气体管道系统安装工程分包合同
- 工业自动化设备维护管理案例
- 2025年军队文职计算机专业科目真题精讲与冲刺训练
- 雨课堂学堂在线学堂云《创新创业基础( 南京信工)》单元测试考核答案
- 精神分裂症合并肺结核综合管理要点
- 老年人照顾者支持体系构建
- 市政边坡锚杆施工方案
- 极端环境下植物功能多样性对生态系统韧性贡献机制
- 隔音涂料施工方案范本
- 《先进先出管理办法》
- 2025浙江宁波市粮食收储有限公司招聘2人笔试历年参考题库附带答案详解
评论
0/150
提交评论