[DWR(Ajax)]DWR使用笔记
     DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码。它的实现是基于ajax的,可以实现无刷新效果。 
    网上有不少DWR的例子,但大都只是某种方法的调用,本文只在使用层面上介绍DWR,并不涉更多的技术与设计,其目的是让初学者能够很快的学会各种java方法在javascript中是如何调用的。 
    本文以DWR 1.1 为基础,对于DWR 2.0,因为还没有正式发布版,故不做介绍。 
一、 dwr配置篇之web.xml 
   1 、最小配置 
<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> 
2、当我们想看DWR自动生成的测试页(Using debug/test mode)时,可在servlet配置中加上 
<init-param> 
  <param-name>debug</param-name> 
  <param-value>true</param-value> 
</init-param> 
这个参数DWR默认是false。如果选择true,我们可以通过 http://localhost:port/app/dwr看到你部署的每个DWR class。并且可以测试java代码的每个方法是否运行正常。为了安全考虑,在正式环境下你一定把这个参数设为false。 
3、多个dwr.xml文件的配置 
可能有几种情况,我们一一列举。一个servlet,多个dwr.xml配置文件;多个servlet,每个servlet对应一个或多个dwr.xml配置文件。 
3.1、一个servlet,多个dwr.xml配置文件 
<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
      <param-name>config-1</param-name>
      <param-value>WEB-INF/dwr1.xml</param-value>
    </init-param>
    <init-param>
      <param-name>config-2</param-name>
      <param-value>WEB-INF/dwr2.xml</param-value>
    </init-param>
</servlet> 
在这种配置下,param-name的值必须以config开头。param-name可以有>=0个。如果没有param-name,那么将会读取 WEB-INF/dwr.xml。如果有大于零个param-name,那么WEB-INF/dwr.xml文件将不会被读取。 
3.2 、多个 servlet ,每个 servlet 对应一个或多个 dwr.xml 
<servlet> 
   <servlet-name>dwr-invoker</servlet-name> 
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
</servlet> 
<servlet> 
   <servlet-name>dwr-invoker1</servlet-name> 
   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
   <init-param> 
     <param-name>config-admin</param-name> 
     <param-value>WEB-INF/dwr1.xml</param-value> 
   </init-param> 
   <init-param> 
     <param-name>debug</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> 
<servlet-mapping> 
   <servlet-name>dwr-invoker1</servlet-name> 
   <url-pattern>/dwr1/*</url-pattern> 
</servlet-mapping> 
在这种情况下,我们可以根据 J2EE security 来控制权限,针对不同 url, 加不同的角色。   
二、 dwr使用篇 
1、调用没有返回值和参数的JAVA方法 
1.1、dwr.xml的配置 
<dwr> 
<allow> 
<create creator="new" javascript="testClass" > 
<param name="class" value= "com.dwr.TestClass" /> 
<include method="testMethod1"/> 
</create> 
</allow> 
</dwr> 
<allow> 标签中包括可以暴露给 javascript 访问的东西。 
<create> 标签中指定 javascript 中可以访问的 java 类,并定义 DWR 应当如何获得要进行远程的类的实例。 c