实例详细DWR应用过程

来源:互联网 发布:入门编程语言 编辑:程序博客网 时间:2024/05/22 17:14

 7.2.1 编辑配置web.xml文件
要应用DWR框架,首先需要在web.xml文件中设置DWR,以下配置内容必须被添加到WEN-INF/web.xml文件中。要把<servlet>和其他<servlet>放在一起,<servlet-mapping>要和其他<servlet-mapping>放在一起。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置DWR的核心Servlet -->
<listener>
       <listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
      </listener>
<servlet>
<!-- 指定DWR核心Servlet的名字 -->
   <servlet-name>dwr-invoker</servlet-name>
   <servlet-class>
<!-- 指定DWR核心Servlet的实现类 -->
    org.directwebremoting.servlet.DwrServlet
   </servlet-class>
<!-- 指定DWR核心Servlet处于调试状态 -->
   <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
<!-- 指定核心Servlet的URL映射 -->
<servlet-mapping>
   <servlet-name>dwr-invoker</servlet-name>
   <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
7.2.2 编辑配置dwr.xml文件
在web.xml的同一目录下,创建一个DWR的配置文件dwr.xml,并且将要被调用的java类写入其中。配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<filter class="org.directwebremoting.filter.AuditLogAjaxFilter"/>
    <create creator="new" javascript="service">
    <param name="class" value="com.ajax.dwr.AjaxService" />
   </create>
</allow>
</dwr>
7.2.3 编辑Java类
下面编写一个简单类并加一个方法,实现代码如下:
package com.ajax.dwr;
public class AjaxService {
public String sayHello(String yourName) {
   //可以是访问数据库的复杂代码
   return "欢迎使用DWR应用示例,您输入的用户名为: " + yourName;
   }
}
7.2.4 测试DWR
部署应用程序并启动服务后,在地址栏输入http://localhost:8081/Ajaxapp/dwr,出现如图7-2所示的页面。在页面中单击“service”项,出现如图7-3所示页面,在页面中会看到AjaxService类的sayHello()的方法,输入姓名后单击“Execute”,如果返回的结果正确,表示测试通过,可以进入下一步开发。

图7-2 DWR测试页面

图7-3 测试服务类运行页面
7.2.5 编写jsp
接下来创建一个jsp文件,在文件中使用DWR需要注意以下事项:
(1) 要引用dwr的js文件,其中engine.js是必须要引用的文件,如果需要用到dwr提供的一些工具,还需要引用util.js。
(2) 然后还要引用dwr自动生成的js文件,如上例子的文件为dwr/interface/service.js,注意js文件名字要与dwr.xml中配置的javascript名称一样。
(3) js里的service.sayHello方法和java类的方法有一个区别,多了一个参数,用来callback返回的数据。
下面是调用AjaxService类的sayHello()方法的JSP文件,实现代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
   <title>My JSP 'first_dwr.jsp' starting page</title>
   <script src="dwr/interface/service.js"></script>
   <script src="dwr/util.js"></script>
   <script src="dwr/engine.js"></script>
   <script type="text/javascript">
function firstDwr(){
service.sayHello(document.myform.user.value,callBackHello);
}
function callBackHello(data)
{
alert(data);
}
</script>
</head>
<body>
<form name="myform">
     <input type="text" name="user">
   <input type="button" name="button" value="测试" onclick="firstDwr()">
</form>
</body>
</html>
发布文件后,在地址栏输入http://localhost:8081/Ajaxapp/dwr.jsp,在出现的页中,输入字符串后单击“测试”按钮,程序运行结果如图7-4所示。

图7-4 JSP运行页面

原创粉丝点击