`
fanzhongyun
  • 浏览: 44512 次
  • 性别: Icon_minigender_1
  • 来自: 广东茂名
文章分类
社区版块
存档分类
最新评论

java dwr

    博客分类:
  • java
阅读更多

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端
Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使
用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

DWR包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet
中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来
动态改变网页的内容.

因为DWR框架也是遵循AJAX原则的,因此使用DWR框架也是能实现页面不刷新,不跳转,而改变页面内容的。下面来看一下DWR的实现过程.


首先来写一个测试类,这个类是将要被DWR框架调用的:
package com.dwr;

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Information {

	public static String getInformation(){
		
		Date date = new Date();
		Format frm = new SimpleDateFormat("yyyyMMddHHmmss");
		String nowTime = frm.format(date);
		String year    = nowTime.substring(0,4)   + "年";
		String month   = nowTime.substring(4,6)   + "月";
		String day     = nowTime.substring(6,8)   + "日";
		String hour    = nowTime.substring(8,10)  + ":";
		String minue   = nowTime.substring(10,12) + ":";
		String second  = nowTime.substring(12,14);
		
		return year + month + day + hour + minue + second;

	}
	
	public static String getInformation(String parameter){
		
		return "My name is " + parameter;
	}
}




配置一下WEB-INF目录下的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>
   <init-param>
   	<param-name>crossDomainSessionSecurity</param-name>
   	<param-value>false</param-value>
   </init-param>
   <init-param>
   	<param-name>allowScriptTagRemoting</param-name>
   	<param-value>true</param-value>
   </init-param>
   
 </servlet>
 <servlet-mapping>
   <servlet-name>dwr-invoker</servlet-name>
   <url-pattern>/dwr/*</url-pattern>
 </servlet-mapping>



接着需要在WEB-INF目录下新建一个dwr.xml文件,并对其进行如下配置:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> 

<dwr>

	<allow>
		<create javascript="obtainMsg" creator="none">
			<param name="class" value="com.dwr.Information" />
		</create>
	</allow>

</dwr>


dwr配置属性参考:

creator属性 是必须的 - 它用来指定使用那种创造器。

默认情况下DWR1.1有8种创造器。它们是:

•new:      用Java的new关键字创造对象
•none:     它不创建对象
•scripted: 通过BSF使用脚本语言创建对象
•spring:   通过Spring框架访问Bean
•jsf:      使用JSF的Bean
•struts:   使用Struts的FormBean
•pageflow: 访问Beehive或Weblogic的PageFlow

javascript属性 用于指定浏览器中这个被创造出来的对象的名字。注意不能使用Javascript的关键字

param元素 被用来指定创造器的其他参数
param元素中value属性的值是所要调用的类的url,即类所在的路径



接下来可以先将DWR所需要的dwr.jar和commons-logging.jar两个包导入项目中,这两个包在下面的附件中已经有了的。

好了,工作做得差不多了,先将项目部署好,然后在浏览器中访问以下地址:
http://localhost:5981/DWR/dwr
注:我的Tomcat端口是5981,项目名是DWR

这时候会进入到http://localhost:5981/DWR/dwr/index.html这个地址,接下来是将这个页面上的超链接点开,下面是该页面顶部的部分信息,你需将页面上与js连接相关的代码拷贝下来以备后用。

以下是打开超链接后的页面上的部分内容:

Methods For: obtainMsg (com.dwr.Information)
To use this class in your javascript you will need the following script includes:

  <script type='text/javascript' src='/DWR/dwr/interface/obtainMsg.js'></script>
  <script type='text/javascript' src='/DWR/dwr/engine.js'></script>

In addition there is an optional utility script:

  <script type='text/javascript' src='/DWR/dwr/util.js'></script>

—— —— 比如我需要拷贝的代码是:

<script type='text/javascript' src='/DWR/dwr/interface/obtainMsg.js'></script>
<script type='text/javascript' src='/DWR/dwr/engine.js'></script>
<script type='text/javascript' src='/DWR/dwr/util.js'></script>



新建一个测试的jsp,并将拷贝的代码粘贴到这个jsp中:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title>DWR Page</title>
    <script type='text/javascript' src='/DWR/dwr/interface/obtainMsg.js'></script>
  	<script type='text/javascript' src='/DWR/dwr/engine.js'></script>
	<script type='text/javascript' src='/DWR/dwr/util.js'></script>
	<script type="text/javascript">
		function btn(){
			var uname = document.getElementById("username").value;
			//下面是通过DWR来访问刚才的测试类Information的
			//其中参数time是调用方法后的返回值,uname是传过去的参数,myname是返回值
			//需要注意的是以DWR的方式来调用方法的时候需要用到回调函数来处理
			obtainMsg.getInformation(function(time){
				obtainMsg.getInformation(uname,{callback:function(myname){
					document.getElementById("msg").innerHTML = "<HR><BR>" + myname + "<BR>" + time;
				}
				});
			});
		}
	</script>
  </head>
  
  <body>
    name:
    <input type="text" id="username" />
    <input type="button" onclick="btn()" value=" Submit " />
    <br><br>
    <div id="msg"></div>
  </body>
</html>



好了,DWR到此就完成了。
需要补充说明一下的是,需要连接的js脚本除了像上面那种通过访问拷贝得到之外,你也可以自己来写,注意,是只需要写js的链接代码就行了,源码是由dwr框架提供的,不需要你自己来写的。其中有两个js脚本是不能少的:

<script type='text/javascript' src='/DWR/dwr/engine.js'></script>
<script type='text/javascript' src='/DWR/dwr/util.js'></script>

另外的那些js脚本,是根据dwr.xml配置文件中的javascript属性的值来确认的,比如我在我的dwr.xml文件中配置的是javascript="obtainMsg",因此,我需要连接的js就是:
<script type='text/javascript' src='/DWR/dwr/interface/obtainMsg.js'></script>

同时dwr.xml文件中配置的javascript属性的值(我这里配置的是javascript="obtainMsg")obtainMsg也是一个类或者是一个对象,我们在DWR中就是通过这个名字(obtainMsg)来访问这个类或者是对象里面的方法的
6
4
分享到:
评论
5 楼 long3ok 2015-04-24  
怎么样访问测试jsp页面
4 楼 千之夜 2013-10-15  
很实用。容易理解
3 楼 herofighter2008 2012-06-28  
垃圾贴,解释的什么玩意嘛
2 楼 likj_sh 2012-02-10  
好东西啊,貌似没人顶
1 楼 wingsrao 2011-10-29  
怎么没人看啊?我觉得还可以撒

相关推荐

    java dwr 使用例子

    Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在Web应用程序中进行交互,实现异步通信,即Ajax(Asynchronous JavaScript and XML)功能。DWR简化了客户端与服务器端之间的数据交换,使得...

    Java Dwr实现消息精准推送以及js调用后台+demo

    Java Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器和Java服务器之间进行双向通信,从而实现在Web应用中的实时交互。DWR使得前端开发者能够轻松地调用后端的Java方法,仿佛它们是本地...

    java dwr 框架源码

    Java DWR(Direct Web Remoting)框架是一种在Web应用程序中实现AJAX(Asynchronous JavaScript and XML)交互的技术。它允许JavaScript在客户端与服务器端的Java对象进行直接通信,从而实现页面的部分更新,提高...

    ssh(dwr).rar_DWR SSH_dwr_java dwr_ssh_ssh dwr

    在这个"ssh(dwr).rar_DWR SSH_dwr_java dwr_ssh_ssh_dwr"压缩包中,我们有一个关于如何将SSH与DWR整合的示例项目。这个整合能够帮助开发者在远程服务器上执行命令,或者通过DWR调用Java服务,然后通过SSH传输数据,...

    java dwr实现的投票小功能

    Java DWR(Direct Web Remoting)是一种开源技术,用于在Web应用程序中实现实时的、双向的JavaScript到Java通信。这个“java dwr实现的投票小功能”项目显然是利用DWR来创建一个简单的投票系统,使得用户可以在前端...

    java dwr3.0(Netbeans ide7.0)推送及登陆实例

    Java DWR(Direct Web Remoting)3.0是用于创建动态Web应用程序的一种开源技术,它允许JavaScript在浏览器端与服务器端的Java代码进行交互。在NetBeans IDE 7.0中,DWR提供了便捷的方式来进行实时数据推送和用户登录...

    java dwr技术多人聊天室

    Java DWR技术是一种在Web应用中实现实时交互的框架,全称为Direct Web Remoting。它允许JavaScript在客户端与服务器端进行直接的调用,从而实现了动态、实时的Web页面更新,非常适合构建像多人聊天室这样的实时应用...

    java dwr简单例子helloworld

    Java Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器中直接调用Java方法,实现Web应用程序的Ajax功能。这个"java dwr简单例子helloworld"是一个基础教程,旨在通过一个简单的HelloWorld...

    java DWR与界面开发文档

    Java DWR(Direct Web Remoting)是一种开源的技术,它允许JavaScript和Java在Web应用程序中进行实时通信,从而创建更富交互性的用户界面。这个文档集合提供了关于如何利用DWR进行界面开发的深入理解和实践指导。 1...

    java DWR实现一个用户在同一时间只能登录一次的解决方案

    Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在浏览器与服务器之间进行实时通信,类似于Ajax技术,但提供了更丰富的交互性。本解决方案主要关注如何利用DWR来实现一个用户在同一时间只能...

    java 采用dwr框架构实现ajax

    Java 使用 Direct Web Remoting (DWR) 框架实现Ajax技术是一种常见的方式,它能够为Web应用程序提供异步更新和交互性。DWR允许Java服务器端代码与JavaScript在客户端直接通信,使得Web应用可以像桌面应用一样实时...

    java+dwr框架实现聊天室

    Java+dwr 框架实现聊天室 Java+dwr框架实现聊天室是使用Java语言和dwr框架实现的服务器推技术,实现了实时通信的聊天室功能。下面将详细介绍该技术的实现过程和相关知识点。 一、dwr 框架简介 dwr(Direct Web ...

    java Dwr使用

    Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在Web应用程序中进行交互,从而实现在客户端和服务器端之间的实时通信,而无需刷新整个页面。DWR简化了Ajax开发,使得开发者可以方便地调用...

    Java Dwr+Spring

    根据提供的文件信息,我们可以深入探讨以下几个关键知识点:Java、JSP、DWR以及Spring框架。 ### Java基础 Java是一种广泛使用的面向对象编程语言,由Sun Microsystems于1995年推出,现为Oracle公司所有。Java的...

    java_ajax框架dwr

    **Java AJAX 框架 DWR 全面解析** DWR (Direct Web Remoting) 是一个强大的Java AJAX框架,它允许在浏览器和服务器之间进行直接的JavaScript与Java对象的交互,使得开发者能够轻松构建富客户端应用程序。DWR的出现...

    java dwr 相关的Ajax示例

    Java中的Direct Web Remoting (DWR) 是一种用于在浏览器和服务器之间进行实时通信的技术,它简化了Ajax(异步JavaScript和XML)的实现。在SSH(Spring、Struts、Hibernate)框架下,DWR可以帮助开发者创建无刷新的...

    dwr测试,java调用js

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行异步的、动态的交互。DWR的主要目标是简化AJAX(Asynchronous JavaScript and XML)开发,使得开发者...

    dwr课件,java,反向ajax

    DWR(Direct Web Remoting)是一种Java技术,用于在Web应用程序中实现实时的双向通信。它允许JavaScript在客户端与服务器端的Java对象之间进行直接调用,无需刷新页面,从而实现了所谓的“反向Ajax”或者“富互联网...

    DWR实现DEMO

    利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,DWR通过Java类动态生成JavaScript代码。

    java dwr页面推送

    使用dwr向页面推送信息,目前原理还没弄明白..只能先用起来。此代码还有点小问题:发送页面也会创建scriptSession并且收到自己推送的消息 ..不知道怎么解决,

Global site tag (gtag.js) - Google Analytics