DWR推技术在开发中需要注意的ScriptSession问题

1

关于ScriptSession

ScriptSession不会与HttpSession同时创建,当我们访问一个页面的时候,如果是第一次访问,就会创建一个新的

HttpSession,之后,再访问的时候,就会保持当前的Session,即使是刷新,也能保持当前的HttpSession。

但是,ScriptSession不同,第一次访问,会创建一个ScriptSession,但是,如果你刷新,就会创建一个新的ScriptSession.

2 如何得到ScriptSession 在DWR中,我们可以通过WebContextFactory.get()来取得一个WebContext对象,进而通WebContext的

getScriptSession()取得ScriptSession对象。

但是要注意,在我们自定义的Servlet中,我们也可以通过WebContextFactory.get()来取得一个WebContext,但是这种方法却不能取得

ScriptSession对象。因为,此WebContext对象其实不是通过DWR的上下文环境得到的,所以,就根本没有创建ScriptSession对象。

假设这种方式也能得到ScriptSession的话,那么我们实现“推”也就可以不局限在DWR的上下文环境中了,那么其灵活性就会大很多了。

所以,这就是我们不能在Servlet中实现推的原因。

3 关于刷新就创建一个新的ScriptSession问题在我们需要推送的页面中,如果你刷新以下,那么就提交一个Http

的request,此时,如果是第一次,那么就会创建一个httpSession对象,同时,请求由DwrServlet来处理后,就会创建一个ScriptSession.这个

ScriptSession会和你的request请求的URI绑定放在一个由ScriptSessionManager维护的Map里面(这里面其实是一个URI对应的Set,在Set

里面放置的是URI绑定的所有ScriptSession)。 当你刷新的时候,同样的一个HttpSession,却会创建一个新的ScriptSession,然后绑定到对应的

URI上。

4 向所有的页面访问者推送当我们想向所有的页面访问者推送的时候,我们只需要,取得所有的页面访问者,就可以“推”了。

如何取得所有的页面访问者?可以通过Collection pages = webContext.getScriptSessionsByPage("/SynMap/map/map.jsp"); 来取得/SynMap/map/map.jsp

的所有访问的ScriptSession 如何推送,

Util util = new Util(pages);

util.addFunctionCall("syningMap",new

Double(x),new

Double(y),new

Integer(zoom));

时间: 2024-10-13 12:36:25

DWR推技术在开发中需要注意的ScriptSession问题的相关文章

IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button. AD:[线下活动]三大新锐HTML 5企业汇聚51CTO—大话移动前端技术 IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button.代

DWR推送技术

“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继“Ajax”之后又一个倍受追捧的Web技术.“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系. 随着 Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大.Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失. 但是,在浏览器中的 Ajax应用中存在一个致命的缺陷无法满足传统桌面系统的需求.

AI技术在短视频APP开发中的应用主要在于四个方面

你平均每天花在短视频APP上的时间是多久? 你目前使用最长时间的一款短视频APP是什么? 移动短视频APP开发可以在这四个方面应用AI技术 移动短视频APP开发可以在这四个方面应用AI技术 短视频APP已经成为了我们生活中消遣娱乐的一种普遍方式,移动短视频APP可以随时随地想看就看,比阅读文字更加简单便捷,而且还可以缓解工作,学习的压力,而且在不知不觉中刷一下短视频APP时间过的非常快,不仅如此还能利用移动短视频APP了解自内心新闻以及流行的话题等等,还能结交新的朋友,增加与朋友互动的频率. 移

iOS开发中的远程推送实现(最新,支持iOS9)

我的个人项目<丁丁印记>中加入了远程推送功能,按照操作说明去做还是比较容易实现的,但是学的不够不系统,因此这篇文章希望总结一下最新的iOS推送功能,因为iOS8之后的推送和致之前的版本是有所不同的,也希望想能帮助到需要的朋友.这篇文章将从零开始,向大家介绍远程推送功能的原理和使用. 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services). 为什么程序中需要远程推送功能 1.传统

WITCH CHAPTER 0 [cry] 绝密开发中的史克威尔艾尼克斯的DX12技术演示全貌

西川善司的[WITCH CHAPTER 0  cry]讲座 ~绝密开发中的史克威尔艾尼克斯的DX12技术演示全貌 注:日文原文地址: http://pc.watch.impress.co.jp/docs/topic/feature/20150529_704317.html 视频引用自youtube 今年4月末,微软的开发者大会[Build 2015]在美国的旧金山举行,在这次大会的主题演讲中,[DirectX 12世代实现的次世代图实时游戏图形,[WITCH CHAPTER 0 cry](后面简

Web开发中前台与后台技术小结--关于EL表达式,JSTL,eval()函数

在我们日常Web开发中,常常用到EL表达式,JSTL标签,还有可能用到JavaScript中的eval().下面就这样技术和函数小小说明一下. EL(Expression Language),全称表达式语言,既然是开发语言,那么就像Java等语言一样是用来写语句的,通常是用在JSP页面中,我们为了获取JSP提供的内置对象的属性值, 我们通常会使用到EL表达式,比如开发中常见的一个需求就是获取项目的根目录,如果项目的名值变化了,我们在指定路径时,如果把项目的根目录用一个变量来表示的话,那么就不 需

AJAX技术在PHP开发中的简单应用

AJAX无疑是2005年炒的最热的Web开发技术之一,当然,这个功劳离不开Google.我只是一个普通开发者,使用AJAX的地方不是特别多,我就简单的把我使用的心得说一下.(本文假设用户已经具有JavaScript.HTML.CSS等基本的Web开发能力) [AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步J

JavaWeb开发中的会话技术[Cookie/Session]

会话 会话:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话过程中要解决的一些问题: 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自回产生一些数据,程序要想办法为每个用户保存这些资源.电商中的保存用户的购买的商品. 保存会话数据的两种技术 Cookie:Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去,这样web资源处

[转]在b/s开发中经常用到的javaScript技术

在b/s开发中经常用到的javaScript技术  一.验证类1.数字验证内  1.1 整数  1.2 大于0的整数 (用于传来的ID的验证)  1.3 负整数的验证  1.4 整数不能大于iMax  1.5 整数不能小于iMin2.时间类  2.1 短时间,形如 (13:04:06)  2.2 短日期,形如 (2003-12-05)  2.3 长时间,形如 (2003-12-05 13:04:06)  2.4 只有年和月.形如(2003-05,或者2003-5)  2.5 只有小时和分钟,形如