日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ajax框架,DWR介绍,应用,样例

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ajax框架,DWR介绍,应用,样例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Ajax框架
1.簡化JavaScript的開發難度
2.解決瀏覽器的兼容性問題

3. 簡化開發流程


經常使用Ajax框架

Prototype

一個純粹的JavaScript函數庫,對Ajax提供良好支持

jQuery

1.很優秀的JavaScript庫,對Ajax提供了良好的支持

2.與Prototype設計思想不同的是在使用jQuery之后,開發人員操作的不再是DOM對象而是jQuery對象

DWR

1.????????很專業的Java Ajax框架

2.????????通過DWR框架,可將Java類的方法直接暴露給client

Dojo

① Dojo功能強大,包括很多內容,Ajax僅僅是當中之中的一個

② 特點在于控件和控件系統

③ 眼下Dojo仍然在開發完好中,版本號更新速度很快

AjaxTags

由一系列JSP標簽組成,將經常使用的Ajax應用場景封裝為簡單的標簽



使用DWR框架簡化Ajax開發

1. DWR(Direct Web Remoting)是一個Java Ajax框架
2. DWR框架同意開發者在client通過JavaScript代碼調用server端的Java方法
3. DWR框架主要由兩部分組成:
1.clientJavaScript代碼直接調用server端Java方法
2.server上執行的DWR核心Servlet負責處理client請求,將client請求托付到實際的Java對象進行處理,并將結果返回給client

下載DWR框架

DWR的官方網站:
http://directwebremoting.org/dwr/downloads/index.html
各下載項說明:
1. JAR File:該選項僅下載dwr.jar文件
2. WAR File:該選項下載dwr.jar文件及其其它依賴的類庫,還包含DWR的使用范例
3. Sources:該選項下載DWR的源文件

安裝DWR

1.加入dwr.jar文件到WEB-INF/lib文件夾下
2.改動web.xml文件,加入例如以下代碼

<servlet><servlet-name>dwr_invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><!--初始化參數,debug開發時設置--><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> 3 創建dwr.xml文件
1.與web.xml文件位于同一文件夾
2.該文件用于定義Java類和JavaScript之間的相應關系,將Java類的方法暴露給client
其結構例如以下:<?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 creator="..." javascript="..." scope="..."><!-- 要公布的類名 --><param name="..." value="..." /><!-- 暴露給client的,要公布的方法名 --><include method="…" /><!-- 不暴露給client的 --><exclude method="…" /></create><!-- js和服務端的對象進行轉換 --><convert converter="..." match="..." /></allow> </dwr> dwr.xml具體解釋 (參考dwr.xml)

<allow>元素:定義了DWR可以創建和轉換的類,是dwr.xml中最重要的元素

<create>元素:創建器定義怎樣將一個Java類轉換成JavaScript對象

<convert >元素:類型轉換器,用于定義Java類型和JavaScript類型之間的相應關系

?

<create>元素的屬性:

creator屬性:DWR內置多個創建器用于處理多種類型Java類

javascript屬性:在client給創建的JavaScript對象命名。該名字將在頁面里作為js被導入

scope屬性:作用域。選項能夠是:application, session,request和page。默覺得page

<create>元素的子元素:

<param>元素:用來指定創建器的參數。當中name屬性用來指定參數名稱,value指定參數的值

<include>元素:定義同意訪問的方法列表,其它方法將不暴露給client

<exclude>元素:定義不同意訪問的方法列表,當中method屬性指定不被暴露給client的方法(其它沒指定的方法默認暴露給client)

?

<convert>元素

全部基本類型,boolean、 int 、double等等

包裝類,Boolean、Integer等等

java.lang.String

日期類型,如:java.util.Date 和 java.sql.Times、java.sql.Timestamp等

數組(存放以上類型的)

集合類型 (List、Set、Map、Iterator等等)

Bean轉換器

用于完畢JavaBean對象和JavaScript對象之間的轉換

?DWR默認關閉Bean轉換器

假設須要進行JavaBean對象和JavaScript對象之間的轉換,須要在dwr.xml中顯式設置

?<convert converter="bean"match="www.dwrdemo.DwrBean"/>

為Webproject加入DWR支持,樣例:

創建web Project :DWRDemo
增加DWR jar包 ;
(要增加commons-logging.jar)
改動web.xml文件:加servlet
<servlet><servlet-name>dwr_invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><!--初始化參數,debug開發時設置--><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文件 (參考

dwr30.dtd:/org/directwebremoting/dwr30.dtd

和dwr.xml:/org/directwebremoting/dwr.xml

寫)

?

