Ajax自从2005年2月份开始,逐渐风靡Web应用程序开发界。Ajax的应用确实提高了Web应用程序的数据传输效率,改善了用户体验,给Web应用程序开发带来了实实在在的好处。随着应用和开发的深入,不少组织和企业公布了其所创建并应用的Ajax框架。这些框架或者是通用性的,适用于各个Web应用程序解决方案;或者是针对性的,针对特定的Web应用程序解决方案;或者是针对某个Web应用程序开发框架,作为其有效补充。这些框架在Ajax的应用方式和应用方向、领域做出了有益的研究和探索,提出了各种实用的解决方案。了解和认识这些框架,将有助于对Ajax的机制、工作方式、应用方向和领域有进一步的了解和掌握。另外,如果你不想开发自己的Ajax开发框架,也可以从这些免费的开源的框架中选择适合自己业务需求的框架,这也有助于缩短开发周期,提高开发效率。
DWR(Direct Web Remoting)是getahead公司开发的一个实现Ajax应用的框架。它允许客户端Javascript远程调用服务器端Java类的方法,执行相关的事务操作。本篇文章将从DWR简介、使用入门、适用范围等方面详细介绍DWR。
DWR Demo:
新建一个webProject
复制 dwr开发包到lib下
将复制到WEB-INF下
在web.xml中配置dwrservlet
<servlet>
<servlet-name>dwrServlet</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwrServlet</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
创建一个Time类
package com.getTime;
import java.text.SimpleDateFormat;
import java.util.Date;
publicclass Time {
public String getTime()
{
Date da=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sf.format(da);
}
}
在dwr.xml 文件中
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://directwebremoting.org/schema/dwr20.dtd">
<dwr>
<allow >
<create javascript="test" creator="new">
<param name="class" value="com.getTime.Time"></param>
</create>
</allow>
</dwr>
测试:http://localhost:8080/DwrProject/dwr/index.html
点击test 进入页面
找到
看Execute 后面的返回值 是否正确
如果正确
复制 其中
<script type='text/javascript' src='/DwrProject/dwr/interface/test.js'></script>
<script type='text/javascript' src='/DwrProject/dwr/engine.js'></script>
<script type='text/javascript'src='/DwrProject/dwr/util.js'></script>
放入所要运用的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">
-->
<script type='text/javascript' src='/DwrProject/dwr/interface/test.js'></script>
<script type='text/javascript' src='/DwrProject/dwr/engine.js'></script>
<script type='text/javascript' src='/DwrProject/dwr/util.js'></script>
<script type="text/javascript">
function getTime()
{
var time= document.getElementById("time");
test.getTime(function(ret){
time.innerHTML=ret;
});
setTimeout(' getTime()',1000);
}
</script>
</head>
<body onload="getTime()">
<label id="time"></label>
</body>
</html>