DWR是开源框架,类似于hibernate。借助于DWR,开发人员无需具备专业的JavaScript知识就可以轻松实现Ajax,是Ajax更平民化。
- 添加jar包 dwr.jar commons-logging-1.1.3.jar Struts框架中有log包
- 修改项目的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>
- 创建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>
- 使用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
原文地址:http://www.cnblogs.com/the-wang/p/7800691.html