DWR 介绍和实例——前后台数据交互王道

简单介绍下使用DWR框架的基本步骤.  
1,下载dwr的jar包.  
2,将jar包复制到WEB-INF目录下的lib文件夹下.  
3,在web.xml中注册dwr的一个servlet.  
4,写相关的javaBean业务操作类及方法.  
5,写配置文件,取名为dwr.xml,与web.xml同一个目录下,注册将要操作的javaBean.  
OK,下面就来看个登录简单的实例吧.
web.xml文件如下:  
<servlet>   
<servlet-name>dwr-invoker</servlet-name>   
<servlet-class>uk.ltd.getahead.dwr.DWRServlet<!--此处必须这样写-->  
</servlet-class>  
</servlet>  
<servlet-mapping>  
<servlet-name>dwr-invoker</servlet-name>   
<url-pattern>/dwr/*</url-pattern>  
</servlet-mapping>

dwr.xml文件如下:  
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">  
<dwr>  
<allow> <!--此处将pojos包下的所有javaBean转换为javascript对象使用-->  
<convert match="org.hj.pojos.*" converter="bean"></convert> <!-- javascript的对象是user,create=“new”是DWR自己创建UserDelegate这个类的实例,其他的还有spring方式,通过与IOC容器Spring进行集成 -->  
<create javascript="user" creator="new">  
<param name="class" value="org.hj.delegate.UserDelegate"></param> <!-- include表示客户端可以通过user调用服务器对象的方法,如果不写,则表示可调用这个类的所有方法.可写可不写--> <include method="isLogin"/> <exclude method="save"/><!--此处表示不允许调用的一个方法,可写可不写-->  
</create>  
</allow>  
</dwr>



处理业务的类及方法如下:  
public class UserDelegate {  
private static UsersDao dao=new UsersDao();  
public boolean isLogin(String name,String pwd){  
Users u=new Users();  
u.setUsername(name);  
u.setPwd(pwd);  
return dao.isLogin(u);//(略...)  
}}..............


OK,最后就一个jsp页面.封装了很多方法供我们直接使用  
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
<html>  
<!--引入dwr根据dwr.xml中的javascript="user"此处,自动生动个user的js对象供使用-->  
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/interface/user.js"></script>  
<!--引入dwr的util.js-->  
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/util.js"></script>  
<!--引入dwr的engine.js-->  
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/engine.js"></script>  
</head>
<body>  
用户名:<input type="text" id="usename" />  
密 码:<input type="password" id="pwd"/>  
<input type="button" value="登录" onclick="login()" />  
</body>  
<script type="text/javascript">  
function login(){  
var usename=dwr.util.getValue("usename"); <!--通过dwr中的util得到文本框的值,必须是id的值-->
var pwd=dwr.util.getValue("pwd");  
<!--此处为user对象远程调用服务器的isLogin方法,传参,还一个返回值,这里用一个匿名的回调函数来处理-->
user.isLogin(usename,pwd,function(isLogin){  
if(isLogin)  
locatio.href="list.jsp"; (博客不支持,应该为location)  
else{  
alert("用户名或密码错误");  
return false;  
}  
});  
}  
</script>  
</html>  


怎么样,是不是没有servlet了.dwr可直接访问服务器端方法.OK,又不明白,敬请咨询。

你可能感兴趣的:(JavaScript,spring,servlet,DWR,user,include)