1.引入dwr.jar包
2.在web.xml里配置dwr的servlet
<!-- dwr servlet configuration -->
<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.通过一个JavaScript想java传一个user对象,java在返回一个user对象给JavaScript,说明dwr的用法
User.java
package com.dwr;
public class User {
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
---------------------------------
Login.java
package com.dwr;
public class Login {
public User login (User user){
user.setUserName("zj.china");
user.setPassword("888888");
return user;
}
}
4.dwr.xml文件的配置:
<?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>
<create javascript="login" creator="new" scope="session">
<param name="class" value="com.dwr.Login"></param>
</create>
<convert match="com.dwr.User" converter="bean">
<param name="include" value="userName,password"></param>
</convert>
</allow>
</dwr>
5.bean.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>dwr bean test</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/login.js"></script>
<script type="text/javascript" src="js/dwrTest.js"></script>
</head>
<body>
username:<input type="text" id="uName"><br>
password:<input type="text" id="pass"><br>
<input type="button" value="dwr bean" onclick="show();">
</body>
</html>
-------------------------------
js/dwrTest.js
//dwr test js
function show(){
var uName = $("uName").value;
var pass = $("pass").value;
//通过这种方法,在js里组装一个对象
var user = {userName:uName,password:pass};
login.login(user,
function(userData){
$("uName").value = userData.userName;
$("pass").value = userData.password;
}
);
}
前台传递一个数组到后台,后台处理后,在返回这个数组
前台js:
function showArray(){
var arr = new Array("abc","haha");
login.testArray(arr,
function(data){
alert(data[0]);
}
);
}
-------------------------------------
后台处理方法:
public String[] testArray(String[] arr){
System.out.println(arr[0]);
arr[0] = "鄙视你";
return arr;
}
在dwr.xml里对convert没有配置。
前台传递一个date到后台,后台处理后,在返回这个date
后台:
public Date testDate(Date date){
System.out.println(date.toString());
return date;
}
------------------------------------
前台:
function showDate(){
var date = new Date();
login.testDate(date,
function(data){
alert(data);
}
);
}
dwr.xml里也没有配置
前台传递一个Map到后台,后台处理后,在返回这个Map
后台:
public Map<String, String> testMap(Map<String, String> map) {
map.remove("key1");
return map;
}
---------------------------------
前台js:
function showMap(){
//通过键值对的方法组装Map
var map = {key1:"gcgmh",key2:"hello"};
login.testMap(map,
function(data){
//取值是,里面一定要是字符串
alert(data["key2"]);
}
);
}
dwr.xml里也没有配置
前台传递一个List到后台,后台处理后,在返回这个List,前后台和数组的转换没什么区别
就是后台又处理数组变成处理List
前台js:
function showList(){
var list = new Array("hello","world");
login.testList(list,
function(data){
alert(data[0]);
}
);
}
-----------------------------------
后台:
public List<String> testList(List<String> list){
System.out.println(list.get(1));
return list;
}
dwr对泛型也支持,下面的list传递的就是一个user对象
前台js:
function showList2(){
var list = new Array({userName:"gcgmh",password:"88888888"},{userName:"admin",password:"666666"});
login.testList2(list,
function(data){
alert(data[1].userName);
}
);
}
------------------------------
后台:
public List<User> testList2(List<User> users){
System.out.println(users.get(0).getUserName());
return users;
}
dwr与spring的整合
1.有个service,代码为:
package com.jwxd.service.impl;
import com.jwxd.pojo.User;
import com.jwxd.service.IUserService;
public class UserServiceImpl implements IUserService{
public User dwrSave(User user) {
System.out.println(user.getUserName());
System.out.println(user.getPass());
System.out.println(user.getSex());
System.out.println(user.getAddress());
System.out.println("用户注册了!");
user.setUserName("ksd");
return user;
}
}
//在spring的applicationContext-beans.xml配置为:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 用户service -->
<bean id="userServiceImpl" class="com.jwxd.service.impl.UserServiceImpl">
</bean>
</beans>
------------------------------------------
//dwr.xml的配置为:
<?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 javascript="userService" creator="spring">
<param name="beanName" value="userServiceImpl"></param>
</create>
<convert match="com.jwxd.pojo.User" converter="bean">
<param name="include" value="userName,pass,sex,address"></param>
</convert>
</allow>
</dwr>
----------------------------------
//通过前台js,想这个service发一个调用request,传一个user对象过去,service处理后,在返回这个对象。前台jsp的核心代码:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page isELIgnored="false"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/userService.js"></script>
<script type="text/javascript">
function userReg()
{
var name = $("uName").value;
var pass = $("pass").value;
var sex = $("sex").value;
var address = $("address").value;
//封装一个js得user对象
var user = {userName:name,pass:pass,sex:sex,address:address};
alert(user.pass);
userService.dwrSave(user,
//data,为dwr为我们返回的user对象
function(data){
alert(data.userName);
}
);
}
</script>
</head>
<body>
<b>用户注册</b>
<s:form action="RegisterAction" method="get">
用户名:<input type="text" id="uName" name="uName"><br>
密 码:<input type="password" id="pass" name="pass"><br>
性 别:<input type="text" id="sex" name="sex"><br>
地 址:<input type="text" id="address" name="address"><br><br><br>
<s:submit value="submit"></s:submit>
</s:form>
<!-- dwr 调用 -->
<input type="button" value="dwr spring" onclick="userReg()">
</body>
</html>
分享到:
相关推荐
在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...
**Java AJAX 框架 DWR 全面解析** DWR (Direct Web Remoting) 是一个强大的Java AJAX框架,它允许在浏览器和服务器之间进行直接的JavaScript与Java对象的交互,使得开发者能够轻松构建富客户端应用程序。DWR的出现...
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript与服务器端的Java代码进行交互,实现异步更新网页,无需刷新整个页面。DWR简化了客户端和服务器端之间的通信,使得Web应用更加动态和响应。下面将...
**JAVA AJAX框架 DWR详解** DWR(Direct Web Remoting)是一个开源的Java库,它使得JavaScript和服务器端的Java代码可以直接进行交互,无需处理复杂的HTTP请求和响应。这种技术在Web开发中被称为Ajax(Asynchronous...
ajax框架dwr使用的jar包,欢迎下载
**Ajax + Struts 与 Ajax 的 DWR 框架使用详解** 在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术极大地提升了用户体验,它允许网页在不刷新整个页面的情况下与服务器进行交互。Struts作为Java EE...
**DWR(Direct Web Remoting)**是一种Java框架,它...通过以上步骤,你可以有效地使用DWR框架加速AJAX应用的开发,实现高效、快速的Web交互。DWR简化了前后端交互的复杂性,让开发者能够更加专注于业务逻辑的实现。
在"ajax框架dwr例子"中,我们看到的是一个展示如何在Eclipse环境中使用DWR的简单示例。Eclipse是一款广泛使用的Java集成开发环境,对于开发基于DWR的应用提供了良好的支持。 首先,我们需要理解DWR的核心概念: 1. ...
DWR(Direct Web Remoting)是一个开源的Java框架,它使得在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)技术变得更加简单。Ajax允许创建富互联网应用程序(RIA),这些应用程序能够实时更新用户界面...
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript在浏览器端与Java在服务器端进行直接通信,从而实现动态、无刷新的Web应用程序。本入门例子旨在帮助初学者快速理解并掌握DWR的基本用法和功能。 ...
总的来说,Ajax和DWR框架的结合使用,可以显著提升Web应用的用户体验,减少不必要的页面刷新,提高数据处理效率。同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量...
通过这个"ajax框架dwr例子",初学者可以一步步学习DWR的安装、配置和使用,逐步掌握如何利用DWR构建动态、高效的Web应用。实践是最好的老师,通过实例学习,可以加深对DWR工作原理的理解,提升Ajax开发技能。
通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous JavaScript and XML)的功能,即在后台与服务器交互数据并局部更新网页。 **Ajax**的核心是利用JavaScript进行异步数据请求,...
通过阅读这份"DWR文档",初学者将能够全面了解DWR框架,掌握其工作原理,并具备使用DWR开发AJAX应用的能力。记得在学习过程中实践操作,结合实际项目来巩固理论知识,这样将更有利于理解和应用这些概念。
AJAX (Asynchronous JavaScript and XML) 和 DWR (Direct Web Remoting) 是两种在Web开发中广泛使用的技术,它们共同构成了一个强大的框架,用于构建高度交互性和动态的Web应用程序。AJAX允许在不刷新整个页面的情况...
在这个"ajax框架dwr程序实例源码"中,我们可以学习到以下几个关键知识点: 1. **DWR框架基础**:DWR的核心功能是将Java方法暴露给JavaScript调用,它通过动态生成JavaScript库来实现这一点。DWR提供了安全机制,如...
DWR (Direct Web Remoting) 是一个...综上所述,DWR是一个强大的AJAX框架,通过其简单的API和自动化特性,可以帮助开发者快速构建富客户端应用。通过深入学习和实践,我们可以充分利用DWR来提升Web应用的交互性和性能。
对Ajax中框架dwr的详细介绍文档。个人心得。
总结,DWR 3.0中文版为中文开发者提供了更友好的文档和支持,帮助他们在AJAX开发中更高效地利用DWR框架。通过理解并熟练运用DWR的核心概念和特性,开发者能够构建出具有高度交互性和响应性的Web应用。