`
gcgmh
  • 浏览: 354325 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax框架dwr的配置及使用introduction

阅读更多
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简单应用

    在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...

    java_ajax框架dwr

    **Java AJAX 框架 DWR 全面解析** DWR (Direct Web Remoting) 是一个强大的Java AJAX框架,它允许在浏览器和服务器之间进行直接的JavaScript与Java对象的交互,使得开发者能够轻松构建富客户端应用程序。DWR的出现...

    ajax框架Dwr的具体使用步骤

    DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript与服务器端的Java代码进行交互,实现异步更新网页,无需刷新整个页面。DWR简化了客户端和服务器端之间的通信,使得Web应用更加动态和响应。下面将...

    JAVA AJAX框架 DWR

    **JAVA AJAX框架 DWR详解** DWR(Direct Web Remoting)是一个开源的Java库,它使得JavaScript和服务器端的Java代码可以直接进行交互,无需处理复杂的HTTP请求和响应。这种技术在Web开发中被称为Ajax(Asynchronous...

    ajax框架dwr使用的jar包

    ajax框架dwr使用的jar包,欢迎下载

    Ajax + struts 与 ajax 的 dwr 框架的使用

    **Ajax + Struts 与 Ajax 的 DWR 框架使用详解** 在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术极大地提升了用户体验,它允许网页在不刷新整个页面的情况下与服务器进行交互。Struts作为Java EE...

    ajax 框架 dwr java

    **DWR(Direct Web Remoting)**是一种Java框架,它...通过以上步骤,你可以有效地使用DWR框架加速AJAX应用的开发,实现高效、快速的Web交互。DWR简化了前后端交互的复杂性,让开发者能够更加专注于业务逻辑的实现。

    ajax框架dwr例子

    在"ajax框架dwr例子"中,我们看到的是一个展示如何在Eclipse环境中使用DWR的简单示例。Eclipse是一款广泛使用的Java集成开发环境,对于开发基于DWR的应用提供了良好的支持。 首先,我们需要理解DWR的核心概念: 1. ...

    Ajax框架DWR综合示例

    DWR(Direct Web Remoting)是一个开源的Java框架,它使得在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)技术变得更加简单。Ajax允许创建富互联网应用程序(RIA),这些应用程序能够实时更新用户界面...

    Ajax框架DWR 入门例子

    DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript在浏览器端与Java在服务器端进行直接通信,从而实现动态、无刷新的Web应用程序。本入门例子旨在帮助初学者快速理解并掌握DWR的基本用法和功能。 ...

    AJAX 与 DWR框架

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

    ajax框架dwr例子.rar

    通过这个"ajax框架dwr例子",初学者可以一步步学习DWR的安装、配置和使用,逐步掌握如何利用DWR构建动态、高效的Web应用。实践是最好的老师,通过实例学习,可以加深对DWR工作原理的理解,提升Ajax开发技能。

    dwr实现ajax功能ajax+dwr

    通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous JavaScript and XML)的功能,即在后台与服务器交互数据并局部更新网页。 **Ajax**的核心是利用JavaScript进行异步数据请求,...

    AJAX框架dwr文档

    通过阅读这份"DWR文档",初学者将能够全面了解DWR框架,掌握其工作原理,并具备使用DWR开发AJAX应用的能力。记得在学习过程中实践操作,结合实际项目来巩固理论知识,这样将更有利于理解和应用这些概念。

    AJAX_DWR框架

    AJAX (Asynchronous JavaScript and XML) 和 DWR (Direct Web Remoting) 是两种在Web开发中广泛使用的技术,它们共同构成了一个强大的框架,用于构建高度交互性和动态的Web应用程序。AJAX允许在不刷新整个页面的情况...

    ajax框架dwr程序实例源码

    在这个"ajax框架dwr程序实例源码"中,我们可以学习到以下几个关键知识点: 1. **DWR框架基础**:DWR的核心功能是将Java方法暴露给JavaScript调用,它通过动态生成JavaScript库来实现这一点。DWR提供了安全机制,如...

    DWR AJAX框架(包含使用教程)

    DWR (Direct Web Remoting) 是一个...综上所述,DWR是一个强大的AJAX框架,通过其简单的API和自动化特性,可以帮助开发者快速构建富客户端应用。通过深入学习和实践,我们可以充分利用DWR来提升Web应用的交互性和性能。

    关于Ajax框架DWR的总结

    对Ajax中框架dwr的详细介绍文档。个人心得。

    Ajax框架dwr3.0中文

    总结,DWR 3.0中文版为中文开发者提供了更友好的文档和支持,帮助他们在AJAX开发中更高效地利用DWR框架。通过理解并熟练运用DWR的核心概念和特性,开发者能够构建出具有高度交互性和响应性的Web应用。

Global site tag (gtag.js) - Google Analytics