亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区
注冊(cè)
|
提交需求
|
訂閱
|
English
首 頁(yè)
解決方案
產(chǎn) 品
服 務(wù)
支 持
EDN系統(tǒng)
成功案例
關(guān)于我們
聯(lián)系我們
樹(shù)結(jié)構(gòu)圖
EDN系統(tǒng)
圖形圖像
網(wǎng)絡(luò)安全
項(xiàng)目專題
WEB開(kāi)發(fā)
辦公系列
操作系統(tǒng)
數(shù)據(jù)庫(kù)
程序設(shè)計(jì)
TOP 10
在Foxmail中如何使…
Ftp 子命令
BigDecimal
MSN在線客服功能模塊使…
會(huì)員卡使用方法說(shuō)明
DataInputStr…
留言板功能說(shuō)明
CScript
BufferedInpu…
設(shè)置打印機(jī)
您現(xiàn)在的位置:
>
技術(shù)沙龍
>
WEB開(kāi)發(fā)
>
JSP
>
jsp 下實(shí)現(xiàn)防止重復(fù)在線,統(tǒng)計(jì)在線人數(shù)的辦法
相關(guān)軟件
>
jsp 下實(shí)現(xiàn)防止重復(fù)在線,統(tǒng)計(jì)在線人數(shù)的辦法
創(chuàng)建者:
webmaster
更新時(shí)間:
2005-05-30
22:35
防止重復(fù)在線,統(tǒng)計(jì)在線人數(shù)通常由三種辦法:1.通過(guò)數(shù)據(jù)庫(kù)的記錄 2.使用ServletContext類型的application
3.采用session.
第一種做法較簡(jiǎn)單但會(huì)給數(shù)據(jù)庫(kù)造成負(fù)擔(dān).第二種做法還沒(méi)去實(shí)現(xiàn).:)
本文實(shí)現(xiàn)了采用session的做法,基本思想就是正常登陸的時(shí)候建立一個(gè)session記錄登陸名字,此時(shí)激發(fā)監(jiān)聽(tīng)器。
代碼如下:
1。登陸時(shí)假設(shè)登陸名loginINFO[0],建立session記錄登陸名字。
if(rs_login.next()){
Login_servlet.logger.info("登陸驗(yàn)證成功");//log4j
OnLineUser OLU=new OnLineUser();//
if (!OLU.existUser(loginINFO[0])){
Login_servlet.logger.info("重復(fù)登陸");
return;
}else{
session.setMaxInactiveInterval(3000); //session的生命周期
session.setAttribute(loginINFO[0],OLU);
}
2.監(jiān)聽(tīng)器代碼:OnLineUser
/*
* 創(chuàng)建日期 2005-5-12
*
* 目的:
*
*/
package cn.wst.common.onLine;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import org.apache.log4j.Logger;
import java.util.*;
/**
* @author wangshangting
*
* 目的:
* 用于統(tǒng)計(jì)在線人數(shù),防止統(tǒng)一帳號(hào)登陸,退出取消賬號(hào)
*/
public class OnLineUser implements HttpSessionBindingListener{
// private static OnLineUser instance = null;
// synchronized public static OnLineUser getInstance()//singleton模式,確保只有一個(gè)OnLineUser實(shí)例
// {
// if( instance == null )
// {
// instance = new OnLineUser();
// }
// return instance;
// }
static Logger logger = Logger.getLogger(OnLineUser.class.getName());
public OnLineUser(){
}
private static Vector users=new Vector(); //靜態(tài)變量!!!!!!!!!!!!
private int i=1;
public int getCount(){
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName){
users.trimToSize();
boolean existUser=true;
for (int i=0;i
{
if (userName.equals((String)users.get(i)))
{
existUser=false;
OnLineUser.logger.info(users.get(i));
OnLineUser.logger.info("重復(fù)");
break;
}
}
return existUser;
}
public boolean deleteUser(String userName) {
OnLineUser.logger.info("移除開(kāi)始!!");
users.trimToSize();
if(!existUser(userName)){
int currUserIndex=-1;
for(int i=0;i
if(userName.equals((String)users.get(i))){
// OnLineUser.logger.info("找到");
currUserIndex=i;
break;
}
}
if (currUserIndex!=-1){
OnLineUser.logger.info("移除:"+currUserIndex);
users.remove(currUserIndex);
users.trimToSize();
return true;
}
}
return false;
}
public Vector getOnLineUser()
{
return users;
}
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
users.add(e.getName());
OnLineUser.logger.info(e.getName()+"\t 登入到系統(tǒng)\t"+(new Date()));
OnLineUser.logger.info("第"+i+"進(jìn)入");
i++;
for(int i = 0;i < users.size();i++){
OnLineUser.logger.info(""+i+":"+users.get(i));
}
System.out.println(" 在線用戶數(shù)為:"+getCount());
}
/**
*
*/
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
OnLineUser.logger.info(userName+"\t 退出系統(tǒng)\t"+(new Date()));
OnLineUser.logger.info(" 在線用戶數(shù)為:"+getCount());
}
}
3. 要記得在web.xml的所有servlet之前生命 OnLineUser,
cn.wst.common.onLine.OnLineUser
相關(guān)文章
前一則:
Java Servlet/Jsp多語(yǔ)言解決方案
后一則:
JAVA編碼問(wèn)題的一些理解
本頁(yè)查看次數(shù):
公司公告
|
客戶調(diào)查
|
法律聲明
|
誠(chéng)聘英才
|
給我們投稿
|
繁
閃
頭像
京ICP備05031245號(hào)
Copyright @ REDCOME.com ALL Rights Reserved
北京怡康軟件科技有限公司 地址:北京市昌平區(qū)東小口立湯路188號(hào)北方明珠大廈1號(hào)樓2708 郵編:102218 電話:84909966 傳真:84909900 QQ:335601661