- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作为Web应用程序模型的AJAX的出现使服务器端的面貌发生了巨大的变化。用
户对着Web页面填写表单并单击提交按钮转到下一个链接的典型Web使用模式现在正在
转变为更先进的客户端JavaScript以及功能更丰富的用户界面,只要对表单进行操作
,比如单击一个复选框、按下一个键或将鼠标移到一个选项卡上,该用户界面就会不
断地与服务器交互。
考虑一下从客户端传输到服务器的数据量有多大。从可用性的角度来看,用户在一个
薄客户端浏览器上获得了富用户界面,无需安装任何东西。但是,当在服务器端扩展
这些应用程序时就要付出代价了。AJAX应用程序的典型容量规划数可能会是标准Web应
用程序的3到4倍。
有人可能会问:这对WebLogic Server有何影响?每个发送给WebLogic的HTTP请求都要
使用一个执行线程。根据AJAX编程的性质以及许多短期的请求会以轮询的形式不断发
送的情况,该行为模式可能造成大量客户端请求不断冲击服务器的局面。多年来,
WebLogic都将这一问题考虑在内,并构建了一个相当棒的特性,即
FutureResponseServlet。该范型构建于异步servlet理念的基础之上。从版本6.1开始
,该功能就允许开发人员提供真正异步的来自服务器的通知,而无需对事件进行客户
端轮训并在服务器端使用执行线程。在9.x之前,BEA还不急于公开该类。
如何在现实中利用该类呢?我们来看一个例子。假定业务需求是要构建一个基于Web的
应用程序,该应用程序以近乎实时的方式向服务器发送数据而无需刷新浏览器。这样
的应用程序可以向服务器提交一个需要花很长时间处理的请求,而仍然能够接收到关
于其状态的异步事件并监听事件。从技术角度来看,这有许多实现方法。其中一种方
法就是使用一个与Java Servlet通信的Java Applet来获得异步信息。这是一种不错的
方法,但是对于用户来说有些不太方便,因为他们必须下载一个JVM,还要下载一个
applet到浏览器。此外,还必须维护一个从客户端到服务器的持久性套接字连接,以
便接收异步消息。设想一下,如果有1000个用户使用该applet,那么就有1000个执行
线程几乎是在空等着发送事件通知到客户端。当然了,还有其它方法,比如从applet
或AJAX应用程序构建轮询机制来定期检查新数据。而如果不经常接收到数据,那么轮
询就显得无用了,而且还浪费了服务器资源,占用了执行线程。反之,服务器可以定
期轮询,将事件传播回客户端,并维护套接字线程,而无需使用持久性执行线程。这
非常类似于Java NIO的运行方式。理想情况下,我们都希望构建一个从服务器“异步
”接收事件通知而无需在服务器端使用持久性执行线程的应用程序,不管它是一个
applet还是一个基于AJAX的薄Web应用程序。
此问题的一种解决方案是创建一个扩展FutureResponseServlet类的servlet。浏览器
建立了到FutureResponseServlet类的单一连接,并在另一个线程中将它自身注册为一
个监听程序。只要在服务器端接收到一个事件,线程就向客户端通知该事件。服务器
与客户端保持异步,无需使用持久性执行线程。该模型可扩展用于多个并发用户的情
况。
本文并不打算介绍如何构建AJAX应用程序。这方面的文章已经有很多了。本文的重点
在于讨论表示层(比如AJAX、applet或者任何前端应用程序)的异步处理的重要性。
清单1展示了一个例子。
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Stack;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import weblogic.servlet.FutureResponseServlet;
import weblogic.servlet.FutureServletResponse;
// An AsynchronousServlet that handles HTTP requests from a separate
thread and
// not the execute thread used to invoke this servlet.
public class AsynchronousServerResponseServlet extends
FutureResponseServlet {
private final Notifier notif
您可能关注的文档
- 如何使用JavaBinding减轻开发负担.doc
- 人性的光辉.doc
- 人性光辉写人要凸显个性.doc
- 如何实现javabean的属性拷贝.doc
- 如何正确的编写高质量高性能的MySQL语句.doc
- 使用多个Struts配置文件.doc
- “高等数学”教学大纲.doc
- “高等数学”课程教学大纲.doc
- “汽化之蒸发”教案.doc
- “祖国宝岛”--台湾.doc
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)