摘要:AJAX豐富了WEB系統(tǒng)的表示層,改善了基于Web應(yīng)用的交互方式和用戶體驗(yàn),使得異步的概念貫入了Web應(yīng)用之中。DWR是位于服務(wù)器端的AJAX框架,它可以簡化WEB的服務(wù)端和瀏覽器端的開發(fā)。使用DWR框架可以使開發(fā)人員專注于業(yè)務(wù)邏輯設(shè)計(jì),為圖書館資源和服務(wù)的整合提供技術(shù)的保證。系統(tǒng)使用DWR框架展現(xiàn)圖書館的資源與服務(wù),具有廣泛的實(shí)用性和可操作性。
關(guān)鍵詞: AJAX; DWR;Library2.0
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)04-0790-03
In the Application of AJAX Library2.0
XIA Wen-zhong,XIA Yu-hong
(Zhaotong University,Zhaotong 657000, China)
Abstract:Ajax enriches the WEB presentation layer of the system, improve the interaction based on WEB applications and user experience, making the concept of asynchronous penetration the WEB application. DWR is located on the server AJAX framework, it can simplify the WEB server and browser of the development. Use DWR framework can make developers focus on business logic design, for the integration of library resources and services to provide technical guarantee. Systems use DWR frame shows the library resources and services, which has broad practicability and maneuverability.
Key words: AJAX; DWR;Library2.0
Library2.0是WEB2.0在圖書館的應(yīng)用與拓展。隨著WEB2.0技術(shù)的深入,各行業(yè)也加大力度投入到WEB2.0的應(yīng)用研究中來,許多技術(shù)實(shí)力強(qiáng),資金雄厚的高校圖書館也積極投入大量人力物力,努力探索以讀者為中心的圖書館數(shù)字化服務(wù)模式,讀者即可以利用圖書館提供的BBS、博客、微博和系統(tǒng)API等信息互動(dòng)服務(wù),也可以主動(dòng)通過圖書館門戶網(wǎng)站讓讀者主動(dòng)參與到圖書館的管理與建設(shè)中來,為圖書館的建設(shè)與發(fā)展獻(xiàn)計(jì)獻(xiàn)策,諸如編寫和添加 OPAC 書目、撰寫書評(píng)和推薦館藏等[1]。使用WEB2.0為主要技術(shù)的Library2.0使圖書館的資源與服務(wù)有機(jī)融合,讓讀者參與圖書館的建設(shè)管理,讓圖書館的管理去除時(shí)間與空間的限制,使圖書館的服務(wù)改善、提高。
1 AJAX及DWR框架簡介
圖書館要提供資源和服務(wù)的整合,讀者參與,必須要提供相應(yīng)的技術(shù)實(shí)現(xiàn)。WEB2.0的核心技術(shù)AJAX就能用較少的資源成本滿足最大的用戶需求,而DWR是封裝了AJAX核心技術(shù)的成熟開源框架,DWR 允許將定義在服務(wù)器端的對(duì)象上的方法直接暴露給 AJAX 請(qǐng)求, 從而可以直接調(diào)用服務(wù)器上的遵循了 AJAX 原則的 Servlet 并獲取處理結(jié)果[2]。
AJAX是多項(xiàng)技術(shù)的組合,在協(xié)作中發(fā)揮各自的作用,它們包括HTML5、CSS3、DOM[3]、XML、JavaScript及XMLHttpRequest等技術(shù)。HTML5與CSS3負(fù)責(zé)網(wǎng)頁的顯示,是讀者直接面對(duì)使用的界面、技術(shù);DOM是文檔對(duì)象模型,是表示文檔和訪問,操作構(gòu)成文檔和各種元素的應(yīng)用程序接口;XML是可擴(kuò)展標(biāo)記語言,用于標(biāo)記數(shù)據(jù)、描述數(shù)據(jù),協(xié)調(diào)各模塊間的數(shù)據(jù)交換;XMLHttpRequest作異步數(shù)據(jù)讀取和交換;最后用JavaScript綁定和處理各個(gè)數(shù)據(jù)。在這一系列的技術(shù)中,XMLHttpRequest和JavaScript對(duì)象是AJAX技術(shù)的核心。
AJAX框架技術(shù)[4]讓多種復(fù)雜的技術(shù)融合,提高了系統(tǒng)的開發(fā)效率,降低了系統(tǒng)開發(fā)的難度。常見的AJAX框架有客戶端實(shí)現(xiàn)和服務(wù)器端實(shí)現(xiàn)??蛻舳藢?shí)現(xiàn)框架有Jquery,服務(wù)器端實(shí)現(xiàn)有DOJO和DWR等框架技術(shù);DWR是位于服務(wù)器端AJAX框架[5] ,它是JavaScript和WEB服務(wù)器之間溝通的橋梁,它可以降低開發(fā)人員的開發(fā)難度,讓開發(fā)人員輕松實(shí)現(xiàn)AJAX功,把客戶端的讀者請(qǐng)求與服務(wù)器端的數(shù)據(jù)調(diào)用聯(lián)系起來為讀者提供良構(gòu)的頁面訪問服務(wù)與功能。DWR在系統(tǒng)開發(fā)中承擔(dān)兩個(gè)主要任務(wù):第一,允許客戶端使用JavaScript從WEB容器中符合AJAX規(guī)范的Servlet里存取數(shù)據(jù);第二,JavaScript庫可以幫助網(wǎng)站開發(fā)人員輕松地利用獲取的數(shù)據(jù)來動(dòng)態(tài)改變網(wǎng)頁的內(nèi)容或呈現(xiàn)效果。DWR在系統(tǒng)的應(yīng)用原理如圖1所示:
2 Library2.0下的圖書館服務(wù)
Library2.0是WEB2.0在圖書館的應(yīng)用與實(shí)踐,WEB2.0技術(shù)以強(qiáng)調(diào)用戶體驗(yàn)和社會(huì)性為特色,其應(yīng)用是Web2.0核心概念的社會(huì)生物進(jìn)化[6] ,圖書館以網(wǎng)絡(luò)為平臺(tái),以服務(wù)為宗旨,引導(dǎo)用戶積極參與互動(dòng)。Library2.0使用先進(jìn)的網(wǎng)絡(luò)技術(shù)和服務(wù)理念為圖書館讀者提供個(gè)性化定制的信息服務(wù)。讓讀者在享受服務(wù)的同時(shí),主動(dòng)參與到圖書館的建設(shè)中來,為圖書館的建設(shè)獻(xiàn)計(jì)獻(xiàn)策,初步實(shí)現(xiàn)圖書館的泛在[7]化。計(jì)算機(jī)技術(shù)與通信技術(shù)的發(fā)展進(jìn)步極大的開拓了原有的圖書館服務(wù)模式,圖書館2.0實(shí)現(xiàn)了讀者按需定制和讀者個(gè)性化的信息服務(wù)。
常見的WEB2.0服務(wù)有微博客,RSS,WIKI,用戶定制信息推送等服務(wù)。圖書館2.0是WEB2.0概念的延伸與拓展,是在具體環(huán)境中的WEB2.0應(yīng)用。目前在國內(nèi)少數(shù)技術(shù)實(shí)力較強(qiáng)的高校圖書館已有部分應(yīng)用。在這樣的大環(huán)境下,昭通學(xué)院圖書館通過自己的努力,嘗試使用JAVAEE技術(shù),開發(fā)適合于本校本館實(shí)際的Library2.0應(yīng)用。
本館目前使用C/S結(jié)構(gòu)的圖書館管理系統(tǒng),在現(xiàn)有的系統(tǒng)基地上使用JAVAEE框架,整合圖書館現(xiàn)有資源,擬為讀者提供讀者具有統(tǒng)一身份認(rèn)證、個(gè)性化訂制的信息推送服務(wù),讓讀者用戶可以根據(jù)自己的要求,使用較少的精力即可查找出自己需要的資料。
在讀者可見頁面顯示層,使用成熟的DWR框架為用戶提供無頁面刷新的信息顯示、在讀者訪問的搜索頁面使用目前主流的搜索建議功能,為讀者提供圖書館書評(píng)服務(wù),讓讀者主動(dòng)參與到圖書館的建設(shè)中來,為圖書館資源的合理化,資源服務(wù)的高效率出謀劃策,以讀者為中心,以服務(wù)為中心,改善圖書館的現(xiàn)有服務(wù)。
3 AJAX及DWR框架在圖書館門戶中的應(yīng)用
3.1 系統(tǒng)設(shè)計(jì)
Library2.0系統(tǒng)是WEB2.0在圖書館的具體應(yīng)用與延伸,使用AJAX技術(shù)的Library2.0系統(tǒng)要求圖書館門戶網(wǎng)站具有用戶登錄、搜索建議、無限級(jí)書目菜單和關(guān)聯(lián)信息推送等功能。
用戶登錄在WEB1.0的站點(diǎn)中已經(jīng)廣泛使用,用戶登錄進(jìn)相應(yīng)的站點(diǎn)后可以使用相應(yīng)的功能及發(fā)布指定的信息,用戶登錄信息和頁面跳轉(zhuǎn)都是把所有信息發(fā)送到服務(wù)器進(jìn)行驗(yàn)證,然后根據(jù)用戶信息的正確與否再傳回給瀏覽器做出相應(yīng)的顯示,而基于AJAX技術(shù)的用戶登錄,雖然也和服務(wù)器進(jìn)行交互,但只需處理極少的數(shù)據(jù)資源即可完成。搜索建議功能為讀者提供當(dāng)前熱點(diǎn)的、用戶關(guān)注度高的相關(guān)信息,是一種積極的主流的信息推送服務(wù)。無限級(jí)書目菜單對(duì)圖書館門戶站點(diǎn)是必不可少的,通常國內(nèi)高校圖書館都采用中圖法作為圖書的分類依據(jù),因此,為了提高讀者使用圖書資源的效率,部分讀者習(xí)慣使用中圖法來查找所需資源,AJAX可以很好的解決服務(wù)器資源占用和讀者訪問的問題。AJAX只加載讀者需要的數(shù)據(jù),無關(guān)數(shù)據(jù)不用全部加載,這樣就可以減輕圖書館資源服務(wù)器的壓力,剩下更多寶貴的服務(wù)器給更多讀者提供服務(wù)。關(guān)聯(lián)信息推送是讀者使用自己的賬戶登錄圖書館門戶系統(tǒng)后,系統(tǒng)根據(jù)讀者定制的關(guān)注信息,把其它讀者或圖書館管理員推薦的信息資源推送到讀者訪問頁面的一種信息推送,它在讀者訪問頁面自動(dòng)通過AJAX技術(shù)從服務(wù)器獲得信息并顯示在讀者訪問的頁面上,并不會(huì)影響讀者訪問當(dāng)前頁面信息,只是作為一種讀者擴(kuò)展閱讀的方式呈現(xiàn)給用戶。
3.2 系統(tǒng)實(shí)現(xiàn)
DWR實(shí)際上就是一個(gè)Servlet封裝了客戶端JavaScript請(qǐng)求,服務(wù)器端能調(diào)用Java組件進(jìn)行業(yè)務(wù)處理與數(shù)據(jù)交換,并根據(jù)處理和交換的結(jié)果控制網(wǎng)頁的表現(xiàn)。在技術(shù)實(shí)現(xiàn)上,DWR是基于Java語言[8],自動(dòng)生成 Javascript 代碼發(fā)送到客戶端,而這些Javascript 代碼則符合 AJAX 技術(shù),接受用戶請(qǐng)求,與服務(wù)器進(jìn)行交互。
Library2.0中基于AJAX應(yīng)用有多種,下面通過搜索建議功能的實(shí)現(xiàn)來說明DWR框架在Library2.0中的應(yīng)用。這個(gè)例子的功能是當(dāng)讀者在頁面搜索框中輸入部分文字后,系統(tǒng)自動(dòng)獲得輸入焦點(diǎn),在讀者沒有點(diǎn)擊提交時(shí)根據(jù)用戶輸入的內(nèi)容查詢相應(yīng)的數(shù)據(jù)庫記錄,并把結(jié)果按搜索頻度顯示在搜索框下面供讀者參考。
在J2EE應(yīng)用系統(tǒng)中使用DWR框架需要做相應(yīng)的配置。下面就核心代碼作相應(yīng)的說明:
首先,在應(yīng)用目錄下的lib子目錄下找到web.xml,增加一下Servlet的聲明,作如下修改:
/*Servlet類名*/
/*應(yīng)用調(diào)用Servlet的名稱*/
/*處理所有/dwr/開頭的URL請(qǐng)求*/
其次,創(chuàng)建一個(gè)Java類來處理需要查詢的搜索數(shù)據(jù)庫的信息,這些數(shù)據(jù)庫信息對(duì)應(yīng)于數(shù)據(jù)庫中的查詢搜索信息表。具體的類實(shí)例如下面的Ssuggest類:
package org.xwz.tools
public class Ssuggest{
public Ssuggest{
public String void init() {
try { //連接數(shù)據(jù)庫
conn = DBConnection.getConnection();
Debug.println(conn.toString());
} catch (Exception e) { Debug.println("沒有獲得連接!");
e.printStackTrace(); }
}public String Checking(String str){
init();
/*此處操縱數(shù)據(jù)庫代碼并得到數(shù)據(jù)庫查詢后的結(jié)果*/
return str;}}}
Ssuggest類是符合AJAX規(guī)范的JAVA類,它是AJAX和J2EE系統(tǒng)的紐帶,負(fù)責(zé)聯(lián)系客戶端和服務(wù)器數(shù)據(jù)的使用與處理。
第三,創(chuàng)建dwr.xml文件將Java查詢類與頁面腳本對(duì)象進(jìn)行關(guān)聯(lián),dwr.xml文件與web.xml文件均放于系統(tǒng)的lib目錄下:
<?xml version="1.0" encoding="UTF-8"?>
第四,在表示層使用JavaScript語言編寫名為Ssuggest.js的客戶端調(diào)用代碼。
function calldisplay(){
var str = $('userinput').value;
//$ ('userinput') 代表 DOM對(duì)象, .value是獲得值
Ssuggest.Checking(str,callback);
}
最后,在JSP頁面中調(diào)用Ssuggest.js文件中描述的方法,把dwr.jar包年拷貝到Web 應(yīng)用的 WEB-INF/lib 目錄中,完成部署,系統(tǒng)即可正常使用。系統(tǒng)運(yùn)行效果如圖2所示:
4 結(jié)束語
AJAX是WEB2.0的核心技術(shù)之一,DWR框架使得AJAX的開發(fā)應(yīng)用簡單易用。Library2.0系統(tǒng)使用成熟的DWR框架,實(shí)現(xiàn)了系統(tǒng)的AJAX應(yīng)用,為讀者提供了優(yōu)質(zhì)的信息資源服務(wù),提升了圖書館的服務(wù)水平,拓寬了圖書館為讀者服務(wù)的平臺(tái),具有廣泛的實(shí)用性和可操作性。
參考文獻(xiàn):
[1] 俞小怡. Library2.0 網(wǎng)站建設(shè)中的安全技術(shù)問題[J].圖書館學(xué)刊, 2012 (9):111-113.
[2] 李健.基于 DWR 的AJAX技術(shù)研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2007 (7):132-133.
[3] 張銘澤.JavaScript權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 余翔宇.AJAX技術(shù)及其框架實(shí)現(xiàn)[J].軟件導(dǎo)刊,2006(9):28-30.
[5] 張栗.基于DWR框架的WEB應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(8):84-87.
[6] 劉煒.從Web 2.0到圖書館2.0:服務(wù)因用戶而變[J].現(xiàn)代計(jì)算機(jī),2006(9):8-12.
[7] 初景利.論圖書館服務(wù)的泛在化[J].圖書館建設(shè),2008(4):62-65.
[8] 李健.基于 DWR 的AJAX技術(shù)研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2007(7):132-133.