小苏_呵呵 发表于 2013-1-22 21:50:07

DWR的应用及作用

第一步:将下载好的dwr.jar和commons-logging.jar包导入到lib下。

第二步:配置web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      
      <servlet>
            <servlet-name>dwr-invoker</servlet-name>
            <!-- 2.x以上的版本配置如下 -->
            <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
            <!-- 1.x以上的版本配置如下 -->
            <!-- <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> -->
            <init-param>
                <param-name>debug</param-name>
                <param-value>true</param-value>
            </init-param>
            <!-- 解决java.lang.IllegalArgumentException: DefaultContainer can't find a classes -->
            <init-param>
                <param-name>classes</param-name>
                <param-value>java.lang.Object</param-value>
            </init-param>
            <load-on-startup>100</load-on-startup>
      </servlet>
      <servlet-mapping>
            <servlet-name>dwr-invoker</servlet-name>
            <url-pattern>/dwr/*</url-pattern>
      </servlet-mapping>
      
      <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

第三步:在与web.xml同目录下添加一个dwr.xml文件,配置如下:

    <?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>
            <create creator="new" javascript="test">
                <param name="class" value="com.dwr.Hello" />
            </create>
      </allow>
    </dwr>

第四步:dwr.xml的配置可知在com.dwr包下写一个Hello类

    package com.dwr;
      
    public class Hello {
      public String sayHello(String name) {
            // 可以是访问数据库的复杂代码
            return "Hello " + name;
      }
    }

第五步:写一个jsp页面,如index.jsp


    <%@ page language="java" pageEncoding="UTF-8"%>
    <html>
      <head>
            <title>My JSP 'first_dwr.jsp' starting page</title>
            <script type='text/javascript' src='dwr/util.js'></script>
            <script type='text/javascript' src='dwr/engine.js'></script>
            <script type='text/javascript' src='dwr/interface/test.js'></script>
            <script type="text/javascript">
               
                function hello() {
                  //解决3.x版本DWRUtil未定义问题   
                  if (typeof window['DWRUtil'] == 'undefined')
                        window.DWRUtil = dwr.util;
                  var input =DWRUtil.getValue("name");
                  test.sayHello(input,callback);
                }
                function callback(str) {
                  if (typeof window['DWRUtil'] == 'undefined')
                        window.DWRUtil = dwr.util;
                  DWRUtil.setValue("show",str);
                }
            </script>
      </head>
      <body>
            姓名:
            <input id="name" type="text" />
            <input type='button' value='运行' onclick='hello();' />
            <p>
            <div id="show" style="color:red;"></div>
      </body>
    </html>
页: [1]
查看完整版本: DWR的应用及作用