用户登录后,显示所有文件的列表。点击“上传文件”,弹出文件上传窗口,用户浏览本地文件确定提交后,就可以将文件上传至服务器指定的位置。服务器将上传者和文件信息推送到所有的客户端页面指定的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)将页面文件列表的表格最后添加一行新上传的文件信息。
分享到:
相关推荐
### DWR+jquery2.x+easyUI1.3.x开发富客户端应用 #### 知识点一:技术栈概述 本篇文章将介绍一种基于DWR、jquery2.x以及easyUI1.3.x的技术栈来构建富客户端应用的方法。该技术栈还包括了Struts2.x、Spring3.x等...
在实际应用中,使用DWR服务器推送的例子可能包括实时聊天系统、股票行情更新、在线游戏状态同步等。例如,你可以创建一个Java类,定义一个返回最新消息的方法,然后在dwr.xml中配置该类和方法,使其可以被JavaScript...
三、DWR服务器推送的实现 1. **配置DWR** - 首先,需要在项目中引入DWR的jar包。 - 在web.xml中配置DWR的ContextListener和Servlet。 - 创建dwr.xml配置文件,定义允许与JavaScript交互的Java类和方法。 2. **...
这些方法会处理服务器端的业务逻辑,并在有新数据时调用DWR的API来推送到客户端。 标签"**无刷新**"表明了这个示例的核心特性,即在数据更新时,页面不会重新加载。这提高了用户体验,因为用户可以连续接收信息,而...
在描述中提到的"DWR服务器推技术整合Struts2",意味着我们将DWR与流行的MVC框架Struts2相结合,以创建一个具有聊天功能的Web应用。Struts2提供了一个强大的架构来处理HTTP请求,并结合DWR,可以创建一个动态的、交互...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许在Web应用程序中实现实时的双向通信,即浏览器和服务器之间的数据交换无需刷新页面。这个技术在开发富互联网应用(Rich Internet Applications, RIA)时非常...
DWR的核心特性是它支持AJAX(Asynchronous JavaScript and XML)以及服务器推送技术,极大地提高了Web应用的用户体验。 **服务器推送技术**: 传统的HTTP协议是基于请求-响应模型的,即客户端发起请求,服务器响应...
DWR通过提供一套简单的API,使得JavaScript可以直接调用服务器端的Java方法,实现了富客户端应用的开发。在这个场景中,我们关注的是DWR的三个不同版本的JAR文件:dwr2.0.5.jar、dwr2.0.6.jar以及dwr3.rc1.jar。 1....
标题 "dwr推模式" 涉及到的是Direct Web Remoting (DWR) 技术的一种工作模式,主要用于Web应用程序中的实时数据交互。DWR允许JavaScript与服务器端的Java代码进行交互,提供了异步更新页面的能力,极大地提高了用户...
1. **反转Ajax**:DWR的核心特性之一就是反转Ajax,它将传统的请求-响应模式反转过来,使得服务器可以直接调用客户端的JavaScript方法,而无需用户触发。这极大地简化了Ajax的使用,并增强了用户体验,因为服务器...
《dwr3api+DWR文档.pdf》提供了关于DWR 3.x版本的详细信息,包括API参考和初级入门指南。这份文档可能涵盖了以下关键知识点: 1. **安装与配置**:如何在你的Java应用服务器上集成DWR,配置DWR的XML配置文件(dwr....
**DWR (Direct Web Remoting) 服务器主动推送示例代码** DWR(Direct Web Remoting)是一个开源的Java库,允许Web应用程序在浏览器和服务器之间进行双向通信,即服务器可以主动向客户端推送数据,而不仅仅是响应...
5. **客户端接收**:在JavaScript中,使用DWR提供的API注册回调函数,接收到服务器推送的数据后进行处理和展示。 Java推技术不仅限于DWR,还有其他框架如Comet、Atmosphere等也提供了类似的功能。但DWR因其易用性和...
2. **自动暴露**:DWR支持自动暴露Java对象,只需在服务器端注解相应的类和方法,无需手动编写大量的JavaScript代码。 3. **安全**:DWR内置了安全性机制,如CORS(跨源资源共享)和CSRF(跨站请求伪造)防护,确保...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现JavaScript和服务器端Java代码之间的双向通信。这个教程包含了一系列的文档和资源,帮助开发者深入理解和使用DWR。 首先,"DWR学习笔记"提供了对...
2. **序列化与反序列化**:为了在客户端和服务器端之间传输数据,DWR支持多种序列化方式,如JSON和XML,确保数据的高效传输和正确解析。 3. **安全性控制**:DWR提供了一系列的安全策略,包括方法权限控制、请求...
DWR推送技术的核心在于其Comet模式,这是一种持久化的HTTP连接方式,它可以保持浏览器与服务器之间的连接打开,直到有新的数据需要传递或连接因为超时或其他原因被断开。这种方式极大地提高了Web应用的交互性和实时...
在本文中,我们将深入探讨如何使用DWR实现服务器到客户端的消息推送。 1. **DWR基本概念** DWR的核心功能是提供一种方式让Java方法可以直接调用JavaScript函数,反之亦然。这使得服务器能够实时地向浏览器发送数据...
DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在客户端与服务器端进行交互,实现Ajax应用。这个框架使得Web开发人员能够轻松地调用Java方法,就像它们是本地JavaScript函数一样,极大地提高了...
2. **Reverse Ajax**:DWR支持服务器向客户端推送数据,这在实时应用中非常有用,比如聊天室或股票报价系统。 3. **安全机制**:DWR提供了一套安全机制,包括对HTTP请求的验证,防止跨站脚本攻击(XSS)和跨站请求...