首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

DWR服务器推方式(附dwr2.x API)

2012-06-29 
DWR服务器推模式(附dwr2.x API)用户登录后,显示所有文件的列表。点击“上传文件”,弹出文件上传窗口,用户浏览

DWR服务器推模式(附dwr2.x API)

用户登录后,显示所有文件的列表。点击“上传文件”,弹出文件上传窗口,用户浏览本地文件确定提交后,就可以将文件上传至服务器指定的位置。服务器将上传者和文件信息推送到所有的客户端页面指定的div中显示,并在页面文件列表的表格最后添加一行新上传的文件信息。

涉及的技术:

1.?Struts?1.x

2.?Dwr?2.0?服务器推模式

3.?Jsp

?

实现代码摘要:

FileAction.java

文件上传成功后,调用fileList.jsp中JavaScript方法sendMessag(msg);

?

out.println("<script?type='text/javascript'>"?+??????

"opener.sendMessage('"+username+"@"+fileName+"@"+sizeStr+"@"+

sdf.format(new?Date()).replace("?",?"")+"');"+

"</script>");

?

fileList.jsp

sendMessag(msg)调用后台UpLoadTip.java中的upBroadcast(msg)方法,并将新上传的文件信息作为参数传递过去。

?

<script?type='text/javascript'?src='./dwr/engine.js'></script>?<script?type='text/javascript'?src='./dwr/interface/UpLoadTip.js'>???</script>

<script?type='text/javascript'?src='./dwr/util.js'></script>

<script?type="text/javascript">

????function?sendMessage(msg)?{

??????UpLoadTip.upBroadcast(msg);

????}

?????

????function?show(obj){

????addNewRow(obj);?//在文件列表?表格最后追加一行

???}
</script>

?

Dwr.xml(配置文件)

?

<dwr>

<allow>

<create?creator="new"?javascript="UpLoadTip">

<param?name="class"?value="com.kuntuo.service.impl.UpLoadTip"/>

</create>

??</allow>

</dwr>

?

UpLoadTip.java

此类实现了服务器推模式的功能,首先获取需要推送的目标文件的所有客户端,然后进行回调客户端的show(msg)JavaScript方法。

?

public?class?UpLoadTip?{

??public?void?upBroadcast(String?msg){

????WebContext?wctx?=?WebContextFactory.get();

????String?currentPage?=?wctx.getCurrentPage();

????//获取当前页的所有客户端

????ScriptProxy?sp?=?new?ScriptProxy(

?????????????wctx.getScriptSessionsByPage(currentPage));

????//调用客户端show方法,并传递参数msg;

????sp.addFunctionCall("show",?msg);

??}

}

客户端的show(msg)方法来提示所有客户端“XXX上传了XXX文件”,并调用adNewRow(mag)将页面文件列表的表格最后添加一行新上传的文件信息。

热点排行