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


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...

面试题 相关文章推荐
比较基础的php面试题及答案-编程题
Oct 14 面试题
怎样从/向数据文件读/写结构
Nov 23 面试题
三维科技面试题
Jul 27 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
WINDOWS域的具体实现方式是什么
Feb 20 面试题
名词解释型面试题(主要是网络)
Dec 27 面试题
作为网站管理者应当如何防范XSS
Aug 16 面试题
介绍一下gcc特性
Jan 20 面试题
Linux面试经常问的文件系统操作命令
Nov 05 面试题
如何获得EntityManager
Feb 09 面试题
JAVA中运算符的分类及举例
Sep 12 面试题
Delphi笔试题
Nov 14 面试题
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
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
使用python实现个性化词云的方法
2017/06/16 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python中property属性实例解析
2018/02/10 Python
python能否java成为主流语言吗
2020/06/22 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
点菜员岗位职责范本
2014/02/14 职场文书
利群广告词
2014/03/20 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
护士2015年终工作总结
2015/04/29 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android
Hive日期格式转换方法总结
2022/06/25 数据库