JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--EJB  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
DWR - Direct Web Remoting 实际使用
作者:     文章来源:
访问次数:14次     加入时间:2007年03月31日
DWR - Direct Web Remoting 实际使用

原创:magicgod


版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
magicgod的blog:
http://www.matrix.org.cn/blog/magicgod/





ajax喊了好多年,还没实际用过,趁着DWR出来用一把。

用在一个很简单的地方,就是检查是否有重复的名称。

首先写好一个类

public class CommonServices
{
public boolean checkRepeatUser(String loginname)
{
boolean result=false;
...省去具体代码
return result;
}
}


在web.xml中加上

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>


在WEB-INF/dwr.xml中

<?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>
<create creator="new" javascript="CommonServices">
<param name="class" value="com.test.CommonServices"/>
</create>
</allow>
</dwr>


这是配一个类,对应于js中哪一个类,基本上象一个bean管理器。

在jsp中

先引入js
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/CommonServices.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/util.js'></script>


前两个是必须的。CommonServices.js会动态生成,根据dwr.xml。

写一些方法:

function showResult(b)
{
if(b)
{
alert("已经有重复的登录名了!");
}
else
{
alert("登录名尚未注册过!");
}

}

function checkRepeat(s)
{
var o=getElement(s);
if(o)
{
CommonServices.checkRepeatUser(o.value,showResult);
}
}

function getElement(name)
{
var result=null;
var objs=document.getElementsByName(name);
if(objs)
{
var o=objs[0];
result=o;
}
return result;
}


checkRepeat:传入一个文本框的对象名,取出内容,调用后台CommonServices,根据返回值显示结果。
showResult:回调函数,处理后台CommonServices的返回结果。不知道为什么要用这种方式,干脆直接返回值不是挺好?还需要用回调?
getElement:自定义的实用工具函数

定义一下按钮:
<input type="button" onclick="checkRepeat('user.loginname')" value="检查是否重复">


这样点一个按钮之后就会弹出对话框,显示是否重复的信息。

调用的大致流程是这样的:

button->checkRepeat->CommonServices.js->engine.js->dwr servlet->CommonServices.java->DB




JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号