一、服务端推送技术
网页邮箱新邮件提醒、网页聊天、微信签到墙这些应用场景应该都有遇到过,那么这种功能又是怎么实现的呢?最开始可能会想到Ajax,它能够异步无刷新从服务器端加载最新的数据展示,但它无法满足传统桌面系统的服务器端需要向客户端主动发送消息的需求,并且加载的时间间隔是个老大难的问题,于是现在我们需要理解另一种服务器推送技术。
在Web的访问机制中,大多都是push数据的,它只允许Browser端主动发起请求向Server端请求数据。客户端得到通知的方式:定时刷新、Ajax轮询、comet长连接等。
还有一种则是Dwr,那么什么是Dwr?Dwr是基于Ajax的框架,可以动态地把Java类生成为JavaScript,让客户端JavaScript通过Dwr访问Java程序。
其运行原理:首先在服务器有个dwr.xml,在启动的时候会读取dwr.xml同时通过里面的配置生成JS(把Java类生成相应的JS),客户端通过JS来触发JS中的方法,触发后通过这个方法来调用服务器的某个类的方法也就是说web容器接收请求创建实例处理,调用方法获得数据后返回。
在Dwr中有个很重要的概念:scriptSession,scriptSession在每次访问都会创建,具体内容在下面展示。
二、项目
1、配置Web.xml启用Dwr
2、配置dwr.xml来配置JS和Java类的关系
3、编写JSP页面
4、编写Java代码