基于dwr框架的简单实例 转帖

基于dwr框架的简单实例

前面用ajax做页面局部刷新和级联下拉框时,感觉确实有蛮麻烦的,只能返回Html和Xml格式,这样在jsp页面还要用javascript解析 Xml文档.感觉不怎么爽.今天用了一个基于ajax实现的dwr框架.嗯,蛮不错的,可以返回对象,集合,map等等到jsp页面.这样我们便不用解析什么了,而且dwr可以让客户端直接调用服务器端远程对象的方法,也可以将javascript的内容发送到服务器.简单介绍下使用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="登录" οnclick="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,不知道讲没讲明白,大家就一起讨论吧.欢迎交流....^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值