`
chinrui
  • 浏览: 98133 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

dwr的使用

 
阅读更多

使用dwr进行异步的请求操作

使用dwr可以通过调用javascript的方法来调用java的相应方法,从而达到异步请求处理的结果。

1、导入相应的jar包

dwr.jar

2、编写处理Ajax请求的类

package cn.hpu.dwr;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import cn.hpu.po.RoleRelation;
import cn.hpu.po.User;
import cn.hpu.service.UserService;

public class LoginAjax {

	private UserService userService;
	
	/**用户登录
	 * @author qinrui
	 * @param java.util.Map map
	 * @param session
	 * @return java.lang.String
	 */
	public String login(Map map ,HttpSession session) {
		
		String name = map.get("name").toString();
		String password = map.get("password").toString();
		String code = map.get("code").toString();
		
		// 数据校验
		if(name != null && !"".equals(name.trim()) && password != null && !"".equals(password.trim())) {
			
			if(code != null && !"".equals(code.trim())) {
				
				String randCode = session.getAttribute("rand").toString();
				
				if(randCode.equals(code)) {
					
					User loginUser = userService.loadUserByRegName(name);
					
					if(loginUser != null) {
						
						if(loginUser.getPassword().equals(password)) {
							// 登录记录
							session.setAttribute("user", loginUser);
							
							List<RoleRelation> roleRelations = loginUser.getRoleInfo().getRoleRelations();
							
							session.setAttribute("roleRelations", roleRelations);
							
							return "true";
						} else {
							return "密码错误!";
						}
						
					} else {
						return "用户名不存在!";
					}
				} else {
					return "验证码不正确!";
				}
				
			} else {
				return "验证码为空!";
			}
			
		} else {
			return "用户名或密码为空!";
		}
	}

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}
}

3、配置beans.xml

<!-- 配置用户登录的异步类 -->
<bean id="loginAjax" class="cn.hpu.dwr.LoginAjax">
	<property name="userService" ref="userService" />
</bean>

 

4、在WEB-INF下面添加dwr.xml文件并进行配置(此处使用Spring来进行管理创建)

<?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>
		<!-- 不使用Spring进行管理 -->
		<!--<create creator="new" javascript="LoginAjax">
			<param name="class" value="cn.hpu.dwr.LoginAjax" />
		</create>
		<convert converter="bean" match="cn.hpu.po.DDCategory"></convert>-->
		
		<!-- 用户登录的异步类 -->
		<create creator="spring" javascript="loginAjax">
			<param name="beanName" value="loginAjax" />
			<include method="login" />
		</create>
	</allow>
		
</dwr>

 

5、引入相应的javascript文件

<!-- 使用dwr所必须引入的js文件 -->
<script type="text/javascript" src="dwr/engine.js" ></script>
<!-- 使用dwr获取页面(表单等)值引入的工具js文件 -->
<script type="text/javascript" src="dwr/util.js" ></script>
<!-- 与java文件相对应的js文件,此处的js文件名必须与dwr.xml配置里面的javascript的值相同 -->
<script type="text/javascript" src="dwr/interface/complainAjax.js" ></script>

 6、使用complainAjax来调用java里面的方法

<script type="text/javascript" >
function login() {
	var loginMap = dwr.util.getValues("loginForm");
	loginAjax.login(loginMap , loginCallback);
}

function loginCallback(data) {
	if(data == 'true') {
		window.location.href = 'index';
	} else {
		alert(data);
	}
}
</script>

 

<div id="loginField" style="background: url('img/login.png');">
	<form id="loginForm" method="post">
		<table>
			<tr>
				<td>用户名:</td>
				<td><input type="text" name="name" class="inputStyle" /></td>
			</tr>
			<tr>
				<td>密&nbsp;&nbsp;码:</td>
				<td><input type="password" name="password" class="inputStyle" /></td>
			</tr>
			<tr>
				<td>验证码:</td>
				<td><input type="text" name="code" class="codeInputStyle" /><img src="image" class="imageStyle" /></td>
			</tr>
			<tr>
				<td colspan="2" class="buttonRow"><input type="button" onclick="login()" value="登录" />
				<input type="reset" value="重置" /></td>
			</tr>
		</table>
	</form>
</div>

 

分享到:
评论

相关推荐

    DWR使用方法-step by step

    ### DWR使用方法详解:逐步指南 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许在浏览器端直接调用服务器端的方法,如同调用本地对象一样简单。本篇文章将从安装DWR、配置相关文件到...

    java dwr 使用例子

    对于初学者来说,这是一个很好的起点,它涵盖了DWR基本的使用方式和配置,同时也提供了一个可运行的示例,帮助理解Ajax通信的工作原理。通过深入学习和实践,你可以利用DWR构建更复杂的交互式Web应用。

    Ajax的DWR使用

    **Ajax的DWR使用** Direct Web Remoting (DWR) 是一种开源JavaScript库,它使得在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)技术变得简单。DWR允许JavaScript与服务器端Java对象直接通信,无需编写...

    dwr 使用例子,一目了然

    标题"使用DWR的例子"暗示我们将讨论如何在实际项目中应用DWR。DWR的核心特性包括自动类型转换、安全机制、缓存管理以及错误处理等。在这个例子中,我们可能会看到如何配置DWR引擎,创建Java服务,以及在客户端...

    最完整的DWR入门文档及DWR使用案例

    这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...

    一个简单的dwr使用示例

    这个"一个简单的dwr使用示例"旨在为初学者提供一个基础的DWR应用搭建教程。 一、DWR简介 DWR的核心功能是提供了动态的JavaScript到Java的调用,使得前端开发者可以在不刷新页面的情况下更新部分网页内容,提升用户...

    DWR使用步骤详解DWR使用步骤详解

    4. **反射机制**:根据`dwr.xml`的配置,DWR使用Java的反射机制动态地加载指定的类(例如,HelloWorld),实例化对象,并调用相应的方法(如test)。 5. **结果返回**:调用完成后,结果被序列化并返回到JavaScript...

    dwr使用入门总结

    dwr使用入门总结,适合想入门的dwr学者。

    dwr使用例子配置和使用

    下面我们将详细探讨DWR的配置和使用方法。 首先,配置DWR涉及以下几个关键步骤: 1. **引入DWR库**:在项目中添加dwr.jar,这是DWR的核心库,包含了所有必要的类和接口。 2. **创建Java类**:定义你需要在客户端...

    [DWR(Ajax)]DWR使用笔记.chm

    [DWR(Ajax)]DWR使用笔记.chm

    DWR使用步骤DWR使用步骤

    默认情况下,DWR使用异步方式发送请求,这意味着JavaScript中的调用可能不会按照预期顺序执行。如果需要同步执行,可以使用`DWREngine.setAsync(false)`来设置为同步方式。 3. **Servlet方法示例**: 例子中的`...

    ajax框架dwr使用的jar包

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

    dwr使用文档

    ### dwr使用文档知识点梳理 #### 一、DWAR(Direct Web Remoting)简介 - **定义**:Direct Web Remoting (DWR) 是一种开源框架,它简化了客户端JavaScript与服务器端Java代码之间的交互。DWR使得JavaScript可以...

    dwr说明dwr说明dwr说明

    DWR (Direct Web ...总的来说,DWR提供了一种高效且易于使用的解决方案,使得开发者能够构建高度互动的Web应用,同时减少了传统AJAX技术的复杂性。通过学习和掌握DWR,你可以更轻松地创建动态、响应式的网页应用。

    DWR的使用方法

    **DWR(Direct Web Remoting)使用方法详解** DWR,全称为Direct Web Remoting,是一种开源Java技术,用于在Web应用程序中实现浏览器与服务器之间的实时双向通信。它允许JavaScript直接调用Java方法,就像它们在...

    DWR 框架使用手册

    DWR通过在客户端和服务器之间建立一个通信层,使得开发者可以轻松地在JavaScript中使用Java对象,极大地简化了前后端交互的复杂性。 DWR的核心组件包括: 1. **DWRServlet**:这是DWR的主要入口点,它是一个...

Global site tag (gtag.js) - Google Analytics