今天想自己学习一下一个框架(Dwr),原来从来没有接触过。所以不知道从什么地方下手。于是就上百度上去搜索一下,但是按照上面说的配置好了,但是试了试还是不行。不过最终成功!
现在记下一下自己使用的注意事项,因为网页上的其他例子程序 虽然很多,但是忽视了其中的一些小问题。
由于dwr是js和java 之间的交互。所以首先要建立一个java类,用于处理业务上的代码:如下:
[code=java]
package com.cfd.drp.dwr;
import java.io.IOException;
public class DwrPage {
public String getMessage() {
return "hello,cfd";
}
}
[/code]
这个类是随便写的,主要是能完成你的业务需要就可以了,既然说是js和 服务器的交互,那方法一般都需要返回类型的,这样才能交互嘛!
接下是要导包。我用的dwr的版本是2.0的。所以只需要一个dwr.jar就行。放到web-inf下面的lib目录下,这点和其他框架是一样的。接下来 就是配置了。配置的话 一共要配置两个xml文件。一是web.xml,还有就是dwr.xml。下面分别说明这个两个文件的配置:
首先web.xml :
[code]
<?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">
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.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>/sysmgr/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
[/code]
注意,这其中的东西都不需要改。<url-pattern>/sysmgr/dwr/*</url-pattern> 只是这个配置要改,如果你因为我的html页面放在了webroot下面的sysmgr下。所以就需要这样配置,如果你的是直接放在webroot 下的话,那你配成<url-pattern>/dwr/*</url-pattern> 就行了。这个是要主要的地方,其他地方都不需要改的。像uk.ltd.getahead.dwr.DWRServlet这些东西,复制下来就是了,这是dw自己实现了的东西,而不是自己写的。
接下来看看配置dwr.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create javascript="dwrPage" creator="new">
<param name="class" value="com.cfd.drp.dwr.DwrPage"></param>
</create>
</allow>
</dwr>
配置这儿的时候也要注意了。其中的create标签中的javascript 的值是随意配置了,但是这个配置了以后 页面在调用这个类的方法的时候就要用到这个属性值。而creator 这个是方式,一般让它为new 就行了,这个地方一般也不需要更改的。<param name="class" value="com.cfd.drp.dwr.DwrPage"></param>而这其中需要改的就是value的值,这个值就是你创建的java类,用于处理业务的(要加上包名称)。其他东西不用改 。
最后就是页面了。html页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type='text/javascript' src='dwr/interface/dwrPage.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
function init() {
dwrPage.getMessage(getResult);
}
function getResult(value) {
alert(value);
}
</script>
</head>
<body>
<button onclick="init()"></button>
</body>
</html>
其中需要注意的是下面三段代码:
[code]
//这三个js文件是不要求自己写的,把下面的代码复制过去就行了,其中第一个是自动生成的,后面两个是已经存在的,就在dwr.jar这个包中。但是第一个需要注意的名字要修改成你自己的名字,我这是dwrPage.js ,这个是和上面的dwr.xml中的javascript属性的名称要一致。
<script type='text/javascript' src='dwr/interface/dwrPage.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
[/code]
还有要注意到是,dwrPage.getMessage(getResult);这个就是调用java类里面的方法了。其中的dwrPage就是上面提到的javascript配置的属性,而geMessage()就是java类中的方法了。其中更需要主要的一点就是。dwr不 支持得到结果后 ,然后把结果进行直接赋值,var str = dwrPage.getMessage();这样是不允许的。解决办法就是通过给getMessage传入参数,(可以看出原来这个方法本身是没有参数的),而这个传入的参数一般是一个方法,并且这个方法也接受一个参数,而getMessage的结果就被赋值给里面的那个参数,这样就得到想要的结果了。本个程序中也就是java方法getMessage()的返回结果就赋值给getResult(value)这个方法的参数value了。大概流程就这样
相关推荐
**服务器端Ajax框架——DWR实践总结** DWR(Direct Web Remoting)是一个开源的Java框架,它使得在Web应用程序中实现Ajax(异步JavaScript和XML)功能变得更加简单。DWR允许JavaScript在客户端与服务器端Java对象...
### DWR在AJAX中的应用及注意...总之,DWR作为一种强大的Ajax框架,其简洁的API和高度可定制化的特性使其成为许多开发者进行Ajax开发的首选。但在使用过程中,还需要注意细节问题,避免不必要的错误,提高开发效率。
**AJAX (Asynchronous ...AJAX通过异步通信实现了页面的局部更新,而DWR作为AJAX的辅助框架,为Java开发者提供了简便的方式来实现这一目标。理解并熟练掌握这两项技术,能极大地提升Web应用的性能和用户体验。
总之,DWR作为一个Ajax框架,简化了前后端交互,使得Java开发者能够更加专注于业务逻辑,而不需要过多关注底层通信细节。通过上述步骤,你已经掌握了基本的DWR使用方法,可以开始尝试在自己的项目中应用DWR了。如果...
在"Ajax实例-dwr实现"这个项目中,我们将深入探讨如何利用DWR框架来创建一个简单的登录功能。这个登录功能模拟了用户输入用户名和密码,然后提交到后台进行验证的过程。如果输入的用户名和密码匹配,服务器会返回一...
在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...
在DWR框架中,可以使用DWR的session支持来实现用户认证。 总的来说,AJAX-DWR下拉框级联是提升Web应用交互性和效率的有效手段,通过DWR与数据库的实时交互,实现了用户选择的动态响应。同时,理解并掌握用户身份...
DWR (Direct Web Remoting) 是一个...综上所述,DWR是一个强大的AJAX框架,通过其简单的API和自动化特性,可以帮助开发者快速构建富客户端应用。通过深入学习和实践,我们可以充分利用DWR来提升Web应用的交互性和性能。
9. **与MVC框架的整合**:DWR可以轻松地与Spring、Struts等MVC框架集成,提供更强大的Web应用功能。 在文件"14使用dwr"中,很可能是包含了一些实际的示例代码或者教程,可以帮助我们更好地理解和应用以上知识点。...
通过阅读《java_ajax框架dwr》这本书,你可以深入理解DWR的原理和实践,掌握如何利用DWR构建高效、易维护的AJAX应用。同时,书中可能还会涵盖DWR与其他技术的集成,如Spring、Hibernate等,以及最佳实践和性能优化...
DWR (Direct Web Remoting) 是一个强大的AJAX框架,它允许JavaScript与Java在浏览器和服务器之间进行直接通信,实现了异步数据交换,从而提供了丰富的用户体验。DWR使得开发者能够轻松地在客户端使用JavaScript调用...
**JAVA AJAX框架 DWR详解** DWR(Direct Web Remoting)是一个开源的Java库,它使得JavaScript和服务器端的Java代码可以直接进行交互,无需处理复杂的HTTP请求和响应。这种技术在Web开发中被称为Ajax(Asynchronous...
DWR(Direct Web Remoting)是Java平台上的一个开源框架,它简化了Ajax应用的开发。DWR允许Java对象在Web浏览器和服务器之间进行直接调用,从而实现了JavaScript与Java之间的远程方法调用(RPC)。这意味着开发者...
总的来说,Ajax和DWR框架的结合使用,可以显著提升Web应用的用户体验,减少不必要的页面刷新,提高数据处理效率。同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量...
第二部分详细介绍了Prototype、jQuery、DWR、AjaxTags等四个最常用的Ajax框架的用法,并针对每个框架提供了一个实用案例。这两个部分是笔者在“疯狂Java实训营”的培训讲义,是《疯狂Ajax讲义:Prototype/jQuery+DWR+...
**Ajax DWR 框架实现二级联动下拉列表源码详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。DWR(Direct Web Remoting)则是一个用于Java web应用的开源...
**DWR(Direct Web Remoting)**是一种Java框架,它允许Web应用程序在浏览器和服务器之间进行实时、异步的数据交换,极大地提升了AJAX(Asynchronous JavaScript and XML)应用的开发效率。DWR使得JavaScript可以...
**Ajax + Struts 与 Ajax 的 DWR 框架使用详解** 在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术极大地提升了用户体验,它允许网页在不刷新整个页面的情况下与服务器进行交互。Struts作为Java EE...