DWR笔记

来源:互联网 发布:手机h5软件开发 编辑:程序博客网 时间:2024/06/05 05:20

1.创建web工程。将dwr所需要的jar包导出,基本的jar文件包括

/DWRProject/WebRoot/WEB-INF/lib/bsf-2.3.jar

/DWRProject/WebRoot/WEB-INF/lib/bsh-2.0b4.jar

/DWRProject/WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar
/DWRProject/WebRoot/WEB-INF/lib/commons-validator-1.1.4.jar
/DWRProject/WebRoot/WEB-INF/lib/dwr.jar
/DWRProject/WebRoot/WEB-INF/lib/jakarta-oro-2.0.8.jar

/DWRProject/WebRoot/WEB-INF/lib/log4j-1.2.12.jar

2.配置web.xml 如下

<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

    <!-- This should NEVER be present in live -->
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>

    <!-- Remove this unless you want to use active reverse ajax -->
    <init-param>
      <param-name>activeReverseAjaxEnabled</param-name>
      <param-value>true</param-value>
    </init-param>

    <!-- By default DWR creates application scope objects when they are first
    used. This creates them when the app-server is started -->
    <init-param>
      <param-name>initApplicationScopeCreatorsAtStartup</param-name>
      <param-value>true</param-value>
    </init-param>

    <!-- This enables full streaming mode. It's probably better to leave this
    out if you are running across the internet -->
    <init-param>
      <param-name>maxWaitAfterWrite</param-name>
      <param-value>-1</param-value>
    </init-param>

    <!--
    For more information on these parameters, see:
    - http://getahead.org/dwr/server/servlet
    - http://getahead.org/dwr/reverse-ajax/configuration
    -->

    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

3.配置dwr.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">

<dwr>
  <allow>
    <create creator="new" javascript="Demo">
      <param name="class" value="org.getahead.dwrdemo.simpletext.Demo"/>
    </create>
  </allow>
</dwr>

4.jsp 页面

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">

        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type='text/javascript' src='dwr/engine.js'> </script>
  <script type='text/javascript' src='dwr/util.js'> </script>
  <script type='text/javascript' src='dwr/interface/Demo.js'> </script>
        <script type='text/javascript'>
        function update() {
          var name = dwr.util.getValue("demoName");
              Demo.sayHello(name, function(data) {
            dwr.util.setValue("demoReply", data);
                  });
        }
     </script>
    </head>

    <body>
        <p>
            Name:
            <input type="text" id="demoName" />
            <input value="Send" type="button" onclick="update()" />
            <br />
            Reply:
            <span id="demoReply"></span>
        </p>
    </body>
</html>
注意:script的路径问题。