步骤如下: 1、配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 配置DWR框架的Servlet --> <servlet> <servlet-name>dwrServlet</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwrServlet</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 2、配置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> <!-- 配置客户端JS与JAVA类之间的关联关系 --> <allow> <!-- javascript="user":表示在客户端生成JS的文件名字 creator:如果为new 表示当前的类是通过new来实例的 如果为spring:表示当前的JAVA类引用spring中的bean --> <create javascript="user" creator="new"> <!-- param:类的路径配置 name:为class的表示配置类路径 (creator="new") 如果creator="spring" name为beanName --> <param name="class" value="cn.com.wlz.server.UserServer"> </param> <!-- 可以被客户端调用 的JAVA类中的方法 <include method="isUser,"/>--> <!-- 不可以被客户端调用 的JAVA类中的方法 <exclude method=""/> --> </create> <!-- 把JS中的对像转换成对应的JAVA对像 match:JAVA类路径 converter="bean":告诉DWR 框架,如果是对像的话,自动进行转换 --> <convert match="cn.com.wlz.vo.User" converter="bean"></convert> </allow> </dwr> 3.java类 package cn.com.wlz.server; import cn.com.wlz.vo.User; public class UserServer { //判断用户是否可用 public int isUser( String name ){ System.out.println( "name:"+name ); if(name.equals( "wlz" )) return 1; return 0; } // //用户注册 public int register( User user ){ System.out.println( "username:"+user.getUsername()+"password:"+user.getPassword()); if( user.getUsername().equals( "wlz" ) ) return 0; return 1; } } package cn.com.wlz.vo; public class User { private String username; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } 4、jsp代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <!-- 导入DWR框架运行的JS文件 --> <mce:script type="text/javascript" src="<%=path%><!-- /dwr/engine.js"> // --></mce:script> <mce:script type="text/javascript" src="<%=path%><!-- /dwr/util.js"> // --></mce:script> <!-- 导入DWR框架动态生成的JS 调用dwr.xml中通过create javascript设置的JS名字 --> <mce:script type="text/javascript" src="<%=path%><!-- /dwr/interface/user.js"> // --></mce:script> </head> <mce:script type="text/javascript"><!-- //验证用户 function isUser( value ){ alert( value ); //通过JS调用JAVA类中的方法 最后一个参数为回调函数,获取返回的值 user.isUser( value,function(data){ alert(data); }); } //注册 function register(){ var user1 = {}; user1.username = DWRUtil.getValue( "username" ); user1.password = DWRUtil.getValue( "password" ); alert( user1.username+user1.password ); user.register( user1,function(data){ alert(data); } ); //alert( "register" ); } // --></mce:script> <body> <center> 用户名: <input name="username" οnblur="isUser(this.value)" /> <br> 密码: <input name="password" /> <br> <input type="button" name="register" οnclick="register()" value="register" /> </body> </html> 5、dwr2.jar下载