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

2023-07-06   


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
  
  
  
  
  
  
  

  登陆成功,欢迎访问


  
   <% session = request.getSession(false); %>
   <%
   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((String)e.nextElement()+”
  ”);
   out.println(“”);
  
   out.println(“”);
  
   %>
  
  
   [关闭窗口]
   <%
   out.println(“

  退出系统

”);
   %>
  
  
  


相关内容:

  1. ASP.NET如何防止SQL注入
  2. 怎样防止大学生求职被骗
  3. 创业期间该如何防止关键资源流失
  4. 如何打通职场人脉
  5. 科目二如何避免中途停车
  6. 就业介绍信