`
luciesfly
  • 浏览: 70655 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多
现在的技术非常之多,ajax技术在页面上的使用更是非常的广泛。那么它也有许多的框架,从原来光在JavaScript中利用 httprequest现在利用配置文件在结合javabean以及DWR框架中自动生成的JS来产生新的一种ajax技术。

那么现象就介绍如何使用这个框架:

当然你必须有相关的jar包:dwr.jar 和 commons-logging 这个两个包是不能少的。

要想让DWR 进入系统首先就需要让web工程的中心web.xml知道,所以在web.xml中必须写入

在web.xml里配置

<!-- The DWR servlet. -->
<servlet>
<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>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>





初始化参数还有其它参数说明:<init-param></init-param>

初始化参数还有其它:

a.allowGetForSafariButMakeForgeryEasier,解决了safari 1.x post时的bug,默认是false,避免bug改为true。

b.crossDomainSessionSecurity,默认是true,如果改为false将会能接收其它域的请求,存在安全风险。

c.allowScriptTagRemoting,页面里动态添加<scrip>标签的ajax方法,默认为true。

d.debug,是否调试,默认是false。

e.scriptSessionTimeout,设置超时时间,默认是1800000(30 minutes)。

f.maxCallCount,设置最大请求数,默认是20.

g.activeReverseAjaxEnabled,默认是false,When set to true, the polling and Comet reverse Ajax
techniques are enabled.

h.maxWaitingThreads,多少激活状态的servlet线程,默认是100.

i.maxPollHitsPerSecond,When using the polling reverse Ajax method, this is the maximum number of requests per second allowed. The default value is 40.

j.preStreamWaitTime,等待回调之前回复时间,默认是29000。

k.postStreamWaitTime,回调之后的回复时间,默认是1000

l.[Interface Name],This is used to override parts of DWR without having to build it from source. The default implementation is the default.

m.ignoreLastModified,默认是false,dwr利用缓存控制请求。当是true时,就没有这项功能了。

n.scriptCompressed,默认是false,对返回javascript压缩。才外还有一个非官方的参数是 compressionLevel ,这个参数有三个级别:none, normal,ultra。参考javadoc的JavascriptUtil类。

o.sessionCookieName,dwr使用session cookie获得url请求,一般是使用JSESSIONID,这里你可以使用不同的session名。

p.normalizeIncludesQueryString,默认是false。

q.overridePath,一些web容器修改请求路径导致dwr不能找到相关资源,设置这个参数会复写路径。默认是不使用的。





然后被配置 dwr.xml文件 这个路径在/WEB-INF/下与web.xml同级

dwr.xml 依靠dwr30.dtd

配置如下

<?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="mDelegate">
<param name="class" value="app.MathDelegate" />
</create>

<convert  match=” test.User” converter=” bean” JavaScript=”user”/>
</allow>
</dwr>



介绍一下.dwr一般的文件结构

<create creator=”new” javascript=” ”>

<param name=”calss”  value=”test.DWRUserAccess” >

</create>

creator的选项有不同的选项:每位访问的时候需要为访问的对象从什么地方获取

new ,最常用一般是写的新bean。

none ,不创建任何对象,一般是调用静态方法。

spring ,通过spring framwork访问bean。

jsf ,对象来自jsf。

struts ,使用struts的form bean。

pageflow ,Gives access to a PageFlow from Beehive or WebLogic.

ejb3 ,访问ejb3的sesssion bean



application ,连接application



JavaScript 是在jsp页面中调用这个的对象的名称

<param >:创建对象的是哪个类的对象

其中 name 这个表示为class

Value 这个为了说明class文件的路径



<convert  match=” test.User” converter=” bean” JavaScript=”user”/>

这个convert 标签是使用回调方法对象

match这里填写为test.User 表示返回对象是哪个类

converter 是返回对象是什么使用什么方式这里是表示:javabean



JSP如何调用呢?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>DWR HELLOWorld</title>

    <meta http-equiv="content-type" content="text/html; charset=GB18030">

   <script type='text/javascript' src='dwr/interface/Hello.js'></script>

<script type='text/javascript' src='dwr/engine.js'></script>

<script type='text/javascript' src='dwr/util.js'></script>

  </head>



  <body>

<input id="user" type="text" />

<input type="button" value="提交" onclick="hello();"/>

<div id="result"></div>

  </body>

  <script type="text/javascript">

  function hello(){ 

    var user = $('user').value; 

    Hello.sayHello(user,callback); 



function callback(msg){ 

if (typeof window['DWRUtil'] == 'undefined')

                      window.DWRUtil = dwr.util;

   DWRUtil.setValue('result',msg); 

}

  </script>

</html>

其中下面这些是需要在jsp页面中写入的,因为在运行的时候DWR会自动生成的JS

   <script type='text/javascript' src='dwr/interface/Hello.js'></script>

<script type='text/javascript' src='dwr/engine.js'></script>

<script type='text/javascript' src='dwr/util.js'></script>

而在dwr.xml中配置的class 类如何调用呢就是在function中写入

如:

  function hello(){ 

    var user = $('user').value; 

    Hello.sayHello(user,callback); 



Hello就应该是 你在dwr.xml中的 <create javaScript=”Hello”>的名称

后来.sayHello是 这个类的中的方法名;

这样就是完成了对这个类的调用,就产生了对Ajax异步的使用。

那么在运行的时候需要用的jar文件有 commons-logging.jar ,dwr.jar,log4j.jar这些文件是必须的





DWR 与 struts2.0 整合

添加DWR到web项目

   1、将DWR必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在dwr.rar中)

   2、在web.xml文件中添加dwr的加载配置,代码如下:



Xml代码

   1. <!-- DWR config --> 
   2. <servlet> 
   3.     <servlet-name>dwr-invoker</servlet-name> 
   4.     <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> 
   5.     <init-param> 
   6.         <param-name>debug</param-name> 
   7.         <param-value>true</param-value> 
   8.     </init-param> 
   9. </servlet> 
  10.  
  11. <servlet-mapping> 
  12.     <servlet-name>dwr-invoker</servlet-name> 
  13.     <url-pattern>/dwr/*</url-pattern> 
  14. </servlet-mapping> 

<!-- DWR config -->

<servlet>

<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>

 

    3、在WEB-INF/lib目录下新建dwr.xml文件,代码如下:



Xml代码

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

<?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>



</allow>

</dwr>



   4、在dwr.xml中配置要映射成js的java类,在allow标签中添加如下代码:



Xml代码

   1. <create creator="spring" javascript="loginAction"> 
   2.     <param name="beanName" value="loginAction"/> 
   3. </create> 

<create creator="spring" javascript="loginAction">

<param name="beanName" value="loginAction"/>

</create>



creator="spring"


表示要映射的java类由spring来创建

javascript="loginAction"


表示映射完后,java类在js中的引用名

name="beanName"


用spring 来创建类就用beanName这个设置

value="loginAction"


value的值对应applicationContext.xml中定义的某个bean的id值



   5、一般要在java类中写一个专门用DRW调的方法;

   6、在前台页面调时需添加如下代码:



Html代码

   1. <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/loginAction.js'></script> 这个就是映射后的js类ß     
   2. <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>     
   3. <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script

分享到:
评论

相关推荐

    java+dwr框架实现聊天室

    Java+dwr框架实现聊天室是使用Java语言和dwr框架实现的服务器推技术,实现了实时通信的聊天室功能。下面将详细介绍该技术的实现过程和相关知识点。 一、dwr 框架简介 dwr(Direct Web Remoting)是一种基于Ajax...

    dwr框架的使用简介

    ### dwr框架的使用简介 #### 一、引言 随着AJAX技术的广泛应用,Web项目的开发变得越来越复杂。AJAX技术(Asynchronous JavaScript and XML)作为一种无须刷新整个页面即可进行局部更新的技术,极大地提升了用户...

    DWR框架学习demo

    **DWR(Direct Web Remoting)框架学习指南** ...通过学习和实践DWR框架,开发者可以创建更加动态、响应式的Web应用,提升用户的交互体验。理解DWR的工作原理以及如何配置和使用,对于开发人员来说是非常有价值的技能。

    AJAX 与 DWR框架

    总的来说,Ajax和DWR框架的结合使用,可以显著提升Web应用的用户体验,减少不必要的页面刷新,提高数据处理效率。同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量...

    DWR框架DWR框架

    DWR框架的主要特点包括: 1. **自动AJAX化**:DWR通过简单的配置和API,可以自动将Java方法暴露给客户端JavaScript,使得开发人员可以轻松地在浏览器端调用服务器端的方法。 2. **安全性和效率**:DWR提供了安全性...

    SSH与DWR框架整合

    ### SSH与DWR框架整合详解 #### 一、概述 SSH与DWR框架整合是指将Struts、Spring、Hibernate(通常简称为SSH)这三种框架与DWR框架进行结合使用的过程。这种整合使得Web应用程序能够更好地支持AJAX技术,提高用户...

    dwr框架需要使用的jar包

    1. **dwr.jar**:这是DWR框架的核心库,包含了所有必要的类和接口,用于处理AJAX请求,执行服务器端的方法,以及将结果转换为可以在JavaScript中使用的格式。这个库提供了如`DWREngine`、`RemoteProxy`和`AjaxBatch`...

    dwr框架依赖包及实例

    这个压缩包文件包含了DWR框架所需的依赖包以及可能的示例代码,帮助开发者快速理解和使用DWR。 在使用DWR框架时,有几个关键知识点是必须掌握的: 1. **DWR的基本概念**: - **AJAX(Asynchronous JavaScript and...

    AJAX技术之DWR框架入门

    **AJAX技术之DWR框架入门** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种技术可以提升...

    dwr框架实现无刷新分页

    **一、DWR框架基础** 1. **DWR的核心概念:** - **AJAX(Asynchronous JavaScript and XML)**:DWR是基于AJAX技术实现的,通过异步方式与服务器通信,无需刷新整个页面。 - **Cascading Style Sheets (CSS)和...

    Ajax资料,DWR框架资料

    学习和理解Ajax及DWR框架,可以帮助开发者构建更加高效、互动性强的Web应用,提升用户在浏览网页时的体验。无论是前端的JavaScript编程,还是后端的Java服务,DWR都提供了强大的工具来简化这个过程。对于希望深入...

    dwr框架资料(主要是关于dwr配置文件的说明)

    在DWR框架中,配置文件起着至关重要的作用,它是连接客户端和服务器端的关键桥梁。通常,DWR的配置文件是`dwr.xml`,这个文件位于Web应用的WEB-INF目录下。通过这个文件,我们可以定义哪些Java类和方法可以被远程...

    ajax dwr 框架实现二级联动下拉列表源码

    本实例主要讲解如何利用DWR框架实现二级联动下拉列表,这是一种常见的前端交互设计,通常应用于地区选择、分类筛选等场景。 1. **DWR框架简介** DWR的核心功能是创建JavaScript对象,这些对象能够直接调用服务器上...

    DWR框架学习资料...

    DWR(Direct Web Remoting)框架是一个开源的Java库,它允许Web应用程序在客户端和...通过学习这两个PPT,你可以全面了解DWR框架,掌握其核心概念和使用技巧,从而在实际项目中更好地运用DWR实现高效、动态的Web应用。

    dwr框架详细介绍 讲解浅显易懂

    总之,DWR框架通过注解简化了原本繁琐的XML配置,使得开发者能够更加专注于业务逻辑,提高了开发效率。同时,DWR提供了丰富的注解类型,覆盖了从对象创建、方法暴露到数据传输的各个环节,使得Ajax交互更加灵活和...

    DWR框架对各种类型方法调用的示例

    在"DWR框架对各种类型方法调用的示例"中,我们可以看到DWR是如何处理不同类型的参数和返回值的。以下是对这些示例的详细解析: 1. **无参方法调用**: 当你需要调用一个不接受任何参数的后台方法时,DWR提供了简便...

    DWR框架全方位学习整理

    是自己学习期间DWR框架的简单的一些实例和操作。里面有三层写的异步刷新分页 还有DWR操作的14个小实例,以及提高能力的DWR的API和API的技术文档,贡献大家,希望大家能够用的上,也欢迎学习交流,里面有本人的QQ。

    DWR框架简单Demo

    (参考:http://www.cnblogs.com/cyjch/archive/2012/02/16/2353758.html) DWR框架简单Demo,主要是用户注册的例子。 感谢原博主的分享!(附上我测试成功的Demo)

    DWR框架资料

    DWR框架的核心概念包括以下几个部分: 1. **Remoting**:这是DWR的基础,它允许JavaScript在浏览器中直接调用服务器上的Java方法。这种通信方式是通过HTTP POST请求实现的,而DWR负责处理所有相关的细节,如序列化...

    DWR框架 DEMO

    在"DWR框架 DEMO"项目中,我们可以看到一个DWR的简单示例。`DWRDemo`可能包含以下组成部分: 1. **Java后端**:定义了一个或多个Java类,其中包含了可供客户端调用的方法。这些方法通常处理业务逻辑,比如数据库...

Global site tag (gtag.js) - Google Analytics