DWR(Direct Web Remoting)是一個(gè)用于改善Web頁面與Java類交互的開源庫。它允許瀏覽器與服務(wù)器端的Java對象進(jìn)行雙向通信,從而實(shí)現(xiàn)頁面的無刷新更新。以下是使用DWR實(shí)現(xiàn)交互的基本步驟:
<dependency>
<groupId>org.dwr</groupId>
<artifactId>dwr</artifactId>
<version>3.0.2-RELEASE</version>
</dependency>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.dwr.server.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
MyClass
的類,其中包含一個(gè)名為hello
的方法:public class MyClass {
public String hello(String name) {
return "Hello, " + name + "!";
}
}
<!DOCTYPE html>
<html>
<head>
<title>DWR Example</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript">
// 注冊Java類
DWR.register("myClass", MyClass.class);
// 當(dāng)文檔加載完成后,調(diào)用hello方法
window.onload = function() {
var result = myClass.hello("World");
document.getElementById("result").innerHTML = result;
};
</script>
</head>
<body>
<h1>DWR Example</h1>
<p id="result"></p>
</body>
</html>
現(xiàn)在,當(dāng)用戶訪問HTML頁面時(shí),瀏覽器會(huì)與服務(wù)器端的MyClass
對象進(jìn)行交互。hello
方法的返回值將顯示在頁面上,而無需刷新整個(gè)頁面。這就是如何使用DWR實(shí)現(xiàn)Java與Web頁面之間的交互。