DWR的使用

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架

(1)导入dwr.jar,commons-logging-1.2.jar

(2)在web.xml文件中添加

<!-- 配置DWR的核心Servlet -->
	<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>

(3)在WEB-INF文件夹下建dwr.xml文件

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
    "http://getahead.org/dwr/dwr30.dtd">
<dwr>
	<allow>
		<create creator="new" javascript="DwrTest">
			<param name="class" value="cn.axin.dwr.DWRTest" /><!-- 自定义的类 -->
		</create>
		<create creator="new" javascript="AjaxDate">
			<param name="class" value="java.util.Date" />
		</create>
	</allow>
</dwr>

DWRTest类

public class DWRTest {
	public int getData(int index){
		Random rand = new Random();
		return rand.nextInt(index);
	}
}

通过修改dwr.xml文件,可以将自定义的java类公开给javascript远程调用

在该配置文件中,creator属性是必须的,他指定使用哪种创造器。creator

属性有三种选择值:new,scripted和spring。最常用的是new,它代表使用java

类默认的无参构造方法创建类的实例对象;scripted值表示使用脚本语言来创建

java类对象;spring表示通过Spring框架Bean来创建java类对象

还可以在create元素下加入include标记,指明要公开给javascript的方法

(4)在JSP页面进行使

<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/DwrTest.js"></script>
<script type="text/javascript" src="dwr/interface/AjaxDate.js"></script>
<script type="text/javascript">
	function doTest1() {
		AjaxDate.toString(callBack1);
	}
	function callBack1(data)//data是Date类的toString方法返回值
	{
		window.alert("现在的时间是:" + data);
	}
	function doTest2() {
		DwrTest.getData(123,callBack2);//123是getData方法的参数,callBack2是回调函数
	}
	function callBack2(data)//data是getData方法的返回值
	{
		window.alert("随机数:" + data);
	}
</script>
</head>
<body>
	<input type="button" value="显示当前时间,我变" onclick="doTest1()"><br/><br/>
	<input type="button" value="我点,变了" onclick="doTest2()">
</body>

DwrTest.js和AjaxDate.js命名来源于你的dwr.xml的

<create creator="new" javascript="DwrTest">

<create creator="new" javascript="AjaxDate">

javascript属性的配置名

注意啦:

我这<script type="text/javascript" src="dwr/engine.js"></script>

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

<script type="text/javascript" src="dwr/interface/DwrTest.js"></script>

<script type="text/javascript" src="dwr/interface/AjaxDate.js"></script>

如果把这两行放在前面就没有用了,而DWR官网是这样子的

<script src=‘/[YOUR-WEBAPP-CONTEXT]/dwr/interface/[YOUR-SCRIPT].js‘></script>

<script src=‘/[YOUR-WEBAPP-CONTEXT]/dwr/engine.js‘></script>

就这问题可害苦了我啊..........

可能在你那不是这样子的,只有测试了才懂地

时间: 2024-07-31 20:33:12

DWR的使用的相关文章

spring与dwr整合实现js直接使用java代码

此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. 准备工作 1. 点击此下载相关文件,并把文件放到 ims 工程对应的文件夹下 二. jar包介绍 1. dwr-3.0.1.jar,支持 spring 4.3.4 的最低版本 三. 相关文件介绍 1. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="

Ajax框架---dwr的用法

通常使用Ajax时用的都是jQuery框架,现在公司的框架里用的都是dwr.我觉得dwr和jQuery中的ajax用法差不多,看起来也很像. 一.简介 百度百科上对dwr的描述: DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码,就像它们是浏览器的本地代码(客户端代码)一样:但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些

DWR入门教程

DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-

dwr异常处理

配置异常转换器: dwr.xml: <!-- 异常转换 --> <convert match="java.lang.Exception" converter="exception"/> <convert match="java.lang.StackTraceElement" converter="bean"/> UserService: package com.demo.service; i

DWR之入门实例(一)

DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-

dwr的A request has been denied as a potential CSRF attack.错误

虽然DWR是个很早就出现的Ajax框架,但一直都没去使用过,今天正好没事就看了一下并参照文档照做了个demo, 在其中碰到一个问题: 后台打印出错误信息:"严重: A request has been denied as a potential CSRF attack." 在网上google一把 之后,出现此错误的原因大都是说"请求被拒绝,可能存在csrf(cross-site request forgeries,跨站请求伪造)攻击. 页面URL可能被跨站了的服务所调用之类的

DWR

学生注册时,该学号是否已存在. 1.配置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-v

dwr学习第一天

DWR: 远程调用java代码 dwr是ajax调用应用的一种技术 使用步骤: 1.将dwr包拷到lib包中 2.配置web.xml <listener> <listener-class>org.directwebremoting.servlet.dwrlistener</listener-class> </listener> <!-- DWRServlet→来之与dwr.jar --> <servlet> <servlet-n

Extjs中用dwr实现文件上传时,fileuploadfield不能正常显示的问题

当使用DWR调用Extjs的fileuploadfield 来做文件上传时,不能实现上传操作,需要修改dwr对应jar包中的engine.js文件 将1808行 var clone =value.cloneNode(true); 1812行  value.parentNode.insertBefore(clone,value); 注释掉 通过  var file = dwr.util.getValue("uploadFile");  获取fileuploadfield 对应的值 版权声

上课笔记_Ajax框架,DWR介绍,应用,例子

使用Ajax框架 1. 简化JavaScript的开发难度 2. 解决浏览器的兼容性问题 3. 简化开发流程 常用Ajax框架 Prototype 一个纯粹的JavaScript函数库,对Ajax提供良好支持 jQuery 1.非常优秀的JavaScript库,对Ajax提供了良好的支持 2.与Prototype设计思想不同的是在使用jQuery之后,开发者操作的不再是DOM对象而是jQuery对象 DWR 1.        非常专业的Java Ajax框架 2.        通过DWR框架