jsp項目中實現關閉瀏覽器後吊線,只要不關閉不操作也保持線上

來源:互聯網
上載者:User
js|瀏覽器|項目|線上 最近一個項目中用jsp實現使用者登入,當然是使用session來保持。這個用implements HttpSessionBindingListener介面來實現,這個是我寫的簡要代碼。
public class OnLineUser implements HttpSessionBindingListener {
private NewUser newUser=null;
public OnLineUser() {
newUser=new NewUser();
}


public boolean existUser(String str)
{
return false;
}

public void valueBound(HttpSessionBindingEvent e) {
String tempName=e.getName();
//Integer m=new Integer(tempName);
newUser.setUserName(tempName);
try {
newUser.updateOnline();
}
catch (Exception ex) {
}
System.out.println("使用者"+tempName+"上限");
}

public void valueUnbound(HttpSessionBindingEvent e) {
String tempName=e.getName();
//Integer m=new Integer(tempName);
newUser.setUserName(tempName);
try {
newUser.updateUnline();
}
catch (Exception ex) {
}
System.out.println("使用者"+tempName+"下限");
}
}

在登入處理的servlet中調用
OnLineUser onLineUser=new OnLineUser();
request.getSession(false).setAttribute(login_no,onLineUser);
其中login_no是變數是登入名稱稱。同時要把request.getSession(false)值設為false,他有true和false兩個值,true為如果如果沒有相同的session則建立。如果有則覆蓋,false則沒有則建立有則不建立,我要用這個實現單點登入所以用了false。這樣就可以監聽你建立的session了。如果session逾時,則執行valueUnbound方法。建立session則執行valuebound方法。我在這裡是對人員的一個狀態欄位變更。這樣當這個使用者線上的時候,另一個使用者在另外的機子上線時在登入頁面我就可以進行判斷了。這方面的資料網上有很多,後來遇到問題就是當設定session逾時時間為1分鐘時。使用者不正常退出可以一分鐘後可以正常改變使用者下線狀態,但是使用者如果1分鐘內電腦沒有操作也同時會弔線,我在網上找了很長時間,沒有這方面的資料。後來我用我的一個架構(我的程式用的是架構,我用的是底部架構)
javax.servlet.http.HttpSession session2 = request.getSession(false);
com.chinantn.oa.util.OASession oasession =
(com.chinantn.oa.util.OASession) session2.getAttribute("oasession");
這個是我的登入頁面用的一個處理session的類。然後在這個頁面中加入
<meta http-equiv="refresh" content="30;URL=foot.jsp">.做成自動重新整理。
間隔時間小於session逾時時間。主要目的是如果頁面在逾時時間內沒有訪問的話用這個自動重新整理訪問一下session這樣來解決問題。




相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。