如何防止同一个帐户被多人同时登录


Posted in 面试题 onAugust 01, 2013
1.用session超时,session为null就表示下线了
2.也可以采用数据库中设置 临时表 来处理
一个用户登陆时向表中插进一条记录,用户离开时候删除该记录
如想统计在线人数,简单地执行
select count(*) from table… 即可
3.application对象中可以记住现在的人数,application的生命周期和服务器的生命周期一样长。
4.还有一种方法要用到一个文件global.jsa ,方法是(在JSP中)是sessionDestroy(),其中它是以session对象为参数的。还有要把global.jsa文件必须房子和JSP程序相同的文件目录内才行。

5.网页自动刷新的代码是:
在文件头部加上

刷新间隔时间是15秒

6.在session中加入监听类,类的示例代码如下:

onLineUser.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;

public class onLineUser implements HttpSessionBindingListener {
public onLineUser(){
}
private Vector users=new Vector();
public int getCount(){
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName){
users.trimToSize();
boolean existUser=false;
for (int i=0;i {
if (userName.equals((String)users.get(i)))
{
existUser=true;
break;
}
}
return existUser;
}

public boolean deleteUser(String userName) {
users.trimToSize();
if(existUser(userName)){
int currUserIndex=-1;
for(int i=0;i if(userName.equals((String)users.get(i))){
currUserIndex=i;
break;
}
}
if (currUserIndex!=-1){
users.remove(currUserIndex);
users.trimToSize();
return true;
}
}
return false;
}

public Vector getOnLineUser()
{
return users;
}
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
if(!existUser(e.getName())){
users.add(e.getName());
System.out.print(e.getName()+”\t 登入到系统\t”+(new Date()));
System.out.println(“ 在线用户数为:”+getCount());
}else
System.out.println(e.getName()+”已经存在”);
}

public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
System.out.print(userName+”\t 退出系统\t”+(new Date()));
System.out.println(“ 在线用户数为:”+getCount());
}
}

jsp:








登陆成功,欢迎访问




String username=request.getParameter(“username”);
if (onlineuser.existUser(username)){
out.println(“用户”+username+”已经登陆!”);
}else{
session.setMaxInactiveInterval(50); //Sesion有效时长,以秒为单位
session.setAttribute(username,onlineuser);
out.println(“欢迎新用户:”+username+”登陆到系统!”);
}
out.println(“
当前在线用户人数:”+onlineuser.getCount()+”
”);
String ip = request.getRemoteAddr();
out.println(“
IP:”+ip+”
”);
Vector vt=onlineuser.getOnLineUser();
Enumeration e = vt.elements();
out.println(“在线用户列表”);
out.println(“”);
out.println(“”);
while(e.hasMoreElements()){
out.println(“”);
}
out.println(“
用户名
”);
out.println((String)e.nextElement()+”
”);
out.println(“
”);

%>


[关闭窗口]
out.println(“

退出系统

”);
%>




Tags in this post...

面试题 相关文章推荐
JRE、JDK、JVM之间的关系怎样
May 16 面试题
C语言怎样定义和声明全局变量和函数最好
Nov 26 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
Sep 16 面试题
一套.net面试题及答案
Nov 02 面试题
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
Aug 13 面试题
网络体系结构及协议的定义
Mar 13 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 面试题
介绍一下write命令
Aug 10 面试题
华为python面试题
May 03 面试题
下面代码从性能上考虑,有什么问题
Apr 03 面试题
怎样声明一个匿名的内部类
Jun 01 面试题
送给程序员的20个Java集合面试问题
Aug 06 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
Mar 30 #面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Jan 27 #面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
Aug 18 #面试题
GC是什么?为什么要有GC?
Dec 08 #面试题
Overload和Override的区别
Sep 02 #面试题
什么时候用assert
May 08 #面试题
垃圾回收的优点和原理
May 16 #面试题
You might like
论坛头像随机变换代码
2006/10/09 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python之wxPython应用实例
2014/09/28 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
python3实现磁盘空间监控
2018/06/21 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Python排序函数的使用方法详解
2020/12/11 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
毕业生实习鉴定
2013/12/11 职场文书
企业法人代表任命书
2014/06/06 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
初二学生评语大全
2014/12/26 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书