- 浏览: 1273920 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
DWR入门笔记 DWR : direct web remoting 它允许java server和 JavaScript尽可能简单的相互调用 从DWR2.0开始就需要使用commons-logging包 DWR2.0与DWR3.0差别很大 engine.execute(,,,,callback); 一对{}在JS中就表示一个对象,因此JSON——{username:"huangbiao",id:1}就表示一个对象 javabean:可重用的组件 关于map循环 for(var data in map){ alert(data + "?" + map[data]); } 初级入门 1、和lib文件夹在同一路径级别下添加dwr.xml和web.xml相关的配置信息 2、在JSP页面中尽量按照如下顺序引入,因为大家都是这么弄的,而且JS是顺序加载的,如果不按照这个顺序可能会引起其他问题(简单测试改换顺序是没有影响的),给编写代码中养成良好的习惯 <script type='text/javascript' src='dwr/interface/service.js'> </script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> 3、src='dwr/interface/service.js' 中的service就当作是服务器端需要处理的对象——前提是需要在dwr.xml文件中配置 4、dwr.xml配置信息如下 <allow> <create creator="new" javascript="service"> <param name="class" value="hb.server.Test1"></param> </create> </allow> 其中creator表示创建对象的方式是“new”一个新的对象,javascript="service"表示与页面对应的名称是service,因此在页面中需要与src='dwr/interface/service.js'对应,格式是固定的 里面的参数name="class"表示指明这个类的路径 value="hb.server.Test1"表示这个类的全路径 5、web.xml配置信息的描述 <servlet> <display-name>DWR Servlet</display-name> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> 上述描述方式实际上就是一个servlet,当路径为/dwr/*时就执行这个servlet,因为在JSP页面中在加载js页面的时候就会执行这个方法,例如: <script type='text/javascript' src='dwr/util.js'></script>,文件中的src='dwr/util.js'与配置的servlet匹配,这样就会触发这个servlet效果 6、这样就能够准确的定位到具体是那个类的哪个方法处理这个请求,然后是否有返回值都能够一目了然 7、如果想深入的了解DWR的解析方式或者对对象、字符串、数组的解析方式可以查看engin.js的方法实现 DWR深入理解 一、JAVA对象与javascript的交互过程 1、服务器端返回一个对象 dwr.xml配置信息如下: <allow> <create creator="new" javascript="returnHTMLData"> <param name="class" value="hb.server.returnHTMLData"></param> </create> <convert converter="bean" match="hb.object.Person"></convert> </allow> 告诉服务器hb.object.Person这个类作为javabean对象来处理 服务器端的server代码处理 public class returnHTMLData { public Person returnPerson(){ Person person = new Person(); person.setId(1); person.setPassword("huangbiao"); person.setUsername("1234"); return person; } } JSP页面的js代码 function invoke(){ returnHTMLData.returnPerson(function(data){ alert(data.id); alert(data.password); alert(data.username); }); } 2、JS向服务器端发送一个对象 <allow> <create creator="new" javascript="getHTMLData"> <param name="class" value="hb.server.GetHTMLData"></param> </create> <convert converter="bean" match="hb.object.Person"></convert> </allow> 服务器端的server代码处理 public class GetHTMLData { public void printPerson(Person person){ System.out.println(person.getId()); System.out.println(person.getPassword()); System.out.println(person.getUsername()); } } JSP页面的js代码 function invoke(){ //把JSON组织的代码当作是一个对象传递给server var dataJson = {id:2,password:"123456",username:"huangbiao"}; getHTMLData.printPerson(dataJson); } 二、调用服务器端返回的容器——List、Set、Map 1、List和Set是一类处理方式,对应的都是数组 配置信息如下 <allow> <create creator="new" javascript="returnHTMLCollection"> <param name="class" value="hb.server.returnListData"></param> </create> <convert converter="bean" match="hb.object.Person"></convert> </allow> 服务器对应的JAVA代码 public class returnListData { public Collection getCollection(){ Collection<Person> list = new ArrayList<Person>(); for(int i = 0; i < 3; i++){ Person person = new Person(); person.setId(i); person.setPassword("password" + i); person.setUsername("username" + i); list.add(person); } return list; } } JSP页面的js代码 function invoke(){ returnHTMLCollection.getCollection(function(data){ for(var i = 0; i < 3; i++){ alert(data[i].id); } }); } 数据内容 data = [ { username:"user1", password:"password2" }, { username:"user2", password:" password2" } ]; 2、使用Map对应的处理方式 配置信息 <allow> <create creator="new" javascript="returnMapData"> <param name="class" value="hb.server.returnMapData"></param> </create> <convert converter="bean" match="hb.object.Person"></convert> </allow> 服务器对应的JAVA代码 public class returnMapData { public Map getMapdata(){ Map map = new HashMap<Integer, Person>(); for(int i = 0; i < 3; i++){ Person person = new Person(); person.setId(i); person.setPassword("password" + i); person.setUsername("username" + i); map.put(i, person); } return map; } } JSP页面的js代码 function invoke(){ /* returnMapData.getMapdata(function(data){ for(var i = 0; i < 3; i++){ alert(data[i].id); } }); */ returnMapData.getMapdata(function(data){ for(var property in data){ var bean = data[property]; alert(bean.username); alert(bean.password); } }); } data = { "key1":{ username:"user1", password:"password2" }, "key2":{ username:"user2", password:" password2" } };
发表评论
-
基于DWR的点对点聊天实现 server---client
2015-04-28 16:53 1133本文转自:http://htj1231825.iteye.c ... -
浏览器阻止新窗口(window.open或新窗的form提交)
2013-07-31 16:09 2792在写js时,经常会出现 ... -
DWR util.js工具包的使用
2013-02-21 22:37 1098目录列表: $() DWRUtil.getText(i ... -
dwr3实现消息精确推送详细步骤
2013-02-21 22:00 3067第一、在项目中引入dwr.jar,然后在web.xml ... -
DWR回调参数以及一些配置参数示例
2012-10-12 16:58 1136function sendMessage() { ... -
[转]dwr 远程调用选项
2012-01-05 23:28 1233dwr 远程调用选项(转自:wellstrand.spa ...
相关推荐
压缩包内的"DWR中文文档2.pdf"很可能是DWR3的中文用户指南或开发者手册,对于学习和使用DWR3框架具有很高的参考价值,详细介绍了如何配置、使用DWR以及解决常见问题。"dwr.rar"可能包含了DWR的源码或者库文件,便于...
《dwr3api+DWR文档.pdf》提供了关于DWR 3.x版本的详细信息,包括API参考和初级入门指南。这份文档可能涵盖了以下关键知识点: 1. **安装与配置**:如何在你的Java应用服务器上集成DWR,配置DWR的XML配置文件(dwr....
本篇文章将详细介绍如何结合Dwr3和Spring3,利用全注解的方式进行集成与配置。 首先,我们需要理解Dwr3的基本概念。DWR3是DWR的第三个主要版本,它提供了一种简单的方法来实现在Web应用程序中调用服务器端的Java...
### DWR介绍 #### 一、DWR概述 DWR(Direct Web Remoting)是一种用于简化客户端JavaScript调用服务器端Java方法的技术。它通过Ajax技术实现了网页上的JavaScript直接调用服务器端的Java对象,极大地提高了Web应用...
本篇将详细介绍如何利用Spring3和DWR3创建聊天功能,以及DWR的Server Push技术在其中的作用。 首先,Spring3是一个全面的Java企业级应用开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等...
- 该中文文档将详细介绍DWR的安装、配置、使用方法以及常见问题的解决,是学习DWR的重要参考资料。 通过深入学习这份DWR中文文档,开发者不仅可以掌握DWR的基本用法,还能了解到如何在实际项目中有效利用DWR提升...
3. DWR的API使用:详细介绍DWR的JavaScript API,如RemoteObject、Util和Batch等,以及如何调用服务器端的方法。 4. DWR的安全性:讨论如何设置安全策略,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 5. DWR与...
**8.5 安全性**:DWR内置了一些安全措施来防止常见的攻击手段,但开发者还需要根据实际情况加强安全策略。 #### 四、范例精讲 **9.1 购物车示例**:通过构建一个完整的购物车功能来展示DWR的实际应用场景。 1. **...
##### 3. 配置`dwr.xml` 在`WEB-INF`目录下创建`dwr.xml`文件,用于指定哪些JavaBean将被DWR生成相应的JavaScript库。例如: ```xml <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD DirectWebRemoting 2.0//EN...
### DWR (Direct Web Remoting) 介绍与应用 #### 一、概述 DWR(Direct Web Remoting)是一个开放源代码的项目,遵循Apache许可协议。它为开发者提供了一个强大的工具集,使得通过JavaScript调用Java方法变得简单...
3. `@DataTransferObject`:用于标记数据传输对象,通常用于在DWR之间传输复杂的数据结构。 4. `@RemoteProperty`:标记类的属性,使其可以直接在客户端被读取或设置。 例如,没有使用`@RemoteMethod`的方法在...
- **安装与配置**:介绍如何将DWR添加到现有项目中,包括引入jar文件、配置web.xml和dwr.xml文件。 - **基本使用**:讲解如何创建可从JavaScript调用的Java方法,以及如何在客户端使用DWR API进行调用。 - **安全...
3. **dwr.ppt** - 这可能是一个PPT演示文稿,可能包含了DWR的基础概念、工作原理、配置教程以及一些示例,有助于快速理解DWR的使用。 4. **dwr** - 这可能是DWR的源码或者示例项目的文件夹,用户可以通过查看这些...
3. **DWR与JSF的整合**:整合DWR和JSF,可以让JSF应用利用DWR的Ajax能力。首先,需要在JSF项目中添加DWR的依赖,包括dwr-engine.jar、dwr-server.jar等。接着,配置DWR的`dwr.xml`文件,声明要暴露给JavaScript的...
以上就是关于DWR的基本介绍及其使用方式。DWR为Web开发者提供了一种简单而强大的工具,用于构建具有高度交互性和实时性的Web应用。通过熟练掌握DWR,你可以创建出更加动态、用户体验更好的网页。
在本文中,我们将详细介绍dwr配置文件的结构和配置方法,并探讨它在实际应用中的作用。 dwr配置文件的结构 -------------------- dwr配置文件是一个XML文件,名称通常为dwr.xml。它的结构主要包括以下几个部分: ...