首先要明确,DWR是一个用于改善web页面和java类交互的远程服务器端Ajax开源框架。它允许在浏览器里的代码使用运行在Web服务器上的java函数,就如同它在浏览器里一样。java代码允许在服务器端,开源自由的访问Web服务器资源(包括数据库),同时用回调函数接收返回的值(实现对数据的处理)。
现在配置一个简单的dwr_demo来简要梳理一下思路。
1.新建一个dwr_demo工程,将DWR框架要用到的jar包,复制到WEB-INF/lib的目录下。这些jar包包括:
2.在web.xml中配置DWRServlet的路径(和其他Servlet的配置差不多)
<servlet>
<display-name>DWRServlet</display-name>
<servlet-name>dwr</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</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3.配置dwr.xml.(
DWR 配置文件定义了由 DWR 创建和被 Javascript 远程使用的类。下面我们创建了2个类,并且给 出了在 Javascript 中的类名。
)
public String sayHello(String yourName) {
//可以是访问数据库的复杂代码
return "欢迎使用DWR应用示例,您输入的用户名为: " + yourName;
}
}
4.在jsp页面中如何调用配置好的AjaxServlet类。
</script>
</form>(一个简单的表单)
dwr.jar ;commons-logging-1.0.4.jar ;commons-io-1.3.1.jar ;common-fileupload-1.2.jar ;
itext-2.0.6.jar ;jakarta-oro-2.0.8.jar ;log4j-1.2.12.jar
。
<dwr>
<allow>
<create creator="new" javascript="service">
<param name="class" value="com.ajax.dwr.AjaxService" />
</create>
</allow>
</dwr>
*--------------备注-----------------*
AjaxService类的代码:
public class AjaxService {
*--------------备注-----------------*
首先添加 <script src="dwr/interface/service.js"></script>
<script src="dwr/util.js"></script>
<script src="dwr/engine.js"></script>
然后
<script type="text/javascript">
function firstDwr() {
service.sayHello(document.myform.user.value, callBackHello);
}
function callBackHello(data) {
alert(data);
}
下面是具体的jsp代码:<form name="myform">
<input type="text" name="user">
<input type="button" name="button" value="测试" onclick=
firstDwr();
>
这样一个简单应用Ajax的工程就初步完成了。