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

(五)配置及用法之DWR

阅读更多
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。在介绍DWR之前呢,先简要介绍一下Ajax。其实和DWR配置的相关性不大,只是希望大家重温一下Ajax的使用。
(1)Ajax的代码部分:
<script type="text/javascript">
  var xmlHttpRequest;
 <!--根据浏览器类型解析xmlHttpRequest-->
  function createXmlHttpRequest() {
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
}
//POST形式
function doRequestUsingPost() {
	url = "GetAndPostXml?";  
	xmlHttpRequest = createXmlHttpRequest();
	xmlHttpRequest.open("POST", url, true);
	xmlHttpRequest.onreadystatechange = parseResult;
	//让服务器知道请求体中有参数
	xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
	xmlHttpRequest.send(stringQuery());//参数表
}
//GET形式
function doRequestUsingGet(){	
	url="GetAndPostXml?"+stringQuery(); 
	xmlHttpRequest=createXmlHttpRequest();
	xmlHttpRequest.open("GET",url,true);
	xmlHttpRequest.onreadystatechange=parseResult;
	xmlHttpRequest.send(null);
}
//构造参数传递的方法
function stringQuery() {
	var userName = document.getElementById("userName").value;
	var passWord = document.getElementById("passWord").value;
	var strQuery = "userName=" + userName+"&passWord="+passWord;
	return strQuery;
}
<!--回调函数-->//在传递的Servlet中out.print(xxx),out.println(xxx)可能获取不到
function parseResult() {
if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
var responseDiv=document.getElementById("responseDiv");
var xmlDoc=xmlHttpRequest.responseXML;
var content=xmlDoc.getElementsByTagName("Users");
var Info="<table><tr><td>用户</td><td>密码</td><td>性别</td><td>方法</td></tr>";
Info+="<tr><td>"+content[0].childNodes[0].firstChild.data+"</td>";
Info+="<td>"+content[0].childNodes[1].firstChild.data+"</td>";//文本也算一个节点
Info+="<td>"+content[0].childNodes[2].firstChild.data+"</td>";
Info+="<td>"+content[0].childNodes[3].firstChild.data+"</td></tr></table>";
responseDiv.innerHTML=Info;
}
}
</script>  
<!--HTML代码部分-->
  <div>
  <form name="myFrom">
   用户名:<input type="text" name="userName"  value="" id="userName"/><br/>
   (显示)密码:<input type="text" name="passWord" value="" id="passWord"/><br/>
   <input type="button" value="使用Get" onclick="doRequestUsingGet()"/>
   <input type="button" value="使用Post" onclick="doRequestUsingPost()"/>
   </form>
  </div>
  <div id="responseDiv"></div>

(2)正题!DWR配置:
需要的Jar:commons-logging-1.0.4.jar、dwr.jar
web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="dwr" 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">
  <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>
  </servlet>
  <servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

dwr.xml的配置:(与web.xml同目录)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
   <allow>
        <!--设置New创造器-->
	<create creator="new" javascript="service1">
		<param name="class" value="com.lrl.test.Server" />
	</create>
        <!--设置dwr匹配的数据Bean-->//区别于Spring的Bean
	<convert match="com.xxx.entity.Person" converter="bean">
		<param name="include" value="id,name,pet"></param>
	</convert>
	<convert match="com.xxx.entity.Pet" converter="bean">
		<param name="include" value="id,name"></param>
	</convert>
  <!--如果需要给Spring管理,creator="spring" 且param里 name="beanName"
value="Spring的BeanId"-->//注意,value里的是Spring管理的bean的id!如果不给Spring管理的话,那么依赖注入会失败。所以根据情况而定!
	<create creator="spring" javascript="userService">
		<param name="beanName" value="userServiceImpl"></param>
	       <param name="location" value="classpath:beans.xml" />//spring的xml的位置
	</create>
    </allow>
</dwr>

dwr的HTML代码部分:
<script type="text/javascript" src='/AjaxDwrPro1/dwr/engine.js'></script>//引用内置的,否则会出错。
<script type="text/javascript" src='/AjaxDwrPro1/dwr/util.js'></script>//这个也引用内置的把!
<script type="text/javascript" src='/AjaxDwrPro1/dwr/interface/server1.js'>
</script>//这里的server1就是dwr里面javascript设定的值!路径别错!
<script type="text/javascript">
function dwrTest() {
	var userName = document.getElementsByName("userName")[0].value;
	var passWord = document.getElementsByName("passWord")[0].value;
	server1.checkLogin(userName, passWord, callBack);//第三个参数是回调函数,一般把回调函数都放在最后一个参数的位置上把~~
	
}
function callBack(date) {//date是调用checkLogin函数后返回的数据。
	if (date == true) {
		alert("登陆成功!");		
		document.myForm.submit();
		
	} else if (date == false) {
		alert("登录失败");
		return false;		
	}
}
</script>

