总是跟在开发商后面学习,系统使用了DWR技术,只好跟着开始琢磨这个东西,不为别的,只为能看懂他们的代码。命苦啊。
接下来就是记录了:
1、准备eclipse、tomcat,略过;新建web project,略过。
2、下载那个dwr.jar, 放到项目的WEB-INF\lib下面(j2ee的规定目录)。
3、修改WEB-INF\web.xml,在中添加:
dwr-invokerorg.directwebremoting.servlet.DwrServletdebugtruedwr-invoker/dwr/*
4、在WEB-INF\下新建dwr.xml配置文件,内容如下:
1 dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">2 3 4 5 6 7 8 9 10 11
5、新建Hello.java文件:
1 packagecom.myclass;2 3 publicclassHello {4 publicString Say(String msg)5 {6 return"hello,"+msg;7 }8 publicString Say()9 {10 return"hello,world";11 }12 }
6、修改jsp代码:
1 3 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">4 5
6 7 8 9 10 hello world11 12 26 27 huha,My JSP!28 29 30 31
需要说明的是:
a、第8、9行是dwr提供的,util.js提供了有用的函数,如dwr.util.getValue()就是一个,获取页面上控件值。
b、第7行是dwr根据java的Hello类创造的js,在dwr.xml中定义,在17行中调用。可以很自由的把java类当成js类使用。
c、整个的调用过程是:客户端事件触发执行js代码1,该代码使用ajax方式调用服务器的java代码,返回后系统会将返回值作为参数再调用客户端js代码2。
d、第17行的调用需要说明一下,Say函数(代码1)有两个参数,一个是java类需要的入口参数,后一个是客户端的回调函数,该回调函数就是在Ajax方式下服务器代码执行完后需要调用客户端执行的js代码2。服务器java类执行完后的返回值会作为参数送入该回调函数。
以上只是dwr的hello world代码。