DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。它包含部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据。另一方面JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码。
①dwr.jar包引入到项目的WEB-INF/lib目录下
②web.xml配置
<servlet>
<servlet-name>dwr-invoker</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>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
③框架的核心配置文件dwr.xml
<dwr>
<allow>
<create creator="new" javascript="myjs">
<param name="class" value="dwr.test.helloWorld">
<include method="sayHello"/>
</param>
</create>
</allow>
</dwr>
④Java类
public class helloWorld {
public String sayHello(String str){
return "Hello," + str;
}
}
⑤自己的javascript文件hello.js
function update() {
var name = dwr.util.getValue("txtName");
myjs.sayHello(name, function(data) {
dwr.util.setValue("demoReply", data);
});
}
⑥jsp文件
<script type='text/javascript' src='/DWRDemo/dwr/interface/myjs.js'></script>
<script type='text/javascript' src='/DWRDemo/dwr/engine.js'></script>
<script type='text/javascript' src='/DWRDemo/dwr/util.js'></script>
<script type='text/javascript' src='/DWRDemo/js/hello.js'></script>
<body>
<p>DWR</p>
<input type="text" id="txtName" size="20" value=""/>
<input type="button" value="submit" onclick="update()"/>
<br>
<span id="demoReply"></span>
</body>
客户端输入test,调用javascript的update()函数,update函数通过配置文件调用java类的sayHello()方法,返回值输出到客户端。