dwr学习
来源:互联网 发布:中铁四局网络采购平台 编辑:程序博客网 时间:2024/06/06 01:38
1.概念
DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让ajax开发变得很简单,利用DWR可以在客户端利用JavaScript调用服务器端的java方法并返回值给JavaScript,就好像直接本地客户端调用一样,其实大家知道 JavaScript 是客户端的脚本语言,怎么可以调用服务器端的Java方法,因为DWR根据java类 来动态生成JavaScript代码,它们方法是一样的,感觉就是 直接调用的java方法了。
看看例子 怎么调用的吧。
2.一个简单的DWR示例
第一步:拷贝dwr.jar到项目的lib目录下。
第二步:在web.xml文件中注册DWR核心Servlet
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
第三步:添加dwr.xml文件(DWR利用配置文件将java类 生成 JavaScript)
<?xml version="1.0" encoding="UTF-8"?>
<dwr>
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
</allow>
</dwr>
第四步:添加html页面(引入红色标记的js文件)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>TestDate</title>
<script type="text/javascript" src='dwr/engine.js'></script>
<script type="text/javascript" src='dwr/interface/JDate.js'></script>
<script type="text/javascript">
function init(){
JDate.getYear(call);//调用的是java.util.Date中的getYear方法
}
function call(data){
alert(data);
}
</script>
</head>
<body onload="init()">
</body>
</html>
第五步:部署项目,启动服务器,打开浏览器,在地址栏输入
http://127.0.0.1:8080/项目名/dwr/interface/JDate.js
然后就可以看到生成的js代码了。就是咱们dwr.xml配置文件中 Java中的java.util.Date类中的方法转化成JavaScript代码了。
// Provide a default path to dwr.engineif (dwr == null) var dwr = {};if (dwr.engine == null) dwr.engine = {};if (DWREngine == null) var DWREngine = dwr.engine;if (JDate == null) var JDate = {};JDate._path = '/beifengCRM/dwr';JDate.equals = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'equals', p0, callback);}JDate.toString = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'toString', callback);}JDate.hashCode = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'hashCode', callback);}JDate.clone = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'clone', callback);}JDate.compareTo = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'compareTo', p0, callback);}JDate.compareTo = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'compareTo', p0, callback);}JDate.parse = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'parse', p0, callback);}JDate.after = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'after', p0, callback);}JDate.before = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'before', p0, callback);}JDate.from = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'from', p0, callback);}JDate.getTime = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getTime', callback);}JDate.setTime = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setTime', p0, callback);}JDate.getDate = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getDate', callback);}JDate.UTC = function(p0, p1, p2, p3, p4, p5, callback) { dwr.engine._execute(JDate._path, 'JDate', 'UTC', p0, p1, p2, p3, p4, p5, callback);}JDate.getDay = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getDay', callback);}JDate.getHours = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getHours', callback);}JDate.getMinutes = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getMinutes', callback);}JDate.getMonth = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getMonth', callback);}JDate.getSeconds = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getSeconds', callback);}JDate.getTimezoneOffset = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getTimezoneOffset', callback);}JDate.getYear = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'getYear', callback);}JDate.setDate = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setDate', p0, callback);}JDate.setHours = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setHours', p0, callback);}JDate.setMinutes = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setMinutes', p0, callback);}JDate.setMonth = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setMonth', p0, callback);}JDate.setSeconds = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setSeconds', p0, callback);}JDate.setYear = function(p0, callback) { dwr.engine._execute(JDate._path, 'JDate', 'setYear', p0, callback);}JDate.toGMTString = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'toGMTString', callback);}JDate.toInstant = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'toInstant', callback);}JDate.toLocaleString = function(callback) { dwr.engine._execute(JDate._path, 'JDate', 'toLocaleString', callback);}
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- dwr学习
- DWR学习
- 学习dwr
- DWR学习
- 学习DWR
- DWR学习
- dwr学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- dwr学习
- AndroidStudio 中 buildSrc/src/main/groovy 的构建
- javaweb中的cookie
- 2017 Java 中== 与 equals 区别 终极见解
- Leetcode 191 Number of 1 Bits
- 安卓开发:从系统相册选择照片
- dwr学习
- Codeforces 359D Pair of Numbers【思维+二分+区间Gcd+区间最小值RMQ】
- 阿里云 CentOS7 安装 TOMCAT丶JDK丶MySQL
- javascript深入理解js闭包
- 毕业,不结束&青春,不散场
- http://www.360doc.com/content/17/0702/16/44981652_668216787.shtml
- Leetcode 204 Count Primes
- git的缺点(1) -- 不能add空文件夹
- JustOj 1256: 成绩排名 (结构体排序)