隨筆 - 20  文章 - 2  trackbacks - 0
          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          引用

          邵波的空間如何防止同一個賬戶被多個人同時登陸?

          1.用session超時,session為null就表示下線了      
               
            2.也可以采用數據庫中設置     臨時表     來處理      
            一個用戶登陸時向表中插進一條記錄,用戶離開時候刪除該記錄      
            如想統計在線人數,簡單地執行      
            select     count(*)     from     table...     即可      
               
            3.application對象中可以記住現在的人數,application的生命周期和服務器的生命周期一樣長。      
               
            4.還有一種方法要用到一個文件global.jsa     ,方法是(在JSP中)是sessionDestroy(),其中它是以session對象為參數的。還有要把global.jsa文件必須房子和JSP程序相同的文件目錄內才行。      
               
            5.網頁自動刷新的代碼是:      
            在文件頭部加上      
            <meta     http-equiv="refresh"     content="15">      
            刷新間隔時間是15秒      
               
               
            6.在session中加入監聽類,類的示例代碼如下:      

          onLineUser.java-------------------------------------------------------------------------------------------

          package com.shaobo.struts.action;

          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 < users.capacity(); 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 < users.capacity(); 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());
           }
          }

          login.jsp--------------------------------------------------------------------------------------------

          <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
          <%
          String path = request.getContextPath();
          String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          %>

          <jsp:useBean id="onlineuser" class="com.shaobo.struts.action.onLineUser"
           scope="application" />
          <html>
           <head>
           </head>
           <body onUnload="postMessage()">
            <center>
             <p>
             <h1>
              登陸成功,歡迎訪問
             </h1>
             </p>
            </center>
            <%
            session = request.getSession(false);
            %>
            <%
             String username = request.getParameter("username");
             if (onlineuser.existUser(username)) {
              out.println("用戶<font color=red>" + username
              + "</font>已經登陸!");
             } else {
              session.setMaxInactiveInterval(50); //Sesion有效時長,以秒為單位      
              session.setAttribute(username, onlineuser);
              out.println("歡迎新用戶:<font color=red>" + username
              + "</font>登陸到系統!");
             }
             out.println("<br>當前在線用戶人數:<font color=red>"
               + onlineuser.getCount() + "</font><br>");
             String ip = request.getRemoteAddr();
             out.println("<br>IP:<font color=red>" + ip + "</font><br>");
             Vector vt = onlineuser.getOnLineUser();
             Enumeration e = vt.elements();
             out.println("在線用戶列表");
             out.println("<table border=1>");
             out.println("<tr><td>用戶名</td></tr>");
             while (e.hasMoreElements()) {
              out.println("<tr><td>");
              out.println((String) e.nextElement() + "<br>");
              out.println("</td></tr>");
             }
             out.println("</table>");
            %>
            <center>
             <p>
             </p>
             [
             <a href="javascript:window.close()">關閉窗口</a>]
             <%
              out.println("<p><a href='index.jsp'>退出系統</a></p>");
             %>
            </center>
            <Script>      
                        function postMessage(){                                                                  
                           <%onlineuser.deleteUser(request.getParameter("username"));%>      
                      }      
            </Script>
           </body>
          </html>

          歡迎光臨邵波的空間` http://blog.sina.com.cn/shaobolive

          QQ:343269876


          文章來源:http://wxq594808632.blog.163.com/blog/static/10907975520092191192874
          posted on 2009-03-19 13:19 武志強 閱讀(804) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 威信县| 汕头市| 吴旗县| 额尔古纳市| 昌宁县| 龙海市| 柳林县| 广德县| 青岛市| 济源市| 江永县| 衡山县| 丹江口市| 历史| 台北县| 雷山县| 延津县| 仙居县| 滦南县| 大关县| 滨州市| 三门峡市| 诏安县| 绿春县| 长海县| 福泉市| 大宁县| 沐川县| 福海县| 分宜县| 美姑县| 合作市| 镇江市| 屯昌县| 青铜峡市| 酉阳| 蒙城县| 诸暨市| 盘锦市| 平乡县| 鹿泉市|