在spring mvc專案中實現登入賬號單點登入

2021-08-09 01:46:24 字數 1852 閱讀 3548

在很多web產品中都需要實現在同一時刻,只能允許乙個賬號同時只能在乙個瀏覽器當中登入。通俗點講就是當a賬號在瀏覽器1當中登入了,此時在瀏覽器2中登入a賬號。那麼在瀏覽器1中的a賬號將會被擠出去,當使用者操作瀏覽器1的頁面,頁面會跳到登入頁面,需要重新登入。那麼我們怎麼實現這樣的功能呢?下面將給大家進行詳細的介紹:

原理

使用者a使用賬號a在瀏覽器當中登入,然後使用者b在另外一台電腦上的瀏覽器登入賬號a,當使用者b登入驗證成功時,將會觸

發登入監聽類,在監聽類當中判斷出賬號a已經被使用者a登入,就把使用者a的賬號a 踢出去,此時當使用者a操作頁面,頁面就會跳轉到

登入頁面。

**實現

在實現過程中,用到loginlistenner監聽類、login登入方法以及在web.xml中配置監聽類

loginlistenner

當登入成功後,向session中放入登入成功的賬號物件loginuser,觸發loginlistenner中的attributeadded事件,在這個事件中,我們判斷存放賬號和session對應關係的map中是否有當前登入的賬號的session,如果有我們就把該session從map中移除,同時登出該session,然後把剛登入的賬號和session放入map。下面是**:

* 當向session中移除資料觸發

登入方法

對賬號、密碼、驗證碼進行判斷和驗證,驗證通過後把對應的使用者物件放入到session中,**略

web.xml配置

把loginlistenner監聽類,配置到web.xml檔案中,這樣對session的監聽才生效。配置如下:

com.test.listenner.loginlistenner

在專案中使用springmvc

springmvc是spring框架的乙個模組,springmvc和spring無需通過中間整個層進行整合,它是乙個基於mvc的web框架。springmvc是基於方法開發的,struts2是基於類開發的。springmvc將url和controller方法對映,對映成功後springmvc生成乙個...

springmvc專案中實現靜態檔案對映任意位置

專案發布後一般都是儲存在檔案伺服器中的。或者再做開發的時候我們是將上傳的儲存在電腦中某個資料夾,專案啟動後直接訪問的話只能使用file 這種方式訪問,當然不靠譜。所以我們使用到了springmvc中的mvc resource標籤 首先需要修改一下web.xml檔案。保證dispatcherservl...

在Seam專案中快速實現Web Service

以前寫web service一直是用axis來做,用了seam來開發web後,這次為了專案的簡潔,決定採用 在seam專案中寫jbossws 的方案來實現webservice。寫基於pojo的web service實現 webservice public class testservice 如果在w...