使用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>密 码:</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使用方法详解:逐步指南 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许在浏览器端直接调用服务器端的方法,如同调用本地对象一样简单。本篇文章将从安装DWR、配置相关文件到...
对于初学者来说,这是一个很好的起点,它涵盖了DWR基本的使用方式和配置,同时也提供了一个可运行的示例,帮助理解Ajax通信的工作原理。通过深入学习和实践,你可以利用DWR构建更复杂的交互式Web应用。
**Ajax的DWR使用** Direct Web Remoting (DWR) 是一种开源JavaScript库,它使得在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)技术变得简单。DWR允许JavaScript与服务器端Java对象直接通信,无需编写...
标题"使用DWR的例子"暗示我们将讨论如何在实际项目中应用DWR。DWR的核心特性包括自动类型转换、安全机制、缓存管理以及错误处理等。在这个例子中,我们可能会看到如何配置DWR引擎,创建Java服务,以及在客户端...
这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...
这个"一个简单的dwr使用示例"旨在为初学者提供一个基础的DWR应用搭建教程。 一、DWR简介 DWR的核心功能是提供了动态的JavaScript到Java的调用,使得前端开发者可以在不刷新页面的情况下更新部分网页内容,提升用户...
4. **反射机制**:根据`dwr.xml`的配置,DWR使用Java的反射机制动态地加载指定的类(例如,HelloWorld),实例化对象,并调用相应的方法(如test)。 5. **结果返回**:调用完成后,结果被序列化并返回到JavaScript...
dwr使用入门总结,适合想入门的dwr学者。
下面我们将详细探讨DWR的配置和使用方法。 首先,配置DWR涉及以下几个关键步骤: 1. **引入DWR库**:在项目中添加dwr.jar,这是DWR的核心库,包含了所有必要的类和接口。 2. **创建Java类**:定义你需要在客户端...
[DWR(Ajax)]DWR使用笔记.chm
默认情况下,DWR使用异步方式发送请求,这意味着JavaScript中的调用可能不会按照预期顺序执行。如果需要同步执行,可以使用`DWREngine.setAsync(false)`来设置为同步方式。 3. **Servlet方法示例**: 例子中的`...
ajax框架dwr使用的jar包,欢迎下载
DWR (Direct Web ...总的来说,DWR提供了一种高效且易于使用的解决方案,使得开发者能够构建高度互动的Web应用,同时减少了传统AJAX技术的复杂性。通过学习和掌握DWR,你可以更轻松地创建动态、响应式的网页应用。
**DWR(Direct Web Remoting)使用方法详解** DWR,全称为Direct Web Remoting,是一种开源Java技术,用于在Web应用程序中实现浏览器与服务器之间的实时双向通信。它允许JavaScript直接调用Java方法,就像它们在...
DWR通过在客户端和服务器之间建立一个通信层,使得开发者可以轻松地在JavaScript中使用Java对象,极大地简化了前后端交互的复杂性。 DWR的核心组件包括: 1. **DWRServlet**:这是DWR的主要入口点,它是一个...