<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"> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%></p><p style="text-indent:2em"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type='text/javascript' src='/JavaChatDwr/dwr/interface/JavascriptChat.js'></script>
<script type='text/javascript' src='/JavaChatDwr/dwr/engine.js'></script>
<script type='text/javascript' src='/JavaChatDwr/dwr/util.js'></script></p><p style="text-indent:2em"><script type="text/javascript">
function sendMessage(){
//获得用户输入的文本
var test = dwr.util.getValue("text");
//发送信息
JavascriptChat.sendMessage(test);
}
</script>
</head>
<body>
<input type="text" value="" name="" id="text"/>
<input type="button" value="发送" onclick="sendMessage()"/>
</body>
</html></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<ScriptSession> scriptSessions = wctx.getScriptSessionsByPage(currentPage);
}
public void sendMessage(String message){
System.out.println(message);
//获得当前打开的页面
String currentPage = wctx.getCurrentPage();
//清空对象
//获得打开当前页面的所有的session对象
Collection<ScriptSession> 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"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%></p><p style="text-indent:2em"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"></p><p style="text-indent:2em"><title>My JSP 'show.jsp' starting page</title></p><p style="text-indent:2em"><meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type='text/javascript'
src='/JavaChatDwr/dwr/interface/JavascriptChat.js'>
</script>
<script type='text/javascript' src='/JavaChatDwr/dwr/engine.js'>
</script></p><p style="text-indent:2em">
<script type='text/javascript' src='/JavaChatDwr/dwr/util.js'>
</script></p><p style="text-indent:2em">
<script type="text/javascript">
function init() {
//启用Ajax反转
dwr.engine.setActiveReverseAjax(true);
JavascriptChat.inits();
}</p><p style="text-indent:2em">window.onload=init;
</script>
</head></p><p style="text-indent:2em"><body>
<div id="div1">
</div>
</body>
</html>
</p></pre><pre></pre></pre><pre>WEB.XML配置</pre><pre></pre><pre></pre><pre></pre><pre><pre class="prettyprint"><p style="text-indent:2em"><?xml version="1.0" encoding="UTF-8"?>
<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>">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- web中配置Dwr -->
<display-name>DWR (Direct Web Remoting)</display-name>
<description>A Simple Demo DWR</description></p><p style="text-indent:2em">
<servlet>
<!-- 指定DWR核心ServletName -->
<servlet-name>dwr-invoker</servlet-name>
<!-- 指定DWR实现类 -->
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class></p><p style="text-indent:2em"> <!-- 指定DWR核心Servlet处于调试状态 -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param></p><p style="text-indent:2em"> <!-- 启用Ajax反转技术 如果删除则不启用 -->
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param></p><p style="text-indent:2em"> <!-- By default DWR creates application scope objects when they are first
used. This creates them when the app-server is started -->
<init-param>
<param-name>initApplicationScopeCreatorsAtStartup</param-name>
<param-value>true</param-value>
</init-param></p><p style="text-indent:2em"> <!-- This enables full streaming mode. It's probably better to leave this
out if you are running across the internet -->
<init-param>
<param-name>maxWaitAfterWrite</param-name>
<param-value>-1</param-value>
</init-param></p><p style="text-indent:2em"> <!--
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>
--></p><p style="text-indent:2em"> <load-on-startup>1</load-on-startup>
</servlet></p><p style="text-indent:2em"> <servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
</p></pre><pre></pre><pre>dwr.xml配置</pre><pre></pre><pre><pre class="prettyprint"><p style="text-indent:2em"><?xml version="1.0" encoding="UTF-8"?>
<!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>"></p><p style="text-indent:2em"><dwr></p><p style="text-indent:2em"> <allow></p><p style="text-indent:2em"> <!--
<filter class="org.getahead.dwrdemo.monitor.MonitoringAjaxFilter"/>
<filter class="org.directwebremoting.filter.ExtraLatencyAjaxFilter">
<param name="delay" value="200"/>
</filter>
--></p><p style="text-indent:2em">
<!-- chat -->
<create creator="new" javascript="JavascriptChat" scope="application">
<param name="class" value="com.dragon.dwr.JavaChat"/>
</create>
<!-- 设置类型转换 -->
<convert converter="bean" match="com.dragon.entity.User"/></p><p style="text-indent:2em">
<!-- this is a bad idea for live, but can be useful in testing -->
<convert converter="exception" match="java.lang.Exception"/>
<convert converter="bean" match="java.lang.StackTraceElement"/>
</allow></p><p style="text-indent:2em"></dwr>
</p></pre></pre></pre></pre>
<br></wbr>
分享到:
相关推荐
总结来说,DWR推技术是实现服务器主动向客户端推送数据的一种高效方式,尤其适用于需要实时数据更新的应用,如股票实时显示。通过反转Ajax,DWR简化了开发流程,提高了用户体验,是现代Web开发中的一个重要工具。
DWR推送技术的实现主要涉及以下几个关键组件: 1. **DWR Engine**:这是DWR的核心部分,负责处理JavaScript与服务器端Java对象之间的交互。它通过AJAX(Asynchronous JavaScript and XML)技术在客户端和服务器之间...
本实例将通过一个点对点聊天功能的实现,深入探讨DWR的推技术。 ### DWR基础 1. **反向Ajax(Reverse Ajax)**:DWR的核心功能之一是实现反向Ajax,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求...
通过以上分析,我们可以看出"Dwr推送技术实现BS即时通讯"这个项目涉及到了前端与后端的交互、即时通讯机制、数据存储和安全等多个方面的技术,是一个综合性的Web应用开发实践。通过学习和理解这个项目,开发者可以...
在这个"使用dwr实现的网页即时聊天"项目中,我们将深入探讨如何利用DWR的服务器推技术来创建一个实时的群聊系统。 1. **DWR框架**: DWR简化了JavaScript与Java之间的通信,通过在浏览器端提供动态生成的JavaScript ...
这项技术特别适用于实现即时通讯更新,比如股票图表的动态显示。在传统的HTTP请求模式下,每当需要更新数据时,浏览器都需要发起一个新的请求。然而,DWR通过建立一个持久的连接,使得服务器可以主动地向客户端推送...
通过这个"DWR推技术demo",你可以学习如何设置DWR环境,配置DWR以启用推送功能,以及在客户端和服务器端编写相应的代码来实现双向通信。这个项目对于理解DWR工作原理和实际应用非常有帮助,特别是对于那些希望在Web...
#### 一、DWR推技术概述 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许Java对象直接与JavaScript交互,从而实现更流畅的网页应用体验。在DWR 2.x版本中,引入了推技术,即所谓的“Reverse Ajax”,...
在“dwr推技术反转聊天事例”中,我们将探讨DWR如何用于构建一个实时的聊天应用程序,并分析其中的关键知识点。 首先,我们需要理解DWR的核心概念。DWR允许JavaScript在浏览器端直接调用服务器端的Java方法,而无需...
本项目基于DWR,探讨如何实现Java消息的推送功能,以提升Web应用的即时性。 **DWR框架简介** DWR是一种让Java方法在浏览器中可调用的技术,通过在服务器端创建一个Java接口,该接口的方法可以被JavaScript直接调用...
**DWR(Direct Web Remoting)框架是一种在Web应用程序中实现AJAX(Asynchronous JavaScript and XML)技术的工具,它允许JavaScript与服务器端的Java代码进行实时交互,从而创建更动态、更响应式的用户界面。...
我不能把公司的代码贴出来,所以我自己写了一个DEMO,已经实现了对指定用户发送消息的功能,并且即时显示在指定的用户界面上面.当然你可以修改这些,让它弹出来显示,或者像QQ一样在你页面的某个角落让消息的图标闪动:)
在这个"**dwr推送消息**"的场景中,我们看到的是DWR被用来实现一个消息推送系统,通过后台消息队列(MQ)监听,一旦接收到新消息,便即时推送到前端进行展示。 首先,我们需要理解DWR的核心概念。DWR提供了几个关键...
DWR的核心思想是建立一个持久的连接(long-polling)来实现实时数据推送。这种机制下,客户端通过JavaScript与服务器保持一个打开的HTTP连接,服务器可以在任何时间向这个连接发送数据,从而实现数据的即时推送。 ...
总结来说,DWR是一个强大的工具,它允许我们轻松地实现前后端的交互和即时信息推送。通过理解DWR的工作原理和API,我们可以构建出高效、实时的Web应用。在实际开发中,还需要考虑安全、性能优化以及错误处理等问题,...
DWR通过Comet技术打破了这一限制,使得服务器可以在有新消息时主动推送给客户端。具体实现可以通过在服务器端维持一个长连接,当有新的消息时,立即通过这个连接发送到客户端,更新界面。 在这个入门资料中,"dwr...
传统的HTTP协议是基于请求-响应模型的,但为了实现即时通信,需要使用长轮询、WebSocket等技术,或者像DWR这样的框架。 3. **聊天应用的核心技术**:聊天应用通常需要实现实时的消息传递、用户身份验证、会话管理、...
在这个聊天室项目中,DWR推技术扮演了关键角色。"推技术"通常指的是服务器向客户端主动推送信息,而不是等待客户端发起请求。在聊天室这种实时性要求较高的场景下,服务器端需要及时将新消息推送到所有在线用户,而...
总的来说,这个"DWR3消息推送(聊天Demo)"是一个很好的学习资源,可以帮助开发者了解如何利用DWR3实现实时的Web应用,特别是对于消息推送和WebSocket技术的实践应用。通过研究这个项目,你可以深入理解DWR的工作原理...
**DWR(Direct Web Remoting)技术详解及服务端消息推送至网页的实践** DWR,全称为Direct Web Remoting,是一种开源JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时、双向通信,实现类似Ajax的效果...