天天看点

dwr简单指南

dwr可以让我们在浏览器中使用javascript调用服务器端的java代码。

dwr主要包括两部分:

运行在客户端的js代码发送请求到服务器端;

服务器端的dwr servlet处理请求,并将结果和数据返回到客户端。

有一张关于dwr很精确的图:

dwr简单指南

DWR简单配置:

1.首先dwr.jar是必须的。下载后放在/WEB-INF/lib目录下。

2.在/WEB-INF/目录下,增加一个dwr.xml文件。格式如下:

<dwr>
	<allow>
		<create creator="new" javascript="JDate">
			<param name="class" value="java.util.Date"/>
		</create>
		<create creator="spring" javascript="winnerService">
			<param name="beanName" value="dwrWinnerService"/>
		</create>
	</allow>
</dwr>      

根节点是dwr,我在第一次配置这个dwr.xml的时候,忽略掉了,根结点直接就是allow,然后就一直报错,很脑残的错误。所以在这里也稍微提醒一下。

create的creator属性常用的为new和spring。new就是每次调用的时候,都会实例化一个新的对象来处理请求;spring就是从Spring的配置文件中取得bean。

以JDate为例,javascript属性是DWR动态为服务器端的Date类(java)生成一个相应的客户端JDate类(Javascript)。JDate可以使用Date的所有public方法。

3. 配好了dwr.xml,接下来配置/WEB-INF/web.xml。我们需要在web.xml中增加如下<servlet>和<servlet-mapping>:

<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <display-name>DWR Servlet</display-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  <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就是用来处理dwr发送的请求。

4. dwr访问

这时候,如果你已经在本地启动了你的应用(假设是在tomcat中),可以访问如下URL:

http://localhost:8080/[YOUR-APP-NAME]/dwr

 你会看到在dwr.xml配置的两个类.点击JDate,可以看到所有可以调用的方法,并且可以点击,在按钮的右边看到点击的反馈.

在这个页面的上方,你还会看到如下代码:

<script src='/[YOUR-APP-NAME]/dwr/interface/JDate.js'></script>
<script src='/[YOUR-APP-NAME]/dwr/engine.js'></script>      

 当你的页面需要使用JDate时,就必须把上面的script代码片段放到你的页面中。

<script type="text/javascript">
    JDate.toString({
        callback: function(str) { alert(str); }
   });
</script>      

 我们就可以使用JDate了.

这里主要是为了介绍一下dwr最基本的使用,那么dwr的一些其他能力,比如超时处理和错误处理,就不在这里说了.

继续阅读