Dwr用了也有一段时间啦,不过觉得用的东西都很肤浅,这段时间不太忙,觉得有必要对Dwr进行深入的了解。
下面就是Dwr最简单的一个例子。Hello Dwr
使用Dwr时,要确保您的Lib下已经存在Dwr的Jar文件。然后配置Web.xml文件,具体配置如下:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
其中Dwr对应的Servlet类只用记得类所在的包名,就可以在dwr.jar文件中打到具体的类名。
然后建立Dwr的配置文件(dwr.xml),路径与您的web.xml在同一目录下。具体的dwr.xml文件的配置如下:
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create javascript="hello" creator="new">
<param name="class" value="com.jack.dwr.simple.HelloDwr"></param>
</create>
</allow>
</dwr>
其中javascript="hello"是在页面中要使用的具体的名字,<param>是要对应到的类名。
要页面中使用Dwr即可以是HTML页面也可以JSP页面,下面是在JSP页面中如何使用Dwr框架:
<%@ page language="java" pageEncoding="GBK"%>
<%
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>Hello dwr</title>
<script type="text/javascript" src="<%=path%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=path%>/dwr/util.js"></script>
<script type="text/javascript" src="<%=path%>/dwr/interface/hello.js"></script>
<script type="text/javascript">
function sayHello(){
person = document.getElementById("userName").value;
hello.sayHello(person,callBackHello);
}
function callBackHello(result){
dwr.util.setValue("userName",result);
}
</script>
</head>
<body>
<input type="text" id="userName">
<input type="button" value="sayHello" onclick="sayHello();">
</body>
</html>