`
koudailidexiaolong
  • 浏览: 96078 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

dwr推技术实现即时消息(一)

 
阅读更多
<wbr><p style="text-indent:2em">DWR是很好用的一个Ajax框架闲话不说 如果你找这个技术可定时了解Dwr的</p> <p style="text-indent:2em">Index页面</p> <p></p> <pre class="prettyprint"><p style="text-indent:2em"> &lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %&gt;</p><p style="text-indent:2em">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;html&gt; &lt;head&gt; &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta http-equiv="expires" content="0"&gt; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt; &lt;meta http-equiv="description" content="This is my page"&gt; &lt;!-- &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt; --&gt; &lt;script type='text/javascript' src='/JavaChatDwr/dwr/interface/JavascriptChat.js'&gt;&lt;/script&gt; &lt;script type='text/javascript' src='/JavaChatDwr/dwr/engine.js'&gt;&lt;/script&gt; &lt;script type='text/javascript' src='/JavaChatDwr/dwr/util.js'&gt;&lt;/script&gt;</p><p style="text-indent:2em">&lt;script type="text/javascript"&gt; function sendMessage(){ //获得用户输入的文本 var test = dwr.util.getValue("text"); //发送信息 JavascriptChat.sendMessage(test); } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;input type="text" value="" name="" id="text"/&gt; &lt;input type="button" value="发送" onclick="sendMessage()"/&gt; &lt;/body&gt; &lt;/html&gt;</p><p style="text-indent:2em"> </p></pre> <pre><pre>bean类 </pre><pre class="prettyprint"><p style="text-indent:2em">package com.dragon.dwr;</p><p style="text-indent:2em">import java.util.Collection;</p><p style="text-indent:2em">import org.directwebremoting.ScriptSession; import org.directwebremoting.WebContext; import org.directwebremoting.WebContextFactory; import org.directwebremoting.proxy.dwr.Util;</p><p style="text-indent:2em">public class JavaChat { //获得WebContext 工厂实例 WebContext wctx = WebContextFactory.get(); /** * 保存用户打开的页面的session */ public void inits(){ wctx = WebContextFactory.get(); //获得当前打开的页面 String currentPage = wctx.getCurrentPage(); //清空对象 //获得打开当前页面的所有的session对象 Collection&lt;ScriptSession&gt; scriptSessions = wctx.getScriptSessionsByPage(currentPage); } public void sendMessage(String message){ System.out.println(message); //获得当前打开的页面 String currentPage = wctx.getCurrentPage(); //清空对象 //获得打开当前页面的所有的session对象 Collection&lt;ScriptSession&gt; scriptSessions = wctx.getScriptSessionsByPage(currentPage); //创建Dwr的util对象 Util utils = new Util(scriptSessions); //对id为Div1的标签赋值 utils.setValue("div1", message); } } </p></pre><pre></pre><pre>show页面</pre><pre><pre class="prettyprint"><p style="text-indent:2em"> </p><p style="text-indent:2em">&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %&gt;</p><p style="text-indent:2em">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;html&gt; &lt;head&gt; &lt;base href="&lt;%=basePath%&gt;"&gt;</p><p style="text-indent:2em">&lt;title&gt;My JSP 'show.jsp' starting page&lt;/title&gt;</p><p style="text-indent:2em">&lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta http-equiv="expires" content="0"&gt; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt; &lt;meta http-equiv="description" content="This is my page"&gt; &lt;!-- &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt; --&gt; &lt;script type='text/javascript' src='/JavaChatDwr/dwr/interface/JavascriptChat.js'&gt; &lt;/script&gt; &lt;script type='text/javascript' src='/JavaChatDwr/dwr/engine.js'&gt; &lt;/script&gt;</p><p style="text-indent:2em"> &lt;script type='text/javascript' src='/JavaChatDwr/dwr/util.js'&gt; &lt;/script&gt;</p><p style="text-indent:2em"> &lt;script type="text/javascript"&gt; function init() { //启用Ajax反转 dwr.engine.setActiveReverseAjax(true); JavascriptChat.inits(); }</p><p style="text-indent:2em">window.onload=init; &lt;/script&gt; &lt;/head&gt;</p><p style="text-indent:2em">&lt;body&gt; &lt;div id="div1"&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </p></pre><pre></pre></pre><pre>WEB.XML配置</pre><pre></pre><pre></pre><pre></pre><pre><pre class="prettyprint"><p style="text-indent:2em">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app version="2.5" xmlns="<a target="_blank" href="http://java.sun.com/xml/ns/javaee" rel="nofollow">http://java.sun.com/xml/ns/javaee</a>" xmlns:xsi="<a target="_blank" href="http://www.w3.org/2001/XMLSchema-instance" rel="nofollow">http://www.w3.org/2001/XMLSchema-instance</a>" xsi:schemaLocation="<a target="_blank" href="http://java.sun.com/xml/ns/javaee" rel="nofollow">http://java.sun.com/xml/ns/javaee</a> <a target="_blank" href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" rel="nofollow">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a>"&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;!-- web中配置Dwr --&gt; &lt;display-name&gt;DWR (Direct Web Remoting)&lt;/display-name&gt; &lt;description&gt;A Simple Demo DWR&lt;/description&gt;</p><p style="text-indent:2em"> &lt;servlet&gt; &lt;!-- 指定DWR核心ServletName --&gt; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;!-- 指定DWR实现类 --&gt; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt;</p><p style="text-indent:2em"> &lt;!-- 指定DWR核心Servlet处于调试状态 --&gt; &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt;</p><p style="text-indent:2em"> &lt;!-- 启用Ajax反转技术 如果删除则不启用 --&gt; &lt;init-param&gt; &lt;param-name&gt;activeReverseAjaxEnabled&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt;</p><p style="text-indent:2em"> &lt;!-- By default DWR creates application scope objects when they are first used. This creates them when the app-server is started --&gt; &lt;init-param&gt; &lt;param-name&gt;initApplicationScopeCreatorsAtStartup&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt;</p><p style="text-indent:2em"> &lt;!-- This enables full streaming mode. It's probably better to leave this out if you are running across the internet --&gt; &lt;init-param&gt; &lt;param-name&gt;maxWaitAfterWrite&lt;/param-name&gt; &lt;param-value&gt;-1&lt;/param-value&gt; &lt;/init-param&gt;</p><p style="text-indent:2em"> &lt;!-- For more information on these parameters, see: - <a target="_blank" href="http://getahead.org/dwr/server/servlet" rel="nofollow">http://getahead.org/dwr/server/servlet</a> - <a target="_blank" href="http://getahead.org/dwr/reverse-ajax/configuration" rel="nofollow">http://getahead.org/dwr/reverse-ajax/configuration</a> --&gt;</p><p style="text-indent:2em"> &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt;</p><p style="text-indent:2em"> &lt;servlet-mapping&gt; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;/web-app&gt; </p></pre><pre></pre><pre>dwr.xml配置</pre><pre></pre><pre><pre class="prettyprint"><p style="text-indent:2em">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "<a target="_blank" href="http://getahead.org/dwr/dwr20.dtd" rel="nofollow">http://getahead.org/dwr/dwr20.dtd</a>"&gt;</p><p style="text-indent:2em">&lt;dwr&gt;</p><p style="text-indent:2em"> &lt;allow&gt;</p><p style="text-indent:2em"> &lt;!-- &lt;filter class="org.getahead.dwrdemo.monitor.MonitoringAjaxFilter"/&gt; &lt;filter class="org.directwebremoting.filter.ExtraLatencyAjaxFilter"&gt; &lt;param name="delay" value="200"/&gt; &lt;/filter&gt; --&gt;</p><p style="text-indent:2em"> &lt;!-- chat --&gt; &lt;create creator="new" javascript="JavascriptChat" scope="application"&gt; &lt;param name="class" value="com.dragon.dwr.JavaChat"/&gt; &lt;/create&gt; &lt;!-- 设置类型转换 --&gt; &lt;convert converter="bean" match="com.dragon.entity.User"/&gt;</p><p style="text-indent:2em"> &lt;!-- this is a bad idea for live, but can be useful in testing --&gt; &lt;convert converter="exception" match="java.lang.Exception"/&gt; &lt;convert converter="bean" match="java.lang.StackTraceElement"/&gt; &lt;/allow&gt;</p><p style="text-indent:2em">&lt;/dwr&gt; </p></pre></pre></pre></pre> <br></wbr>
分享到:
评论

相关推荐

    dwr推技术实现服务器推送数据

    总结来说,DWR推技术是实现服务器主动向客户端推送数据的一种高效方式,尤其适用于需要实时数据更新的应用,如股票实时显示。通过反转Ajax,DWR简化了开发流程,提高了用户体验,是现代Web开发中的一个重要工具。

    DWR推送技术大全 dwr推送聊天实例

    DWR推送技术的实现主要涉及以下几个关键组件: 1. **DWR Engine**:这是DWR的核心部分,负责处理JavaScript与服务器端Java对象之间的交互。它通过AJAX(Asynchronous JavaScript and XML)技术在客户端和服务器之间...

    dwr 实现推技术 实例

    本实例将通过一个点对点聊天功能的实现,深入探讨DWR的推技术。 ### DWR基础 1. **反向Ajax(Reverse Ajax)**:DWR的核心功能之一是实现反向Ajax,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求...

    Dwr推送技术实现BS即时通讯

    通过以上分析,我们可以看出"Dwr推送技术实现BS即时通讯"这个项目涉及到了前端与后端的交互、即时通讯机制、数据存储和安全等多个方面的技术,是一个综合性的Web应用开发实践。通过学习和理解这个项目,开发者可以...

    dwr实现的网页即时聊天

    在这个"使用dwr实现的网页即时聊天"项目中,我们将深入探讨如何利用DWR的服务器推技术来创建一个实时的群聊系统。 1. **DWR框架**: DWR简化了JavaScript与Java之间的通信,通过在浏览器端提供动态生成的JavaScript ...

    DWR推技术-用于做及时通讯更新的

    这项技术特别适用于实现即时通讯更新,比如股票图表的动态显示。在传统的HTTP请求模式下,每当需要更新数据时,浏览器都需要发起一个新的请求。然而,DWR通过建立一个持久的连接,使得服务器可以主动地向客户端推送...

    dwr 推技术 demo

    通过这个"DWR推技术demo",你可以学习如何设置DWR环境,配置DWR以启用推送功能,以及在客户端和服务器端编写相应的代码来实现双向通信。这个项目对于理解DWR工作原理和实际应用非常有帮助,特别是对于那些希望在Web...

    DWR的推技术

    #### 一、DWR推技术概述 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许Java对象直接与JavaScript交互,从而实现更流畅的网页应用体验。在DWR 2.x版本中,引入了推技术,即所谓的“Reverse Ajax”,...

    dwr推技术反转聊天事例

    在“dwr推技术反转聊天事例”中,我们将探讨DWR如何用于构建一个实时的聊天应用程序,并分析其中的关键知识点。 首先,我们需要理解DWR的核心概念。DWR允许JavaScript在浏览器端直接调用服务器端的Java方法,而无需...

    基于dwr的java推送消息慕课小项目

    本项目基于DWR,探讨如何实现Java消息的推送功能,以提升Web应用的即时性。 **DWR框架简介** DWR是一种让Java方法在浏览器中可调用的技术,通过在服务器端创建一个Java接口,该接口的方法可以被JavaScript直接调用...

    jsp DWR框架推模式实现的聊天室

    **DWR(Direct Web Remoting)框架是一种在Web应用程序中实现AJAX(Asynchronous JavaScript and XML)技术的工具,它允许JavaScript与服务器端的Java代码进行实时交互,从而创建更动态、更响应式的用户界面。...

    DWR 在线即时聊天系统,实现了对指定用户发送消息,和即时显示功能

    我不能把公司的代码贴出来,所以我自己写了一个DEMO,已经实现了对指定用户发送消息的功能,并且即时显示在指定的用户界面上面.当然你可以修改这些,让它弹出来显示,或者像QQ一样在你页面的某个角落让消息的图标闪动:)

    dwr推送消息

    在这个"**dwr推送消息**"的场景中,我们看到的是DWR被用来实现一个消息推送系统,通过后台消息队列(MQ)监听,一旦接收到新消息,便即时推送到前端进行展示。 首先,我们需要理解DWR的核心概念。DWR提供了几个关键...

    DWR推送技术

    DWR的核心思想是建立一个持久的连接(long-polling)来实现实时数据推送。这种机制下,客户端通过JavaScript与服务器保持一个打开的HTTP连接,服务器可以在任何时间向这个连接发送数据,从而实现数据的即时推送。 ...

    dwr实现前台监控 后台推送即时信息

    总结来说,DWR是一个强大的工具,它允许我们轻松地实现前后端的交互和即时信息推送。通过理解DWR的工作原理和API,我们可以构建出高效、实时的Web应用。在实际开发中,还需要考虑安全、性能优化以及错误处理等问题,...

    dwr实现前台监控 后台推送即时信息 入门必看资料

    DWR通过Comet技术打破了这一限制,使得服务器可以在有新消息时主动推送给客户端。具体实现可以通过在服务器端维持一个长连接,当有新的消息时,立即通过这个连接发送到客户端,更新界面。 在这个入门资料中,"dwr...

    dwr消息推送 实现的聊天

    传统的HTTP协议是基于请求-响应模型的,但为了实现即时通信,需要使用长轮询、WebSocket等技术,或者像DWR这样的框架。 3. **聊天应用的核心技术**:聊天应用通常需要实现实时的消息传递、用户身份验证、会话管理、...

    java聊天室 dwr推技术

    在这个聊天室项目中,DWR推技术扮演了关键角色。"推技术"通常指的是服务器向客户端主动推送信息,而不是等待客户端发起请求。在聊天室这种实时性要求较高的场景下,服务器端需要及时将新消息推送到所有在线用户,而...

    DWR3消息推送(聊天Demo)

    总的来说,这个"DWR3消息推送(聊天Demo)"是一个很好的学习资源,可以帮助开发者了解如何利用DWR3实现实时的Web应用,特别是对于消息推送和WebSocket技术的实践应用。通过研究这个项目,你可以深入理解DWR的工作原理...

    dwr+从服务端推送消息到网页

    **DWR(Direct Web Remoting)技术详解及服务端消息推送至网页的实践** DWR,全称为Direct Web Remoting,是一种开源JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时、双向通信,实现类似Ajax的效果...

Global site tag (gtag.js) - Google Analytics