Ajax开源框架:
DWR:服务器框架,它的好处是,响应如果是后台的java类。dwr引擎自动把类改装成servlet并通过web服务的方式。将函数库全部公开。
JS框架
jQuery:客户端框架,它仅仅是将客户端的js和ajax的关键对象XMLHttpRequest的函数封装了而已
比如$.ajax()
类似jquery的前台框架:prototype、extJS、DOJO
DWR的开发步骤:
1.导入包(2个dwr包)
2.定义xml的dtd,并导入dtd格式文件(dtd在这的作用:手写dwr.xml时可提示,避免手写时写错)
3.编写前台和后台的访问逻辑
4.定义dwr.xml引入dtd,包含需要公开的后台函数库(如:<include method="findCondition"/>)
然后交给dwr引擎来处理整合函数库和前台的调用关系。
5.通过/dwr为前缀的访问。产生dwr需要的三个js文件。util.js enginee.js XXX类.js
(对于web,在地址栏输入:localhost:端口号/项目访问名/dwr,进入可显示相应的方法名以及js名,把js地址复制到jsp或html页面即可使用)
6.通过回调获取访问的结果
小结:通过这种方法,html页面也可实现数据交互,不必在意后台的语言(C,C#等都可以)。
注意:dwr.xml需要与其dtd同级。web.xml中需要对dwr进行过滤配置
说明:
localhost:端口号/项目访问名/dwr进入可显示相应的方法名以及js名,
1.方法名红色表示不能访问
原因1:继承父类的函数,不能被访问。
原因2:没有在dwr.xml中被include的函数,不能被访问
web.xml中需要加入:
<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>/dwr/*</url-pattern>
</servlet-mapping>
dwr.xml:
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "/WEB-INF/dwr10.dtd">
<dwr>
<allow>
<create javascript="EmployeesDao" creator="new">
<param name="class" value="dao.EmployeesDao">
</param>
<include method="findAll"/>
<include method="findCondition"/>
</create>
<convert match="bean.Employees" converter="bean">
<param name="include value="empId,empFName,empLName,email,phone"></param>
</convert>
</allow>
</dwr>
注:每个类都需要配一个create
每个需要被js访问的类,都需要一个create,一个param(确定类的路径),
include用于包含可调用的方法
<exclude>标签指定要防止被访问的方法。 注意:include和exclude不能同时存在。
当include与exclude都不写时,表示所有非继承类都可以被访问。
js中调用服务器的方式:
EmployeesDao.findCondition(employee_id,function(v){
result.innerHTML=v;
});
EmployeesDao为dwr.xml中类的逻辑映射名,findCondition为对应类的方法,employee_id为js传给改方法的参数,function(v){... }为回调函数,v为服务器端该方法返回值
服务器端:
普通方法,
转换器:(会把返回的User对象或全是User对象的集合转换成json格式后交给页面 服务端: 对象-->json) (<convert match="bean.Employees" converter="bean"></convert>搞定)
也可以把页面的json对象传给方法参数为实体对象的方法,由dwr将json转为对象,然后传给方法,即 json——>对象,(<param name="include" value="实体类属性列表" />这个配置搞定)
<convert match="bean.Employees" converter="bean">
<param name="include value="empId,empFName,empLName,email,phone"></param>
</convert>
分享到:
相关推荐
4. **配置DWR映射**:在`dwr.xml`配置文件中,声明你想要暴露给JavaScript的Java类和方法。这个文件通常放在`src/main/resources`目录下。 ```xml <create creator="new" javascript="MyService"> ``` ...
为了使用DWR,开发者需要在服务器端配置DWR引擎,定义允许访问的Java类和方法,并在客户端引入`engine.js`和`util.js`。然后,通过JavaScript代码就可以直接调用服务器端的方法,实现双向通信。 总之,DWR提供了一...
1. **DWR配置**:项目中通常会有`dwr.xml`配置文件,用于配置DWR允许哪些Java类和方法被JavaScript调用。在这里,我们可能会看到类似这样的配置: ```xml <create creator="new" javascript="MyService"> ...
6. **安全考虑**:DWR提供了多种安全机制,如白名单机制,只允许特定的Java类和方法被调用,防止未授权的访问。此外,还可以设置跨域策略,限制只有特定的域名可以访问DWR服务。 7. **回调函数**:在JavaScript中...
3. **映射Java方法**:在DWR的配置文件(如dwr.xml)中,映射这些Java接口和方法,以便它们可以通过JavaScript访问。 4. **生成JavaScript API**:DWR会根据配置自动生成JavaScript API,这些API可以直接在浏览器中...
- **配置DWR**:在Web应用的`web.xml`文件中配置DWR的Servlet和过滤器,指定允许访问的Java类和方法。 - **创建Java接口和实现**:定义服务器端的Java接口,实现这些接口以提供服务。 - **生成JavaScript接口**:...
在`dwr.xml`配置文件中,你需要创建一个允许JavaScript访问的Java类,并指定其创建方式、JavaScript中的名称以及暴露的方法。例如,`<create>`标签创建一个名为`testClass`的JavaScript对象,它对应于`/...
这里,`/dwr/interface/MyRemoteService.js`是DWR自动生成的JavaScript文件,包含了对`MyRemoteService`类的引用。调用`sayHello`方法后,DWR会自动发送一个HTTP请求到服务器,并在得到响应后执行回调函数。 **安全...
1. **配置文件**:DWR的配置文件(通常为`dwr.xml`)定义了哪些Java类和方法可以被JavaScript访问。你可以在这里指定安全策略,限制暴露给客户端的API。 2. **引擎(Engine)**:这是DWR的核心组件,负责处理...
然后,创建一个Java类并暴露需要访问的方法。最后,在JavaScript中,你可以使用DWR提供的API(如`DWREngine`或`RemoteObject`)来调用这些方法,DWR会处理所有网络通信的细节。 2. **后台调用前端(Reverse Call...
"engine.js"是DWR的客户端引擎文件,它包含了一组JavaScript库,使得在浏览器中可以轻松地调用服务器端的Java方法。这个文件应该被包含在Web页面中,以便Web应用能够利用DWR的功能。`engine.js`提供了诸如对象转换、...
`dwr.xml` 文件是DWR的配置文件,用于设置DWR的行为,如允许访问的Java类和方法、安全性设置、错误处理等。通过编辑这个文件,开发者可以控制哪些服务器端的对象和方法可以被AJAX调用,以及如何处理这些调用。此外,...
- 在`dwr.xml`中,你可以配置`<allow>`元素来指定哪些Java类和方法可以暴露给JavaScript。例如: ```xml <create creator="new" javascript="MyService"> ``` - 安全性设置:可以使用`<convert>`元素来...
这个文件定义了哪些服务器端的Java类和方法可以被JavaScript访问。你需要在这里配置允许客户端调用的Java类和方法。 4. **创建Java类**:DWR项目通常包含一些服务器端的Java类,这些类的方法会被暴露给JavaScript...
只需在DWR配置文件中声明该方法,然后在JavaScript中直接调用即可。这使得执行简单的查询或获取服务器状态等操作变得简单。 2. **有字符串参数的方法**: 在需要传递字符串数据到服务器端时,DWR支持将字符串作为...
DWR简化了AJAX开发,使得前端JavaScript可以方便地调用后端的Java方法,仿佛它们都在同一个环境中运行。在本文中,我们将深入探讨如何使用DWR创建一个简单的"Hello, World!"应用,以理解其基本工作原理。 ### 一、...
DWR通过创建JavaScript的代理类来调用服务器端的Java方法。这些代理类由DWR自动生成,使得前端开发者能够像调用本地JavaScript函数一样调用远程Java方法。这大大简化了客户端与服务器端的交互过程。 在JavaScript端...
如果Java方法返回一个JavaBean,你需要在`dwr.xml`配置文件中添加`<convert>`标签,指定使用“bean”转换器并将匹配的类设置为你的JavaBean类。在JavaScript端,接收到的JavaBean会自动转换成一个JavaScript对象,...