很好的Dwr入门材料[url]http://blog.sina.com.cn/s/blog_5a39b0c70100bgdh.html[/url],
但我照着做了遍却总是报对象未定义错误。
官网[url]http://directwebremoting.org/dwr/index.html[/url]上说,dwr依赖 Commons Logging 加入这个包后就行了。
总结下,个人认为不能再精简的dwr框架HelloWorld构建:
1.需要的jar包:
2.web.xml配置:
配个dwrServelt就行了。
3.dwr.xml配置:
放在WEB-INF下。javascript="app"配置最终生成dwr/interface/app.js暴露给客户端调用的接口。如果使用spring来获得实例就能真正体会到interface的含义。
4.jsp中的调用:
dwr通过回调来进行返回。
5.服务端代码:
但我照着做了遍却总是报对象未定义错误。
官网[url]http://directwebremoting.org/dwr/index.html[/url]上说,dwr依赖 Commons Logging 加入这个包后就行了。
总结下,个人认为不能再精简的dwr框架HelloWorld构建:
1.需要的jar包:
dwr.jar
commons-logging.jar
2.web.xml配置:
配个dwrServelt就行了。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<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>
3.dwr.xml配置:
放在WEB-INF下。javascript="app"配置最终生成dwr/interface/app.js暴露给客户端调用的接口。如果使用spring来获得实例就能真正体会到interface的含义。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create javascript="app" creator="new">
<param name="class" value="com.amhuman.study.App" />
</create>
</allow>
</dwr>
4.jsp中的调用:
dwr通过回调来进行返回。
<html>
<head>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/interface/app.js"></script>
</head>
<body>
<h2>Hello World!</h2>
<script>
app.say(function(data){
document.write(data);
//alert(data);
});
</script>
</body>
</html>
5.服务端代码:
package com.amhuman.study;
/**
* Hello world!
*
*/
public class App
{
public String say(){
String str = "Hello Dwr,";
return str + "I am AmHuman";
}
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}