`
dou_shini8820
  • 浏览: 80726 次
社区版块
存档分类
最新评论

dwr总结

    博客分类:
  • dwr
 
阅读更多

dwr被称之为“反向ajax”,其实是一种假象。特别在它的3种方式中的“polling”---轮询这种方式中表现最明显,就是客户端不断请求服务端询问服务端是否有信息要输出到客户端。

 

一、dwr的3种方式:

 

1、piggyback(dwr默认的配置):如果后台有什么信息要推送到浏览器,就需要等下次浏览器发起ajax请求时,将该信息附加在请求的信息之后推送到浏览器。(当启用反向ajax是不会导致服务器超载的)

 

web.xml配置:

 

<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>
			org.directwebremoting.servlet.DwrServlet
		</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	    <!-- DWR默认采用piggyback方式 -->  
	    <init-param>  
	        <param-name>pollAndCometEnabled</param-name>  
	        <param-value>true</param-value>  
	    </init-param>  
<!-- 毫秒数。页面默认的请求间隔时间是5秒 -->  
	    <!--    
	    <init-param>  
	        <param-name>disconnectedTime</param-name>  
	        <param-value>60000</param-value>    
	    </init-param>  
	     --> 
		<init-param>
			<param-name>crossDomainSessionSecurity</param-name>
			<param-value>false</param-value>
		</init-param>
		
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
	<!-- dwr 配置结束-->
 

 

2.polling(轮询):由浏览器定时向服务端发送ajax请求,询问后台是否有什么内容需要推送,有的话就会由服务端返回推送内容。这种方式和我们直接在页面通过定时器发送ajax请求,然后查询后台是否有变化内容的实现是类似的。只不过用了dwr之后这部分工作由框架帮我们完成了。

 

 

在piggybackl基础上再加上:

 

<init-param>  
	 <param-name>activeReverseAjaxEnabled</param-name>  
	 <param-value>true</param-value>  
 </init-param>  

 

 3、comet(长连接):当服务端和客户端建立连接之后,将页面内容输出到浏览器后,对应的连接并不关闭,而是暂时的挂起,当服务端有新内容需要传到浏览器时,该连接激活传输数据。 但是由于服务端所能提供的链接数是一定的,当很多人访问浏览器的该页面时,连接没有关闭会造成新的连接请求不能接入,从而影响服务质量。

 

在polling配置的基础上,再加上:

 

<init-param>  
	        <param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>  
	        <param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>  
</init-param>

 

二、dwr.xml文件的配置:

 

dwr我一般用在spring项目中,dwr.xml文件配置采取spring方式:

 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr> 
   <allow> 
      <create creator="spring" javascript="messagePush"> 
          <param name="beanName" value= "messagePush"><!--交给spring管理后才可以这样写-->
          	 <include method="sendMessage,updateUserList"/>
          </param> 
       </create>  
       <convert match="com.luo.model.User" converter="bean"></convert>
   </allow> 
</dwr> 

 

三、dwr在服务端的使用

dwr的核心就是WebContext,在服务端我就是为了得到一个客户端的util它的获取步骤是:

 

WebContext context = WebContextFactory.get();
ServletContext application = ServerContextFactory.get(context.getServletContext);
Collection<ScriptSessions> scriptSessions = application.getScriptSessionByPage(context.getCurrentPage());
Util util = new Util(scriptSessions );
 

 

 

 

util可以使用util.setValue(id,value);来给客户端的div等赋值

 

util.removeAllOptions(ulId);
util.addOptions(ulId,userList,userId,username);//userList是一个user的list集合,uuserId和username是user的两个属性,将作为option中的value和text被添加。
 

 

 

还有种方法是在客户端定一个js的function demo,然后在服务端调用它。

 

ScriptBuffer buffer = new ScriptBuffer();
buffer.appendScript("demo(").appendData("你好").appendScript(");");
util.addScript(buffer);
 

或者:

 

for(ScriptSession session:pages){
         session.addScript(buffer);
  }
 

 

 

 

 

 

分享到:
评论

相关推荐

    Ajax的dwr总结

    DWR (Direct Web Remoting) 是一种开源JavaScript库,它允许Web应用程序在客户端与服务器之间进行实时、异步通信,无需刷新整个页面。Ajax(Asynchronous JavaScript and XML)技术是DWR实现其功能的基础,通过Ajax...

    DWR调用及传参总结

    DWR (Direct Web Remoting...总结,DWR提供了一种强大而灵活的方式,使得JavaScript可以直接调用服务器端的Java方法,实现复杂的数据交互。通过理解上述调用和传参方式,开发者能够更好地利用DWR构建富客户端应用程序。

    关于dwr简单设计总结

    以下是对DWR简单设计的总结: 1. **DWR的基本概念**: DWR的核心功能是在客户端JavaScript和服务器端Java之间建立直接的通信通道,通过AJAX(Asynchronous JavaScript and XML)技术实现异步数据交换。这允许用户...

    dwr笔记 dwr自学资料

    总结来说,DWR是一种强大的工具,能够帮助开发者构建出更加高效、响应式的Web应用。通过学习和掌握DWR,你可以更好地融合前后端开发,实现更为流畅的用户交互。在自学过程中,理解DWR的工作原理、熟练运用其主要组件...

    dwr实现ajax功能ajax+dwr

    `总结DWR的步骤.txt`可能是对实施DWR步骤的简洁概述,方便快速参考。`Ajax主要代码.txt`可能包含了一些关键的Ajax代码示例。`ajax登录`可能是一个实际的DWR应用示例,展示如何实现无刷新的登录功能。`dwrdemo`可能是...

    DWR中处理集合总结

    在DWR(Direct Web Remoting)中,处理集合是一项关键任务,因为它允许JavaScript与服务器端的Java代码进行交互,传递和接收数据集合。DWR是一个开源框架,它使得Web应用程序可以利用Ajax技术实现异步通信,即在不...

    dwr2.0 dwr3.0 jar包

    总结起来,DWR是一个强大的工具,通过提供JavaScript与Java之间的无缝交互,极大地简化了Ajax应用的开发。无论是DWR 2.0还是3.0,它们都为Java开发者提供了高效、灵活的解决方案,帮助构建更加动态、响应式的Web界面...

    DWR配置文件详解,DWR配置

    总结起来,DWR的`dwr.xml`配置文件是实现JavaScript与Java之间交互的核心,它详细定义了哪些Java对象可以被JavaScript访问,以及如何进行数据转换。理解和配置好`dwr.xml`文件对于充分利用DWR的功能至关重要,同时也...

    dwr使用入门总结

    dwr使用入门总结,适合想入门的dwr学者。

    DWR中文文档 (DWR 2.0)

    5. **本节总结**:概括上述JavaScript高级特性的应用技巧,以及它们如何帮助开发者更高效地使用DWR。 通过以上内容,我们可以看到DWR不仅是一个强大的框架,还提供了一系列实用的工具和资源来帮助开发者构建高性能...

    dwr学习总结

    dwr 知识点和实例代码的总结--DWR应当如何获得要进行远程的类的实例

    DWR介绍

    #### 五、总结 DWR作为一种高效的Web开发工具,大大简化了前后端之间的交互过程。通过将服务器端逻辑封装成JavaScript库的形式,不仅提高了开发效率,还增强了应用程序的交互性。此外,DWR还支持多种数据格式(如...

    ajax的dwr包

    总结起来,DWR是一个强大的工具,它简化了Ajax开发,提供了丰富的功能和良好的安全性,使得开发者能够更加专注于业务逻辑的实现,而不是技术细节。如果你正在寻找一种方式来增强你的Web应用的交互性和响应速度,DWR...

    dwr跨域访问以及dwr的使用+dwr.jar

    Direct Web Remoting ...总结,DWR作为一个强大的工具,极大地简化了Web应用的开发,尤其是对于需要频繁交互的实时应用场景。然而,正确配置和使用DWR,以及处理好跨域安全问题,是每个开发者必须面对和解决的挑战。

    Ajax学习——DWR的参考书和实用案例学习总结

    **Ajax学习——DWR的参考书和实用案例学习总结** DWR(Direct Web Remoting)是一种优秀的开源框架,专门用于简化Web应用程序中的Ajax(Asynchronous JavaScript and XML)开发。Ajax技术允许网页在不刷新整个页面...

    dwr学习笔记和总结

    ### dwr学习笔记和总结 #### 一、DWR简介 DWR (Direct Web Remoting) 是一个简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法成为可能,无需编写复杂的Ajax代码。这极大地提高了开发效率,并...

    dwr3_helloword入门

    总结来说,DWR 3.0入门涉及以下步骤: 1. 创建Web工程,导入DWR库。 2. 编写JavaBean。 3. 配置dwr.xml,指定暴露给JavaScript的Java类和方法。 4. 在web.xml中配置DWRControlServlet。 5. 引入必要的JavaScript文件...

    DWR技术文档、快速使用DWR、java技术

    **总结** DWR作为Java世界中的一个强大工具,极大地简化了AJAX开发,使得JavaScript能够轻松地与服务器进行通信。通过理解其核心功能、配置步骤以及使用流程,开发者可以快速地在项目中引入DWR,构建高效、动态的...

    dwr+oracle数据操作

    7. **总结** DWR为开发人员提供了一种强大的工具,使得Web应用能够更高效地与服务器进行数据交互,特别是在处理与Oracle这样的关系型数据库的操作时。通过深入理解和实践DWR,你可以构建出更富有交互性和响应性的...

Global site tag (gtag.js) - Google Analytics