DWR(Direct Web Remoting)是一個用于改善Web頁面與Java類交互的開源庫。它允許瀏覽器與服務器端的Java對象進行雙向通信,從而實現頁面的無刷新更新。以下是使用DWR實現交互的基本步驟:
<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
的類,其中包含一個名為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);
// 當文檔加載完成后,調用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>
現在,當用戶訪問HTML頁面時,瀏覽器會與服務器端的MyClass
對象進行交互。hello
方法的返回值將顯示在頁面上,而無需刷新整個頁面。這就是如何使用DWR實現Java與Web頁面之間的交互。