基本用法就这样,更深层次的应用以后再慢慢补充把~~
总结:
(1)主要配置过程:web.xml+dwr.xml+jsp
(2)jsp里需包含使用到的js文件。详情看本文
(3)dwr与Struts整合需要struts2-dwr-plugin-2.2.1.1.jar包
分享到:
评论

相关推荐

    dwr使用方法,配置

    &lt;dwr&gt;            &lt;/dwr&gt;  标签中包括可以暴露给javascript访问的东西。  标签中指定javascript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成...

    dwr使用例子配置和使用

    一个例子 有关dwr的配置 和使用 在jsp页面的配置,调用。 web.xml中的配置 和链接服务层的方法

    dwr相关jar包及其使用和配置

    该压缩包中包含了dwr的使用及配置,和dwr的jar包; DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)...

    DWR使用方法-step by step

    配置和使用DWR进行Ajax开发

    dwr的用法解析

    dwr的具体的用法配置和解析,dwr封装了ajax代码写在后台java代码中可以经过配置来调用。

    DWR.xml配置文件说明书(含源码)

    将象用exclude和incluce来通知DWR隔离creator的方法一样,converter也有一个类似的配置方法.因为指定属性转换只有针对bean才有效(基本类型的转换没有必要指定属性),这个功能只能应用与特定的converter即BeanConverter...

    DWR配置介绍

    适用于java开发者使用。介绍dwr的用法和配置。

    dwr入门+springmvc实现

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并...本次例子只是用于演示,说明DWR的使用,类设计并不是最优的

    dwr 配置文件详解

    dwr 配置详细介绍与说明,对于java web开发很有用,可以不使用struts 直接调用service方法

    DWR框架使用方法DOC

    DWR框架使用方法:介绍Dwr具体配置、 文档含验证是否同名······

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

    DWR是一个Java库,能够使浏览器中的JavaScript和服务器上的Java进行互动,并尽可能简单地调用Java的方法。本文档讲一下关于这个框架的入门配置及应用,服务器采用tomcat

    DWR的介绍以及使用范例.还有使用DWR的相关配置

    DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,但是...所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR。

    在Struts2与Spring2.5结合DWR2配置使用方法.doc

    在Struts2与Spring2.5结合DWR2配置使用方法.doc

    DWR配置文件详解

    所以如果你有一个叫A的bean,它有一个方法叫A.blah(B) 那么你需要一个A的creator和一个B的converter。 一: allow段落里面定义的试DWR可以创建和转换的类。 二:Creators dwr.xml文件中的create元素的结构如下: ...

    java dwr 使用例子

    自己总结的一个的dwr的使用说明,附有源码,以及代码的详细解释,配置文件的详细解释。完全可以运行。同时介绍了与其类似用法的dotnet版本的ajax组建。需要自己下载dwr.jar 3.0版本。或者到我的空间下载dwr.jar 3.0...

    DWR[1].xml配置文件说明书.doc

    DWR[1].xml配置文件说明书 详细介绍了dwr框架的配置和使用方法

    DWR中文文档.pdf

    32 4.1 DWR与Servlet 32 4.1.1 使用webContext的方法: 32 4.1.2 方法选择 32 4.2 DWR与Spring 34 4.2.1 让DWR和Spring一起工作的检查列表 34 4.2.2 Spring Creator 34 4.2.3 找到...

    AJAX-dwr实现增删改查的示例代码

    一个利用DWR的简单应用实例,可以实现增删改查,全部数据存内存列表中,暂不用任何数据库支持,直接部署应用即可使用,方便易用...主要用于DWR初学者体验下DWR在页面的使用和配置方法.

    dwr框架包含帮助文档

    出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用. 这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件...

    Spring2_DWR2_Login

    在网上找了很多资料,终于找到了一个方法使用Spring的配置文件去集成DWR2,并创建DWR2对象,这不是传统的集成方式,无需要dwr.xml文件,希望对你们有所帮助

Global site tag (gtag.js) - Google Analytics