基於struts實現websocket的實現方案

2021-09-26 16:03:03 字數 1275 閱讀 7321

鄙人有個需求,基於websocket實現瀏覽器與伺服器的通訊。  由於之前沒有使用過websocket,在網上大致搜尋了一圈,尋找websocket的整合方案。   

由於事物繁忙,不能再像以前那樣每個步驟精細化截圖,因此憑著記憶記錄一下:

1.基於spring的方式實現,加入spring-websocket依賴,加註解,配置相應的***和路徑;

2.基於springboot的方式,本質上還是基於spring;

3.基於j2ee應用伺服器,好像從tomcat7開始有提供websocket支援,直接用@websocketend 可實現,該註解由servlet包提供;

它們有乙個特點,那就是基於servlet實現的(第3種方式尚未求證). 

)  參考這裡

最後,採用的spring+註解的方式實現websocket方案。 

又由於其他的原因,導致勢必要將 基於 spirngmvc,也就是servelt的方案轉到 struts,也就是filer去。   因此,經過一番思索加上實踐,終於找到了相應的解決方案這裡記錄一下,以期能夠幫助同僚們解決相應的需求:

首先使用堆疊追蹤,找到websocket這個servlet執行流程:

堆疊如下:  

然後,結合springmvc的執行流程進行分析:

經過分析,我們可以將整個模型邏輯從servelt 搬遷到 相應的filter上,但是面對諸多的配置,如何平滑的遷移是個問題,我是這樣處理的,在mvc這邊執行時打上斷點,檢視相應記憶體中的變數型別,然後手動構造:

原來的**長這樣:

經實踐,那些眾多的配置以及 @configuration 用於與springmvc的相應配置,以及這裡本地引數的初始化。 因此我完全可以手造乙個。  我造的**如下:

其它的邏輯就直接基於struts即可。

經我實踐,是可行的,且用起來很順手,暫未發現其餘問題。 

基於Struts的許可權實現

2 許可權的判斷 這一部分有很多中實現方式,一種所有的action繼承baseaction 在baseaction裡面實現,並在沒乙個action裡面去呼叫判斷.另外一種交給struts去判斷 org.apache.struts.action.requestprocessor 裡面有乙個proces...

基於Struts的許可權實現

一 概念介紹 1 資源 可以使用的系統資源.比如註冊使用者是一種資源,修改使用者資訊也是一種資源.資源在系統中呈現為一棵樹.假如使用者管理是乙個節點.使用者註冊,使用者資訊 修改為使用者管理的葉子。葉子具有不可分割性.2 角色 繫結可操作資源的集合。比如系統管理員,可以使用全部資源.一般使用者,可以...

基於Struts的許可權實現

基於struts的許可權實現 2 許可權的判斷 這一部分有很多中實現方式,一種所有的action繼承baseaction 在baseaction裡面實現,並在沒乙個action裡面去呼叫判斷.另外一種交給struts去判斷 org.apache.struts.action.requestproces...