欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析三之后端反向調(diào)用前端

 更新時間:2016年04月28日 10:08:31   投稿:wulei  
Dwr是為人所熟知的前端框架,其異步推送功能是為人所津津樂道的,下來主要研究一下它的這個功能是怎么應(yīng)用的;

在前兩篇中我們已經(jīng)介紹了Dwr零配置文化化和前端調(diào)用后端的方法,想必大家應(yīng)該已經(jīng)會熟練掌握了,下來我們主要探討一下后端怎么反向調(diào)用前端的js方法;

就如前兩篇說到了用Dwr注冊了兩個Service組件,一個是remote,另外一個是頁面使用到的controller,這個remote是在頁面一加載進來就會被調(diào)用的,這樣就使得會話和頁面ScriptSession建立了綁定的關(guān)系,方便我們后面使用它的scriptSessionId進行頁面定向推送;

下面是建立會話和頁面ScriptSession的方法(頁面剛加載進來的時候就會被調(diào)用的):  

ScriptSession scriptSession = WebContextFactory.get().getScriptSession(); 
String jsessionId = scriptSession.getHttpSessionId(); 
String dwrSessionId = scriptSession.getId(); 
LOGGER.info(String.format("set jsessionId = [%s],dwrsession = [%s] push enabled",jsessionId,dwrSessionId)); 
ConstantCacheService.putCacheConstant(Constants.PUSH_ID+jsessionId, dwrSessionId);
下面是用來反向調(diào)用前端的Service方法:
@Service("dwrReverseAjaxService")
public class DwrReverseAjaxService {
private static final Logger LOGGER = LoggerFactory.getLogger(DwrReverseAjaxService.class);
public void directWebRemotingWithSession(HttpSession session, final String functionName) 
{Assert.notNull(session, "[Dwr Reverse Ajax] Session can not be null!");
final String scriptSessionId = ConstantCacheService.getCacheConstantValue(Constants.PUSH_ID + session.getId());
LOGGER.info("[DWR Session ID] = " + scriptSessionId + " [Script Function Name] = " + functionName);Browser.withSession(scriptSessionId, new Runnable() {
public void run() {ScriptSessions.addFunctionCall(functionName, "");
}});}}

這個Service是利用了scriptSessionId來進行反向定位推送的,而這個scriptSessionId是利用我們之前頁面剛加載進來就建立好保存到的一個全局的Map對里面;

下來只要在你想要什么時候調(diào)用的時候使用注冊的這個Service bean就可以了,傳進去的參數(shù)為HttpSession和你想調(diào)用的前端Js funciton name,同時注意一下當前頁面存在這個Js function,而且一般是主頁面的Js里面的方法才能被訪問到,否則前端會提示該方法未定義的錯誤;

以上就是關(guān)于Dwr的簡單應(yīng)用,純屬第一次用,有什么不對的地方,請大家指正出來,感激不盡?。〈笊裾堬h過~~~~~;

相關(guān)文章

  • 在service層注入mapper時報空指針的解決

    在service層注入mapper時報空指針的解決

    這篇文章主要介紹了在service層注入mapper時報空指針的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java Hutool工具實現(xiàn)驗證碼生成及Excel文件的導入和導出

    Java Hutool工具實現(xiàn)驗證碼生成及Excel文件的導入和導出

    Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學習成本,提高工作效率,本文主要介紹了使用Hutool工具實現(xiàn)驗證碼生成和excel文件的導入、導出,需要的朋友可參考一下
    2021-11-11
  • ThreadLocal簡介_動力節(jié)點Java學院整理

    ThreadLocal簡介_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了ThreadLocal簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Java設(shè)計模式之單態(tài)模式(Singleton模式)介紹

    Java設(shè)計模式之單態(tài)模式(Singleton模式)介紹

    這篇文章主要介紹了Java設(shè)計模式之單態(tài)模式(Singleton模式)介紹,本文講解了如何使用單例模式、使用單例模式注意事項等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Java設(shè)計模式中的簡單工廠模式解析

    Java設(shè)計模式中的簡單工廠模式解析

    這篇文章主要介紹了Java設(shè)計模式中的簡單工廠模式解析,簡單工廠模式提供一個創(chuàng)建對象實例的功能,而無須關(guān)心其具體實現(xiàn),被創(chuàng)建實例的類型可以是接口、抽象類,也可以是具體的類,需要的朋友可以參考下
    2023-11-11
  • Java如何判斷一個空對象的常見方法

    Java如何判斷一個空對象的常見方法

    在Java中判斷對象是否為空是一項重要的編程技巧,可以有效防止空指針異常的發(fā)生,下面這篇文章主要給大家介紹了關(guān)于利用Java如何判斷一個空對象的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 基于BIO的Java Socket通信詳解

    基于BIO的Java Socket通信詳解

    這篇文章主要為大家詳細介紹了基于BIO的Java Socket通信相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作

    Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作

    這篇文章主要介紹了Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 關(guān)于Java中byte[]?和?String互相轉(zhuǎn)換問題

    關(guān)于Java中byte[]?和?String互相轉(zhuǎn)換問題

    這篇文章主要介紹了Java中byte[]?和?String互相轉(zhuǎn)換問題,通過用例給大家介紹了通過String類將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String,具體實例代碼跟隨小編一起看看吧
    2022-01-01
  • 淺談解決Hibernate懶加載的4種方式

    淺談解決Hibernate懶加載的4種方式

    這篇文章主要介紹了淺談解決Hibernate懶加載的4種方式,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論