ajax框架dwr开发

简介:
dwr实现AJAX非常先进。比如动态生成javaScript代码;隐藏的HTTP协议,javascript用于java代码交互的javaScript对象。
 自从我开始DWR感觉DWR是用javaScript对象去代替java类的对象去做某些事情。
 比如一个java类名为:ShowHello  当你在dwr.xml文件做了映射 javascrip对象叫 showHello 那么你在html文件或jsp文件中想使用ShowHello中的某些方法。那就可直接使用showHello就可以了。dwr就是这样的功能。
 使用时要注意以下几点:
   1.引入两个包。dwr.jar,xalan.jar这个包一般的情况在高版中把这个jar包的类已经包含了。低版的tomcat要引入这个包。可以根据情况,先引入dwr.jar测试不成功,再引入xalan.jar。
   2.配置web.xml文件。
    具体的内容如下:
    <servlet>
       <servlet-name>kmweb</servlet-name>
       <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
       <load-on-startup>1</load-on-startup>

       <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
       </init-param>
     </servlet>
    注意:debug这个参数一定要有,是用来测试的。
     <servlet-mapping>
       <servlet-name>kmweb</servlet-name>
       <url-pattern>/ajax/*</url-pattern>
     </servlet-mapping>  
   3.编写dwr.xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC
            "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
            " http://www.getahead.ltd.uk/dwr/dwr10.dtd ">
    <dwr>
       <allow>
         <create javascript="showName" creator="new">
         <param name="class" value="Test.A"/>
         <include method="addNode"/>
         </create>
       </allow>
    </dwr>
   这里面我已经写了一例子。当你想在页面中使用Test.A时就可以用showName来引用。include的意思就可showName对象可引用Test.A的哪些方法,不写的话就是全部的方法。
上面的是用普通的方法。如果使用的spring框架的话。配置则是另外一种法。如下:
<create creator="spring" javascript="JSUserTree">
      <param name="beanName" value="remoteUserTree"/>
      <include method="addNode"/>
      <include method="deleteNode"/>
      <include method="renameNode"/>
      <include method="getAllNodes"/>
</create>
4.编写类。
5.测试(http://服务名字或IP:端口号/项目名/ajax/)如果出来index页面就OK了
6.在测试index页面中会出现Classes known to DWR:标题.下面是我测试是的一个例子:
showName (Test.A) 
hitNum (Test.ReturnInt) 
这就是类与js的对应关系. 点击要要使用的类进入下一个页面.如:
Methods For: hitNum (Test.ReturnInt)
To use this class in your javascript you will need the following script includes:
<script type='text/javascript' src='/exercise/ajax/interface/hitNum.js'></script>
<script type='text/javascript' src='/exercise/ajax/engine.js'></script>
In addition there is an optional utility script:
<script type='text/javascript' src='/exercise/ajax/util.js'></script>
Replies from DWR are shown with a yellow background if they are simple or in an alert box otherwise.
The inputs are evaluated as Javascript so strings must be quoted before execution.
There are 11 declared methods:
getHitNum( ); excute 
setHitNum( ); excute 
hashCode() is not available: Methods defined in java.lang.Object are not accessible 
getClass() is not available: Methods defined in java.lang.Object are not accessible 
wait() is not available: Methods defined in java.lang.Object are not accessible 
wait() is not available: Methods defined in java.lang.Object are not accessible 
wait() is not available: Methods defined in java.lang.Object are not accessible 
equals() is not available: Methods defined in java.lang.Object are not accessible 
notify() is not available: Methods defined in java.lang.Object are not accessible 
notifyAll() is not available: Methods defined in java.lang.Object are not accessible 
toString() is not available: Methods defined in java.lang.Object are not accessible 
点击可以进行测试了.测试成功的话.下一步就是编写您的页面.
7.在编写您的页面时一定要把 
<script type='text/javascript' src='/exercise/ajax/interface/hitNum.js'></script>
<script type='text/javascript' src='/exercise/ajax/engine.js'></script>
类拟于上面的两句话加入您的页面.
8.在使用js时注意一定要一个回调函数做为最后一个参数(前提这个方法有返回值时).
9.编写回调函数,回调函数的参数就是js对应相应类的方法返回值.
10.值得注意的是如果返回的不是原始类型则必须在dwr.xml中写上如下:
<convert match="Test.Person" converter="bean"></convert>

match是返回的类型.converter表示是一个对象(确且我也不明白,明白后在写一般情况就是这).



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2010/12/20/1911885.html,如需转载请自行联系原作者

目录
相关文章
|
12月前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
268 4
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
119 5
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
XML 前端开发 API
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
【7月更文挑战第14天】Web开发中,AJAX作为异步通信先驱,与新兴的Fetch API一起革新交互体验。Fetch基于Promise,简化了请求处理。Python后端,如Flask,提供稳定支撑。这三者的融合,推动Web应用达到新高度,实现高效、实时交互。通过示例展示,我们看到从发送请求到更新UI的流畅过程,以及Python如何轻松返回JSON数据。这种组合揭示了现代Web开发的潜力和魅力。
131 0
|
XML 前端开发 JavaScript
CSR(客户端渲染)和AJAX在Web开发中各自扮演不同的角色
【5月更文挑战第8天】CSR(客户端渲染)与AJAX在Web开发中各司其职。CSR提供初始HTML框架,通过JavaScript在浏览器端获取并渲染数据,提升交互性和响应速度。AJAX则实现页面局部更新,如实时搜索,不刷新页面即可获取数据。CSR可能因DOM操作多而引发性能问题,但可优化解决;AJAX适合频繁交互场景,提高响应性。两者在不同需求下各有优势,需按项目选择适用技术。
131 4
|
前端开发 JavaScript
ajax框架格式,每个属性的作用
ajax框架格式,每个属性的作用
92 7
|
前端开发 JavaScript PHP
【PHP开发专栏】jQuery与PHP实现Ajax通信
【4月更文挑战第30天】本文介绍了使用jQuery和PHP实现Ajax通信的步骤。首先,讲解了Ajax的基础和jQuery简化Ajax操作的概念。接着,展示了如何使用jQuery的`$.get()`、`$.post()`和`$.ajax()`方法发送GET和POST请求,以及如何控制请求细节。在PHP端,讨论了接收和响应Ajax请求的方法,包括处理数据、设置响应类型和错误处理。结合jQuery与PHP,开发者能实现高效、无缝的异步数据传输,提升Web应用的用户体验。
227 1
|
XML JSON 前端开发
ajax框架格式,每个属性的作用
ajax框架格式,每个属性的作用
90 2
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
121 0
|
XML 前端开发 JavaScript
【PHP 开发专栏】PHP 与 Ajax 交互开发
【4月更文挑战第30天】本文探讨了PHP与Ajax交互在Web开发中的应用。Ajax负责客户端的异步请求,PHP处理服务器端业务逻辑。两者结合实现高效、流畅的用户体验。文中阐述了Ajax的工作原理,PHP的角色,数据传输格式选择,并提供了发送Ajax请求、PHP处理请求的示例代码。实际应用包括实时数据更新、表单验证和动态内容加载。开发中需注意跨域、数据安全和性能优化。PHP与Ajax的结合将继续在Web开发中发挥重要作用。
150 0