一:準備工作
建立Web工程,引入dwr jar包,web.xml文件中添加servlet寫法,見下;
WEB-INF目錄下建立dwr.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="loadingUtil">
<param name="class" value="com.lvbinbin.pojo.DWRLoading"></param>
<include method="loading"/>
</create>
</allow>
</dwr>
<include>標籤
include標籤和exclude標籤互相沖突,如果include以及exclude都不寫,即該bean中方法都會被引入,但是如果其父類爲Object類型,toString() wait()這些方法是不會被引入的,如果需要使用就需要手動include標籤中添加。
至於哪些方法被引入了,哪些方法沒有引入,dwr也提供了查看頁面:
servlet裏映射路徑比如是/dwr/*
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- 添加調試模式,方便調試方法,正式發佈的時候可以改爲false 默認值爲fasle -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- 這個crossDomainSessionSecurity必須配置,應該是跨區域提交設置,默認是ture, 如果不設置爲false就會報錯:Session Error -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
那 機器地址:端口//項目名/dwr 即可訪問到,點擊進入可以查看具體以及測試功能;需要提及的一點,比如我操作該對象設置了其中某個屬性,調用get方法,是無法得到剛纔設置上的屬性值;
頁面上寫法引入(其中DWRDemo爲我的項目名):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- Dwr 引擎庫 -->
<script type='text/javascript' src='/DWRDemo/dwr/engine.js'></script>
<!-- Dwr 工具庫 -->
<script type='text/javascript' src='/DWRDemo/dwr/util.js'></script>
<script type='text/javascript' src='/DWRDemo/dwr/interface/loadingUtil.js'></script>
</head>
<body>
<div id="curTime">當前時間:</div>
<script type="text/javascript">
window.onload = function() {
DWRUtil.useLoadingMessage();
loadingUtil.loading(function(data){
alert(data);
});
}
</script>
</body>
</html>
DWRLoading.java文件如下(查看useLoadingMessage特意設置了延遲):
package com.lvbinbin.pojo;
public class DWRLoading {
public String loading() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "數據返回success!";
}
}
useLoadingMessage方法即頁面等待時候的前置回調提示信息:默認爲Loading,會在最右上角顯示
當傳入參數時,顯示信息就會生效;
DWRUtil.useLoadingMessage("等待中");
DWRUtil與dwr.util爲同一個對象,使用起來沒有差異,使用useLoadingMessage方法需要引入dwr/util.js,因爲實在util.js中定義的
此外DWRUtil還有很多實用的方法,下次一一補充,待續。。。。