首先是配置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>
配置dur.xml 和web.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>
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>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<!-- 导入DWR框架运行的JS文件 -->
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<!-- 导入DWR框架动态生成的JS 调用dwr.xml中通过create javascript设置的JS名字 -->
<script type="text/javascript" src="dwr/interface/user.js"></script>
</head>
<script>
//验证用户
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" );
}
</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>
java类:
package cn.com.wlz.server;
import cn.com.wlz.vo.User;
/**
*
* title:用户Server
* @author Administrator
*
*/
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;
}
}