DWR使用入门教程
2014-10-22 15:35
393 查看
1.DWR简介
DWR(Direct Web Remoting)是一个Ajax的开源框架,用于改善web页面与Java类交互的远程服务器端的交互体验,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。2.开发流程
编写业务代码,该代码是和dwr无关的。确认业务代码中哪些类、哪些方法是要由javascript直接访问的。
编写dwr组件,对步骤2的方法进行封装。
配置dwr组件到dwr.xml文件中,如果有必要,配置convert,进行java和javascript类型互转。
通过反射机制,dwr将步骤4的类转换成javascript代码,提供给前台页面调用。
编写网页,调用步骤5的javascript中的相关方法(间接调用服务器端的相关类的方法),执行业务逻辑,将执行结果利用回调函数返回。
在回调函数中,得到执行结果后,可以继续编写业务逻辑的相关javascript代码。
3.简单样例
3.1.样例说明
参照DWR源码自带样例,完成一个sayHello功能,通过此样例熟悉dwr的运行原理和编写规范。3.2.下载资源
从DWR官网下载最新版本的jar包,地址:http://directwebremoting.org/dwr/downloads/index.html将jar包放入WEB-INF的lib文件夹下。同时,dwr依赖于commons-logging.jar这个包,所以必须将这个jar包也放入到WEB-INF的lib文件夹下。3.3.web.xml文件
首先是配置dwr的环境:<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.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> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
3.4.dwr.xml文件
从官网的jar.war文件中利用winRAR等软件提取出dwr.xml文件,并将其放入到WEB-INF文件夹下。 dwr.xml是dwr的核心配置文件,主要的标签有:<converter>、<convert>、<create>这三个标签。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="Demo"> <param name="class" value="com.agileai.test.simpletext.Demo"/> </create> </allow></dwr>
其中,creator和javascript是必须属性,其他可以忽略。creator包含有以下几个值:new:Java用“new”关键字创造对象
none:它不创建对象 (v1.1+)
scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy
spring:通过Spring框架访问Bean
struts:使用Struts的FormBean (v1.1+)
jsf:使用JSF的Bean (v1.1+)
pageflow:访问Weblogic或Beehive的PageFlow (v1.1+)
ejb3:使用EJB3session bean (v2.0+)3.5.Html文件
<html><head> <title>简单文本生成样例</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <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/Demo.js'> </script> <script type="text/javascript"> function update() { var name = dwr.util.getValue("demoName"); Demo.sayHello(name, function(data) { dwr.util.setValue("demoReply", data); }); } </script></head><body> 姓名: <input type="text" id="demoName"value="Joe"/> <input value="发送" type="button"onclick="update()"/><br/> 回复: <span id="demoReply"></span></body></html>
其中engine.js必须要,如果需要用到dwr提供的一些方便的工具要引用util.js,然后是dwr自动生成的js文件,名字必须和dwr.xml中create标签的javascript属性值一样,且是dwr/interface开头的目录。
3.6.Java文件
package com.agileai.test.simpletext; publicclassDemo { public String sayHello(Stringname) { return"Hello, "+ name; } }3.7.运行原理
当你点击浏览器调用的“发送”按钮onclick事件,调用update()函数。在服务器上,DWR调用Demo.sayHello()的Java方法。
该方法返回的时候,DWR调用回调函数,设置回复值。
相关文章推荐
- DWR 入门教程 之 <signatures>标签使用
- DWR使用入门教程
- JSP入门初级教程之Actions的使用
- PRADO 2.0.1 快速入门教程 -- 第二章.使用PRADO编程
- 欢迎使用 ASP.NET 入门教程
- phpMyAdmin下载、安装和使用入门教程
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- 使用Visual Studio2005入门asp.Net2.0系列视频教程
- JSP入门初级教程之Actions的使用
- JSP入门初级教程之Session的使用
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- JSP入门初级教程之Session的使用
- vs2005入门视频教程 之 主题和皮肤使用二
- vs2005入门视频教程 之 主题和皮肤使用一 [视频]
- JSP入门初级教程之plugin的使用
- JSP入门初级教程之Actions的使用
- linux入门教程 第3章 rh使用指南
- PHP快速入门教程:WHILE循环的使用示例
- Lex和Yacc入门教程(八).使用堆栈编译语法
- 使用XFire开发WebService入门教程