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

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

    博客分类:
  • DWR
阅读更多

DWR是很好用的一个Ajax框架闲话不说 如果你找这个技术可定时了解Dwr的

Index页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!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>

<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>

Show页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'show.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>


<script type="text/javascript">
function init() {
//启用Ajax反转
dwr.engine.setActiveReverseAjax(true);
JavascriptChat.inits();
}

window.onload=init;
</script>
</head>

<body>
<div id="div1">

</div>
</body>
</html>

bean类

package com.dragon.dwr;

import java.util.Collection;

import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;

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);

}
}

WEB.XML配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>


<servlet>
<!-- 指定DWR核心ServletName -->
<servlet-name>dwr-invoker</servlet-name>

<!-- 指定DWR实现类 -->
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<!-- 指定DWR核心Servlet处于调试状态 -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>

<!-- 启用Ajax反转技术 如果删除则不启用 -->
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>

<!-- 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>

<!-- 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>

<!--
For more information on these parameters, see:
- http://getahead.org/dwr/server/servlet
- http://getahead.org/dwr/reverse-ajax/configuration
-->

<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

</web-app>

dwr.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>

<allow>

<!--
<filter class="org.getahead.dwrdemo.monitor.MonitoringAjaxFilter"/>
<filter class="org.directwebremoting.filter.ExtraLatencyAjaxFilter">
<param name="delay" value="200"/>
</filter>
-->


<!-- 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"/>


<!-- 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>

</dwr>



<wbr></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