與web.xml文件位于同一文件夾(能夠放在src下,可是須要要在web.xml配置的

?????? Servlet里面加

????? <init-param>

???????? <param-name>config</param-name>

???????? <param-value>/WEB-INF/classes/dwr.xml</param-value>

?? </init-param>?????

初始化的時候,會調用源代碼里面的相應方法


<?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 creator="new" javascript="DwrDemoDate" scope="application" ><!-- 要公布的類名 --><param name="class" value="java.util.Date" /></create></allow> </dwr>

?部署,訪問:http://localhost:8080/DWRDemo/dwr?

?

Bean轉換器

用于完畢JavaBean對象和JavaScript對象之間的轉換

?DWR默認關閉Bean轉換器

假設須要進行JavaBean對象和JavaScript對象之間的轉換,須要在dwr.xml中顯式設置

?<convert converter="bean"match="www.dwrdemo.DwrBean"/>

以下舉例:

樣例 使用Bean轉換器

新建DwrService 在com包下,加入以下方法:
public DwrBean getDwrBean(){
return new DwrBean();
}
DwrBean在com包下 加入私有屬性message和它get set方法;


Dwr.xml配置:在<allow>里面加入:
<create creator="new" javascript="DwrService" scope="application">
<!-- 要公布的類名 -->
<param name="class" value="com.DwrService" />
</create>
<convert converter="bean" match="com.DwrBean" />
重新啟動訪問 http://localhost:8080/DWRDemo/dwr 點擊第二個

樣例:使用DWR實現頁面載入時輸出當前的時間等

DWR 怎樣簡化Ajax 開發
http://localhost:8080/DWRDemo/dwr/test/DwrDemoDate前面兩行script導入index,編寫js
index.jsp:

</head><!-- 導入DWR的JavaScript文件--> <script type='text/javascript' src='/DWRDemo/dwr/engine.js'></script><!-- 導入DWR為Java對象動態生成的JavaScript文件--> <script type='text/javascript' src='/DWRDemo/dwr/interface/DwrDemoDate.js'></script><script type="text/javascript">function init(){//調用Date對象的toString()方法,load為回調函數DwrDemoDate.toString(load); }function load(data){document.getElementById("time").innerHTML = data;}</script><body><input id="" type="button" οnclick="init()" value="show" /><dir id="time"></dir></body>

?重新啟動tomcat訪問主頁;http://localhost:8080/DWRDemo/

點擊show,以下顯示出當前時間;

樣例:在頁面輸出client輸入的信息?

在DwrService加入方法:


public DwrBean getDwrBean(String message) {
DwrBean db = new DwrBean();
db.setMessage(message);
return db;
}

將public DwrBean getDwrBean()凝視;
在Index.jsp加入
http://localhost:8080/DWRDemo/dwr/test/DwrService前面script
<script type='text/javascript' src='/DWRDemo/dwr/interface/DwrService.js'></script>
?在js和body里面增加: function getMessage(){var msg=document.getElementById("myMsg").value; DwrService.getDwrBean(msg,showMsg);}function showMsg(bean){document.getElementById("message").innerHTML = bean.message;}<body><input id="myMsg"><input id="" type="button" οnclick="getMessage()" value=" showMsg" /><dir id="message"></dir></body> ?重新啟動tomcat,訪問主頁,輸入文字,點擊showMsg使用的是ajax技術;
我們能夠在DwrService里面的方法getDwrBean加入:
System.out.println(message);
重新啟動執行的時候,能夠看到控制臺輸出 我們輸入的信息,意味著我們能夠訪問數據庫等操作;
使用DWR框架能夠異步訪問服務端對象

腳本文件說明:

engine.js

1.engine.js對DWR很重要,它是DWRclient的核心,用來把動態生成的JavaScript對象轉換為server上的Java對象

該函數庫可用于設置一些DWR的全局屬性

???? dwr.engine.setTimeout(time),以毫秒為單位設置請求超時的時間

????? dwr.engine.setHttpMethod(method),該方法僅僅能設置兩個值POST和GET

????? dwr.engine.setOrdered(boolean),Ajax通常都是異步調用,但server響應的順序與調用順序往往不同,使用dwr.engine.setOrfered(true)語句,DWR將保證請求的順序與server響應的順序一致

2.util.js

1.????????util.js文件里包括了一些工具函數,通過這些函數的幫助,將簡化JavaScript操作

2.????????util.js提供一些主要的頁面操作函數,通過這些函數能夠方便的操作HTML元素

3.????????util.js文件與DWR框架關系不是特別大,能夠在不論什么不同的網頁中使用(即便該project沒有DWR支持)

補充說明:

?$( )函數

$( )函數依據指定ID查找頁面中的HTML元素

簡單的講以下兩個一樣的意思:

$(ID)= document.getElementById(ID)

使用 $() 使代碼更簡潔、更清晰

在index.jsp導入:

?????? <script type='text/javascript' src='/DWRDemo/dwr/util.js'></script>

在js里面加入:

//$( )函數

? ??? function test(){

? ??????? var msg=$('message').innerHTML;

? ??????? alert(msg);

? ??? }

body加入;

?<input?id="test1"type="button"onclick="test()"value="使用$( )函數"/>

刷新頁面,要先在myMsg框輸入信息,在點擊showMsg,id為message才有內容,才干夠做上面的實驗,然后點擊使用$( )函數

?

getValue() 和setValue()函數?

getValue()函數和setValue()函數用于簡化訪問和改動HTML元素的值

dwr.util.getValue(id):返回HTML元素的值

dwr.util.setVlaue(id,value [,options]):依據第一個參數中指定的id找到對應元素,并依據第二個參數value改變該元素的值

在index.jsp導入:

?????? <scripttype='text/javascript' src='/DWRDemo/dwr/util.js'></script>

在js加入:

????? //getValue() setValue()函數

????? function set(){

???????? var value=dwr.util.getValue('set');

???????? dwr.util.setValue('myMsg',value);

????? }

?在body加入:

<input?id="set"type="button"onclick="set()"value="getValue()得到的值"/>

刷新頁面,點擊getValue()得到的值后將信息顯示到id為myMsg的輸入框上;

?

列表操作函數

dwr.util.removeAllOption(id):用于刪除列表中的全部項

dwr.util.addOptions():用于加入列表項

?

?

?

表格操作函數

DWR提供兩個函數幫助我們操作表格

dwr.util.removeAllRows(id):刪除table中全部行

dwr.util.addRows(id,array,cellFuncs,[options]):向表中加入數據行

?

源代碼和所用到的jar包下載:

http://pan.baidu.com/s/1i3p9pYX

轉載于:https://www.cnblogs.com/mfrbuaa/p/3839715.html

總結

以上是生活随笔為你收集整理的Ajax框架,DWR介绍,应用,样例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。