Ajax 之 DWR
Posted 千彧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax 之 DWR相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章