`
hgz123
  • 浏览: 107893 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

dwr的一个实例(参考蓝杰--胡东峰相关资料)

阅读更多

欢迎访问: www.ptcms.cn

第一:新建项目

第二:加载dwr.jar包

第三:修改web.xml文件

---------------------------------------------

<?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>
    <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>
 
 <!-- /dwr -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

--------------------------

第四:在WEB-INF目录下 新建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>

    <!-- intro - for the test on index.html -->
    <create creator="new" javascript="UserManager2">
      <param name="class" value="cn.lh.dwr.UserManager2"/>
    </create>
    <convert match="cn.lh.bean.dwr.UserInfo" converter="bean" />
 
  </allow>

</dwr>
---------------------------------

第五:建立后台代码:

-------------bean------------

package cn.lh.bean.dwr;

public class UserInfo {

     private int id;
     private int areaID;
     private String name;
     private int fixFee;
    
     public int getId() {
   return id;
  }
  public void setId(int id) {
   this.id = id;
  }
  public int getAreaID() {
   return areaID;
  }
  public void setAreaID(int areaID) {
   this.areaID = areaID;
  }
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public int getFixFee() {
   return fixFee;
  }
  public void setFixFee(int fixFee) {
   this.fixFee = fixFee;
  }
  //for debug
     public String toString(){
       return "id: "+id+" areaID:"+areaID+" name:"+name+" fixFee:"+fixFee;
     }

----------------------------

--------逻辑代码被dwr暴露的代码---------

package cn.lh.dwr;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;

 

import cn.lh.bean.dwr.UserInfo;

public class UserManager2 {

 //用于生成用户唯一的ID
 private static int userID = 0 ;
 //区域列表在装载类时 初始化
 private static Map area = new HashMap() ;
 static{
  for(int i=0;i<4;i++){
   area.put(1, "a") ;
   area.put(2, "b") ;
   area.put(3, "c") ;
   area.put(4, "d") ; 
  }
 }
 //返回区域列表
 public Map getArea(){
  return area ;
 }
 /*
  * 根据地区代号提取用户列表
  */
    // 根据地区代号提取用户列表
 public List<UserInfo> getUserByAreaID(int areaID){
  System.out.println("AreaID : "+areaID);
  List<UserInfo> userList=new ArrayList();
  //模拟生成用户列表
  int count=new java.util.Random().nextInt(5)+4;
  for(int i=1;i<=count;i++){
   userID++;
   UserInfo us=new UserInfo();
   
   us.setId(userID);
   us.setAreaID(areaID);
   us.setName("第"+userID+"个用户");
   us.setFixFee(100*i);
   userList.add(us);
  }
  return userList;
 }
 //修改用户信息
 public boolean updateUser(UserInfo userinfor){
   return true ;
 }
 public static void main(String args[]){
  
  
 }
}
------------------------------------

第六: 建立jsp文件和相关js文件 及 添加 dwr 相关js文件---直接看jsp文件

--------------------

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
 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 'userinfor_manager.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">
  <!--引入dwr的js脚本-->
  <script src="dwr/interface/UserManager2.js"></script>
  <script src="dwr/engine.js" /></script>
  <script src="dwr/util.js" /></script>

  <script type="text/javascript">
  //定义一个数组,用以缓存表中的用户信息
    var userCach = { };  
function fill_select_user_area() {
   
 UserManager2.getArea(callback);
}
function callback(data) {
 DWRUtil.removeAllOptions("select_user_area");
 DWRUtil.addOptions("select_user_area", data);
}
function displayselectUserArea(sua) {
   
 UserManager2.getUserByAreaID(sua.value, call_table);
 
}
function call_table(data) {
  
 dwr.util.removeAllRows("userTable");
 var dtable = document.getElementById("userTable");
 
 for (var i = 0; i < data.length; i++) {
    
  var theUser = data[i];
  
  var eltr = dtable.insertRow( -1 );
  var userTableRowId = 1000 * i;
  
  eltr.setAttribute("id",userTableRowId);
  
        var idTd = eltr.insertCell( -1 );
        idTd.innerHTML= theUser.id ;
       
         var areaTd = eltr.insertCell( -1 );
        areaTd.innerHTML=theUser.areaID ;
       
          var nameTd = eltr.insertCell( -1 );
        nameTd.innerHTML=theUser.name ;
       
          var fixFeeTd = eltr.insertCell( -1 );
        fixFeeTd.innerHTML=theUser.fixFee ;
       
        var editor = eltr.insertCell(-1);
        var EditorButton = "<input type=\"button\" value=\"修改\" onclick=\"editoruser("+theUser.id+");\"/>" ;
        var DeleteButton = "<input type=\"button\" value=\"删除\" onclick=\"deleteRowbyid("+theUser.id+","+userTableRowId+");\"/>";
        editor.innerHTML = EditorButton+"  "+DeleteButton ;
       
       userCach[theUser.id] = theUser ;
 }
}

  function deleteRowbyid(userid,rowid){
     var user = userCach[userid] ;
     if(window.confirm("确定删除"+user.name+"?"))
     {
      var rowToDelete = document.getElementById(rowid);
      var t_body = document.getElementById("userTable");
      t_body.removeChild(rowToDelete) ;
     }
  }
  //把要编辑的先显示出来
  function editoruser(userid){
   document.getElementById("editorID").style.visibility ="visible" ;
   var theUser = userCach[userid] ;
   var demoUser = {spanuserid:theUser.id ,iptname:theUser.name,iptarea:theUser.areaID,iptfixFee:theUser.fixFee} ;
   dwr.util.setValues(demoUser);
 
  }
  //修改用户信息
  function updateUser(){
    var userinfor = new Object();
    userinfor.id =dwr.util.getValue("spanuserid");
    userinfor.name = dwr.util.getValue("iptname");
    userinfor.areaID = dwr.util.getValue("iptarea");
    userinfor.fixFee = dwr.util.getValue("iptfixFee");
    UserManager2.updateUser(userinfor,callback_user);
  }
  function callback_user(result){
  
    if(result){
    
     window.alert("修改成功!!");
    
    }
 
  }
     </script>

 </head>
 <body onload="fill_select_user_area();">
  根据区域提取未处理客户:
  <select id="select_user_area" onchange="displayselectUserArea(this)"></select>
  <table border="1">
   <thead>
    <tr>
     <th>
      序号
     </th>
     <th>
      所属地区
     </th>
     <th>
      用户名
     </th>
     <th>
      费用
     </th>
     <th>
      操作
     </th>
    </tr>
   </thead>
   <tbody id="userTable"></tbody>
  </table>
  <!-- 初始不可见 -->
  
  <div id="editorID" style="visibility:hidden" >
  要修改的用户:
  <hr>
   用户序号:<span id="spanuserid"></span><br/>
   用户名字:<input id="iptname" type="text" size="10" /><br/>
          所属地区:<input id="iptarea" type="text" size="10" /> <br/>
          用户额度:<input id="iptfixFee" type="text" size="10" /> <br/>
        <br/>
         <input type="button" value="保存" onclick="updateUser();"/>
  </div>
 </body>
</html>
-------------------------------------------

 

 

 

1
0
分享到:
评论
1 楼 amcucn 2008-11-27  
楼主的代码让人看得眼花,最后在发表文章的时候使用代码格式

相关推荐

    dwr消息推送实例--网页聊天窗口

    使用dwr做消息推送的案例。 这是一个myeclipse下开发的web,只要放入tomcat中就能运行。

    dwr+spring实例

    本实例"DWRSpring实例"是一个使用DWR与Spring框架结合的消息发布系统,包含了基础的CRUD(Create、Read、Update、Delete)操作。通过这个例子,我们可以深入理解DWR和Spring如何协同工作,以及它们在实际开发中的...

    DWR简单配置说明---xml、java、jsp层层说明

    这一步是为了告诉Web容器如何处理与DWR相关的请求。 ```xml &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt; &lt;servlet-mapping&gt; ...

    dwr入门 -- 03 -- 结合Spring

    这通常涉及在Spring的`applicationContext.xml`中声明DWR相关的bean,并配置Spring的`Controller`来处理DWR请求。 5. **安全与性能考虑**:在结合Spring的情况下,学习如何确保DWR调用的安全性,避免跨站脚本攻击...

    dwr源码包,dwr.jar包下载

    1、 导入dwr.jar包 2、 在web.xml中配置dwr,如下: &lt;!-- 配置DWR --&gt; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;servlet-class&gt; org.directwebremoting.servlet.DwrServlet &lt;/servlet-class&gt; ...

    DWR 入門與應用-林信良

    DWR (Direct Web Remoting) 是一个开源的Java库,用于在Web应用程序中实现Ajax功能,使得JavaScript可以直接调用服务器端的Java方法,从而实现实时的、无需刷新页面的数据交互。DWR充当了Java开发者和网页设计者之间...

    dwr入门 -- 01 -- Hello Word

    本教程将带你走进DWR的世界,通过一个简单的"Hello World"示例来了解其基本使用。 ### 一、DWR简介 DWR的核心概念是"Remoting",即远程调用,它使得JavaScript可以像调用本地方法一样调用服务器上的Java方法。DWR...

    dwr经典实例(9个常用实例)

    DWR (Direct Web Remoting) 是一个开源JavaScript库,它允许Web应用程序与服务器端Java对象进行实时交互,实现异步更新页面,无需刷新整个页面。这个压缩包文件"dwrtest"很可能包含了9个经典的DWR实例,这些实例通常...

    整理好的DWR-2.0.5-src

    这个不是我的原创,原文件出至这里:http://d.download.csdn.net/detail/jimyx123/1533286#comment 原资源包含了,源代码和API Doc,只是美中不足的是没有整理成可用的zip文档,我这特分离了一下,并重新打好包了,...

    dwr.jar/dwr-2.0.5-src.zip/dwr.zip

    使用DWR时,首先要在服务器端创建一个DWR引擎实例,并配置允许客户端访问的Java对象和方法。接着,在客户端,通过引入DWR生成的JavaScript文件,就可以直接调用这些服务器端的方法。DWR简化了跨域问题,让开发者...

    dwr,jar和dwr-noncla.jar

    Direct Web Remoting (DWR) 是一个开源Java库,它允许在Web应用程序中轻松地进行JavaScript和服务器端Java代码之间的交互。DWR使得AJAX(Asynchronous JavaScript and XML)开发更为简便,允许开发者在不刷新整个...

    dwr实例操作+rmi实例操作

    通过DWR和RMI的实例操作,我们可以构建出一个具有动态交互特性的Web应用,其中DWR负责前端与后端的异步通信,而RMI则处理后台的分布式计算和数据交换。这两个技术的结合可以为复杂的Web应用提供高效且灵活的解决方案...

    dwr入门 -- 02 -- HelloWord解释&&使用javabean

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态的Web应用。在"HelloWorld解释&&使用javabean"这个主题中,我们将深入理解DWR的基本概念、工作...

    dwr实例教程 很好的入门实例

    ### dwr实例教程知识点解析 #### 一、DWR简介及功能特点 DWR(Direct Web Remoting)是一种简化Ajax应用开发的技术框架。它能够使客户端的JavaScript代码直接调用服务器端的Java方法,实现数据的实时交互。与传统...

    dwr 实例 Dwr实例

    自己写的dwr实例。方便大家学习,包括jar文件,希望对大家有帮助

    DWR所需要的包与基本web.xml

    1. **DWR Filter**:添加一个名为`dwr-invoker-filter`的Filter,用来拦截所有DWR相关的HTTP请求。 2. **DWR Servlet**:声明一个名为`dwr-invoker`的Servlet,它会处理DWR的请求。在这里,你需要指定Servlet的类名...

    引:dwr实例

    DWR(Direct Web Remoting)是一个开源的Java库,它允许JavaScript在浏览器中与服务器上的Java对象进行交互,实现了Web应用中的Ajax功能。DWR使得Web开发者可以方便地在客户端进行服务器端方法的调用,极大地提升了...

    dwr推技术官方实例

    压缩包内的"chat(dwrAjax反转)"文件可能是DWR聊天室的示例,它展示了如何使用DWR的推技术实现一个简单的实时聊天应用。在这个示例中,用户可以通过JavaScript与服务器进行交互,发送消息,同时服务器也能在接收到新...

    dwr2.0.2.jar + bsf-2.3.jar+xml-apis.jar

    标题 "dwr2.0.2.jar + bsf-2.3.jar+xml-apis.jar" 暗示了这是一个关于Web应用程序开发中的某些组件的集合,主要涉及Direct Web Remoting (DWR) 和 Java脚本引擎接口。描述与标题相同,进一步确认了这可能是一个包含...

    一个完成的dwr初学实例

    在这个“一个完成的dwr初学实例”中,我们将探讨DWR的基本概念、工作原理以及如何创建一个简单的DWR应用。 1. **DWR简介** DWR的核心功能是提供一种简单的方法来调用服务器端的方法,就像它们是本地JavaScript函数...

Global site tag (gtag.js) - Google Analytics