Ajax 之 DWR

Posted 千彧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax 之 DWR相关的知识,希望对你有一定的参考价值。

  DWR是开源框架,类似于hibernate。借助于DWR,开发人员无需具备专业的javascript知识就可以轻松实现Ajax,是Ajax更平民化。

  1. 添加jar包   dwr.jar   commons-logging-1.1.3.jar  Struts框架中有log包
  2. 修改项目的web.xml,添加Servlet映射
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
     3   <display-name>AjaxDwr</display-name>
     4   <welcome-file-list>
     5     <welcome-file>index.jsp</welcome-file>
     6   </welcome-file-list>
     7   <servlet>
     8       <servlet-name>dwr-invoker</servlet-name>
     9       <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    10       <init-param>
    11           <param-name>debug</param-name>
    12           <param-value>true</param-value>
    13       </init-param>
    14       <!-- 添加crossDomainSessionSecurity参数 -->
    15       <init-param>
    16           <param-name>crossDomainSessionSecurity</param-name>
    17           <param-value>false</param-value>
    18       </init-param>
    19   </servlet>
    20   <servlet-mapping>
    21       <!-- 以/dwr/起始的全部URL所指向的请求都交给org.directwebremoting.servlet.DwrServlet 来处理 -->
    22       <servlet-name>dwr-invoker</servlet-name>
    23      <url-pattern>/dwr/*</url-pattern>
    24   </servlet-mapping>
    25 </web-app>

     

  3. 创建dwr.xml文件   在项目的web-inf 文件夹下创建
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE dwr PUBLIC 
     3     "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
     4     "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
     5 <dwr>
     6     <allow>
     7     <!-- 配置文件定义哪个java类,可以被DWR应用创建并通过JavaScript调用,
     8         这里为java.util.Date,并给这个类赋予一个javascript名称 AjaxDate
     9         通过修改dwr.xml也可以将自定义的java类公开给JavaScript远程调用 
    10     -->
    11     <!-- creator属性时必须的,他指定了使用哪种创造器,
    12             new :最常用,他代表将使用java类默认的无参构造方法创建类的实例对象
    13             scripted :使用脚本语言来创建java类对象
    14             Spring : 使用spring框架的bean来创建对象
    15      -->
    16     <create creator="new" javascript="AjaxDate">
    17         <param name="class" value="java.util.Date"/>
    18         <!--  可以选择将类的方法公开给javascript调用 -->
    19         <include method="toString"/>
    20     </create>
    21     </allow>
    22 </dwr>

     

  4. 使用JavaScript远程调用Java类方法
     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <html>
     4   <head>
     5     <title>DWR 应用</title>
     6     
     7     <script language="javascript" src="dwr/interface/AjaxDate.js"></script>
     8     <script language="javascript" src="dwr/engine.js"></script>
     9     <script language="javascript" src="dwr/util.js"></script> 
    10     <script language="javascript">
    11         function doTest(){
    12         AjaxDate.toString(load);
    13         }
    14         function load(data){
    15         window.alert("现在时间是:"+data);
    16         }
    17     </script>
    18   </head> 
    19   <body>
    20    <input type="button" value="查询现在时间" onclick="doTest()">
    21   </body>
    22 </html>

     

以上是关于Ajax 之 DWR的主要内容,如果未能解决你的问题,请参考以下文章

DWR组件——基于远程过程调用实现Ajax

DWR3.0框架入门 —— 实现ajax

DWR(AJAX)+Highcharts绘制曲线图,饼图

dwr-Ajax开源框架

JavaWeb DWR使用总结(skycto jeeditor框架功能)

DWR与AJAX