精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在JSP或Servlet中獲取session數量

開發(fā) 后端
用ASP,PHP,JSP等來實現在線人員名單的顯示的實現原理

    很多網友都問如何制作社區(qū)的在線人員顯示問題,這也是個老大難的問題。由于筆者已經學習和實踐了這些方面的編程已經有很長一段時間了。不說是有技術,也算是有些經驗了,在這些問題解決方面我也曾遇到比較多的問題,后來總是解決了。   
    這次和大家講的不關是一個程序的代碼實現,而更重要的就是一個原理和思想問題,因為如何大家都知道這個該如何去做的話,就不存在技術上的難題了,而只是一個語法上的不熟罷了。   
    其實判斷用戶是否登錄很簡單,只要在登錄的程序加上   "把用戶設為在線"   就行了,這可以用SQL的update來做也可以用其他的如對文本文件的追加來做。如何登錄時是設置的可以COOIKE登錄的話,你只要在瀏覽頁面或是發(fā)表貼子等的頁面,進行更新也可以。   
    其實網友認為難的就在于如何知道用戶已經離開社區(qū)了。下面有幾個初學網友會犯的錯誤。   
    錯誤方法一:   當然有的網友會做在社區(qū)里做個   "退出社區(qū)"   可有的用戶比較忙或是手比較快,就會直接的關閉瀏覽器了。那么在程序看來此用戶根本就沒有退出社區(qū)。   
    錯誤方法二:   為了這樣也有的網友以關閉瀏覽器為標準,例如每當用戶直接關閉瀏覽頁面時,用JavaScript執(zhí)行一個unload事件,跳出一個窗口,來執(zhí)行相就在的更新,這也許是解決直接關閉的問題。可是網友沒有考慮到如果因為貼子或文章太長,用戶想斷了線后,再好好的看看,那么他正好是直接斷線后,看完所有貼子或文章再關閉瀏覽器的呢。此時跳出窗口頁面的程序就等于沒有執(zhí)行。   
    錯誤方法三:使用session為例,一般的服務器中都有Session的失效時間,如IIS中為20分鐘,有的網友以Session為標準,來判斷,這顯然也是行不通的,結果會和錯誤方法二一樣。   
    那么如果才是正確的方法呢。到現在為此還沒有一種方便的和精確的方法,除非你用Job事務來做,當那幾乎是不可能的,因為免費的,即使是收費的主頁空間也不會讓你這么做的。所以只能能過普通的命令來實現了。     
  不過它的局限性就在于不能精確,但是我們可以讓他更加的接近于精確。   
  下面我們會以IIS環(huán)境下的SQL   SERVER服務器為例子。其他的如PHP+MYSQL,JSP+MS   SQL   SERVER等舉一反三,幾乎語句都不用怎么變。   
    例子中采用程序片段,例如用戶在表users中,除了基本要有的用戶名字段(name)等,要有online字段,可以用bit類型就可以了。還要有一個登錄時間的字段logintime,和***操作時間的字段logouttime,都為datetime類型。詳細的作用我們會在后面談到。   
    首先在用戶登錄進入時,要生成一個Session("name")字段的值,或是cookies("club")("name")的值,以便于在進行操作時,讓SQL在社區(qū)中任意頁面都知道是哪個用戶的記錄。接著更新用戶的下online字段和logintime字段,語句如下:   
    conn.execute("Update   users   set   online=1,logintime='"&now&"'   where   name='"&session("name")&"'")   
    這條語句的作用在于當用戶登錄時,就把用戶在線設為真,再把當前操作時間設為現在。其次在用戶進行貼子或文章瀏覽時,也要用此語句,因為這樣才可能更加的準確些。   
  在這些語句的后面再加上一句。   
    conn.execute("Update   users   set   online=0   where   diffdate(""n"",logintime,'"&now()&"')>10")     
    這條語句的作用表示把用戶***操作時間和當前時間相比較,如果大于10分鐘的話,就會把這些用戶都設為離線。   
    好了,其實關鍵的也就是這兩條語句而以,是不是很簡單?說了這么多,其實想讓大家了解的就是實現的原理,而不是什么代碼。相信大家現在也可以很簡單的做出關于PHP+MYSQL和JSP+數據庫的在線人員顯示的程序來了。   
    ***可以用"select   name   from   users   where   online=1"來調用在線的用戶了,然后顯示出來當然也沒問題了。呵。。。  


***************************
namespace OnlineCount
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

/// 


///Online 的摘要說明。
/// 

public class Online : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(object sender, System.EventArgs e)
{
if (Application["online"] == null)
{
DataTable dtnew = new DataTable();
dtnew.Columns.Add("userid",typeof(string));
dtnew.Columns.Add("lastaccesstime",typeof(DateTime));
Application["online"] = dtnew;
}

//DataTable dt = (DataTable)Application["online"];
DataTable dt = Application["online"] as DataTable;
DataRow[] rows = dt.Select("userid='"+Session.SessionID+"'");
if (rows.Length == 1)
{
DataRow dr = rows[0];
dr["lastaccesstime"] = DateTime.Now;
}
else
{
DataRow dr = dt.NewRow();
dr["userid"] = Session.SessionID;
dr["lastaccesstime"] = DateTime.Now;
dt.Rows.Add(dr);
}
for(int i = 0 ; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
TimeSpan t = DateTime.Now - Convert.ToDateTime(dr["lastaccesstime"]);
if (t.Seconds > 8)
{
dr.Delete();
}
}
dt.AcceptChanges();

this.Label1.Text = dt.Rows.Count.ToString();

}

#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// 
///設計器支持所需的方法 - 不要使用代碼編輯器
///修改此方法的內容。
/// 

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


*********** OnlineUser.java ************

package org.sunxin.lesson.jsp.ch09.online;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.util.Enumeration;

public class OnlineUser extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException,IOException
    {
        req.setCharacterEncoding("gb2312");
        String name=req.getParameter("user");
        String pwd=req.getParameter("password");
            
        if(null==name || null==pwd || name.equals("") || pwd.equals(""))
        {
            resp.sendRedirect("login.html");
        }
        else
        {
            HttpSession session=req.getSession();
            User user=(User)session.getAttribute("user");
            if(null==user || !name.equals(user.getName()))
            {
                user=new User(name);
                session.setAttribute("user",user);
            }
            
            resp.setContentType("text/html;charset=gb2312");
            PrintWriter out=resp.getWriter();
            
            out.println("歡迎用戶"+name+"登錄");
            UserList ul=UserList.getInstance();
            out.println("
當前在線的用戶列表:
");
            Enumeration enums=ul.getUserList();
            int i=0;
            while(enums.hasMoreElements())
            {
                out.println(enums.nextElement());
                out.println("    ");
                if(++i==10)
                {
                    out.println("
");
                }
            }
            out.println("
當前在線的用戶數:"+i);
            out.println("

退出登錄");
            out.close();
        }
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException,IOException
    {
        doGet(req,resp);
    }
}

*********** LogoutServlet.java ************

package org.sunxin.lesson.jsp.ch09.online;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

public class LogoutServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException,IOException
    {
        resp.setContentType("text/html;charset=gb2312");
        
        HttpSession session=req.getSession();
        User user=(User)session.getAttribute("user");
        session.invalidate();
        
        PrintWriter out=resp.getWriter();
        out.println("");
        out.println(user.getName()+",你已退出登錄
");
        out.println("重新登錄");
        out.println("");
        out.close();
    }
}


*********** User.java ************

package org.sunxin.lesson.jsp.ch09.online;

import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionBindingEvent;

public class User implements HttpSessionBindingListener
{
    private String name;
    private UserList ul=UserList.getInstance();
    
    public User()
    {
    }
    public User(String name)
    {
        this.name=name;
    }
    public void setName(String name)
    {
        this.name=name;
    }
    public String getName()
    {
        return name;
    }
    public void valueBound(HttpSessionBindingEvent event)
    {
        ul.addUser(name);
    }
    public void valueUnbound(HttpSessionBindingEvent event)
    {
        ul.removeUser(name);
    }
}

*********** UserList.java ************
package org.sunxin.lesson.jsp.ch09.online;

import java.util.Vector;
import java.util.Enumeration;

public class UserList
{
    private static final UserList userList=new UserList();
    private Vector v;
    
private UserList()
{
    v=new Vector();
}

public static UserList getInstance()
{
return userList;
}
    
    public void addUser(String name)
    {
        if(name!=null)
            v.addElement(name);
    }
    
    public void removeUser(String name)
    {
        if(name!=null)
            v.remove(name);
    }
    
    public Enumeration getUserList()
    {
        return v.elements();
    }
    
    public int getUserCount()
    {
        return v.size();
    }
}


****************************
Java代碼的思路是將所有登陸用戶放到集合中。
用戶登陸成功就添加到用戶列表,用戶退出就從用戶列表中移出。

lz 注意User類所實現的接口以及其中以下兩個方法:

    //對象被綁定到session中時通知該對象
    public void valueBound(HttpSessionBindingEvent event)
    {
        ul.addUser(name);
    }

    //從session中刪除對象時通知該對象
    public void valueUnbound(HttpSessionBindingEvent event)
    {
        ul.removeUser(name);
    }

【編輯推薦】

  1. 淺析Java Servlet構建系統(tǒng)
  2. HTTP Servlet應用編程接口介紹
  3. 再談如何理解JSP和Servlet的概念
  4. 優(yōu)化Servlet配置為web.xml瘦身
  5. ServletResponse是什么
責任編輯:王觀 來源: 編程愛好者
相關推薦

2009-07-07 12:34:54

Servlet在ses

2009-07-03 10:46:48

JSP ServletJavaBean

2009-06-25 14:26:07

JSPJavaBeanServlet

2009-07-07 11:18:59

JSP Servlet

2009-07-06 15:57:56

獲取數據庫連接JSP

2009-08-10 09:19:28

Servlet JSP

2009-06-29 16:19:57

JSP Servlet

2009-07-08 15:01:00

Servlet Ses

2009-07-06 15:34:56

JSP和Servlet

2009-07-01 17:34:03

Servlet和JSP

2009-07-07 14:04:55

JSP入門

2009-07-09 10:49:56

Servlet和JSP

2009-07-06 15:03:53

JSP向Servlet

2009-07-02 09:56:24

導入事件驅動技術JSP Servlet

2009-07-06 15:41:14

JSP應用

2009-03-02 09:45:45

2009-08-20 17:35:47

Servlet和JSP

2009-07-06 09:49:26

Servlet JSP

2009-08-10 15:20:00

構建JSP Servl

2009-07-08 09:22:03

Servlet和JSP
點贊
收藏

51CTO技術棧公眾號

亚洲v国产v| 69av视频在线播放| 少妇熟女视频一区二区三区| 成人影院在线播放| 盗摄系列偷拍视频精品tp| 中文字幕一区二区三区色视频| 欧美黑人xxxx| 国产精品一级黄片| 免费视频成人| 丰满岳妇乱一区二区三区| 视频一区二区三区在线观看| www.香蕉视频| 日韩国产欧美在线视频| 日韩欧美成人午夜| 成人免费在线小视频| 国产aⅴ爽av久久久久成人| 亚洲久久在线| 中文字幕视频一区二区在线有码| 三上悠亚 电影| 麻豆系列在线观看| 日韩在线a电影| 欧美成在线观看| 国产男男chinese网站| 亚洲图片小说区| 欧美日韩美女视频| 400部精品国偷自产在线观看| 婷婷国产在线| 国产传媒久久文化传媒| 国产精品久久91| 国产精品7777777| 香港欧美日韩三级黄色一级电影网站| 亚洲黄色www网站| 屁屁影院ccyy国产第一页| 男操女在线观看| 成人精品在线视频观看| 91免费观看网站| 自拍偷拍精品视频| 老鸭窝91久久精品色噜噜导演| 欧美国产精品va在线观看| 日本猛少妇色xxxxx免费网站| 久久亚洲道色| 欧美一区二区三区视频| 精品999在线| 色天使综合视频| 日韩欧美精品网址| 欧美与动交zoz0z| 人人干在线视频| 中文字幕精品三区| 日本在线成人一区二区| 日韩亚洲视频在线观看| 美女诱惑一区| 欧美最顶级的aⅴ艳星| 亚洲国产综合久久| 在线精品亚洲| 久久久免费精品视频| 青青草原国产视频| 国内自拍一区| 久久久久久久久电影| 免费一级片视频| 欧美日韩免费观看一区=区三区| 久久久国产一区二区| 国产黄色小视频网站| 天天超碰亚洲| 欧美精品在线看| 久久久久久激情| 亚洲一本视频| 欧美一级电影久久| 天天干天天操天天操| 99精品视频在线| 久久精品成人欧美大片| 男人在线观看视频| 午夜日韩视频| 97热精品视频官网| 台湾佬中文在线| 日本欧洲一区二区| 成人精品久久久| 亚洲精品久久久久久久久久久久久久| 顶级嫩模精品视频在线看| 国产成人免费电影| 巨骚激情综合| 亚洲日本中文字幕区| 日本黄色片一级片| 亚洲精品动漫| 欧美人与性动xxxx| 97超碰免费在线观看| 国产精品色在线网站| 国产视频亚洲精品| 91麻豆精品久久毛片一级| 五月亚洲婷婷| 精品视频偷偷看在线观看| 少妇人妻好深好紧精品无码| 99精品在线观看| 高清一区二区三区四区五区| 免费无码国产精品| 狠狠色综合色综合网络| 国产精品亚洲一区| 国产精品麻豆一区二区三区| 亚洲麻豆国产自偷在线| 欧美日韩黄色一级片| 外国成人毛片| 在线观看一区二区视频| 国产永久免费网站| 精品无人区一区二区| 最近2019年好看中文字幕视频| 美国黄色小视频| 香蕉久久夜色精品| 91久久久久久国产精品| 深夜福利视频在线观看| 亚洲免费资源在线播放| 黄色动漫网站入口| 久久天堂久久| 在线日韩第一页| 久草视频精品在线| 麻豆成人91精品二区三区| 高清av免费一区中文字幕| 福利片在线看| 大桥未久av一区二区三区| 99re6在线观看| 神马电影久久| 97在线观看免费| 99精品视频免费看| 国产精品入口麻豆原神| 国产肥臀一区二区福利视频| 999久久久久久久久6666| 久久激情五月丁香伊人| 国产成人精品777777| www.66久久| 大胆欧美熟妇xx| 国产亚洲字幕| www.久久色.com| 亚洲大尺度在线观看| av色综合久久天堂av综合| 亚洲中文字幕无码一区二区三区| 在线观看麻豆| 日韩欧美在线看| 亚洲图片综合网| 国一区二区在线观看| 亚洲精品免费一区二区三区| 麻豆av免费在线观看| 欧美性xxxxxx少妇| 日韩免费成人av| 日韩精品亚洲专区| 日本精品一区二区三区高清 久久| 国产中文在线播放| 亚洲福利在线视频| 日韩精品成人一区| 99久久婷婷国产综合精品电影| 欧美日韩视频免费| caoporn成人| 久久久久久久久久久亚洲| 亚洲乱熟女一区二区| 一区二区在线电影| 欧美不卡在线播放| 国模一区二区| 在线性视频日韩欧美| 国模私拍一区二区| 中文字幕免费不卡| 色啦啦av综合| 综合久久亚洲| 国产91精品一区二区绿帽| 男人天堂亚洲天堂| 亚洲国产免费av| 欧美一级特黄视频| wwwwxxxxx欧美| 久草精品在线播放| 欧美偷拍综合| 91精品视频在线免费观看| 中文在线免费| 亚洲成人网在线观看| 国产精品男女视频| 中文字幕av一区 二区| 天天摸天天舔天天操| 欧美激情视频一区二区三区在线播放| 99国内精品久久久久久久软件| 男人添女人下部高潮视频在线观看| 亚洲国产精品成人av| www.久久精品视频| 中文字幕综合网| 欧美激情一区二区三区p站| 日韩视频二区| 亚洲国产精品123| 日本一区精品视频| 欧美专区福利在线| 欧美性天天影视| 亚洲国产精品成人一区二区| 天天干天天操天天操| 亚洲乱码国产乱码精品精的特点| 国产在线不卡av| 日韩国产欧美视频| 波多野结衣 作品| 女厕嘘嘘一区二区在线播放 | 亚洲欧美日韩精品久久奇米色影视 | 午夜激情综合网| 99精品欧美一区二区| 国产福利一区二区三区| 精品www久久久久奶水| 欧美一区二区三区另类| 欧美精品尤物在线| 国产一区二区高清在线| 欧美综合在线观看| 伊人精品影院| 在线播放国产精品| 蜜臀av午夜精品| 亚洲欧洲精品成人久久奇米网| 免费看三级黄色片| 日产欧产美韩系列久久99| 黄色a级片免费看| 欧美丝袜一区| 快播日韩欧美| 91成人噜噜噜在线播放| 国产精品国产三级国产aⅴ浪潮| 日本色护士高潮视频在线观看| 亚洲天堂av女优| 亚洲精品久久久久久久蜜桃| 亚洲一区影音先锋| 久久嫩草捆绑紧缚| 国产亚洲福利社区一区| 男人网站在线观看| 国产乱码精品一区二区三区av| 偷拍盗摄高潮叫床对白清晰| 激情av综合| 亚洲xxxx在线| 国产成人免费9x9x人网站视频 | 国产成人综合在线视频| 久久先锋影音av| 李丽珍裸体午夜理伦片| 国产高清无密码一区二区三区| a在线观看免费视频| 欧美亚洲三区| 亚洲中文字幕无码av永久| 亚洲精品二区三区| 永久域名在线精品| 欧美日韩激情| 欧美三日本三级少妇三99| 欧美xxxx在线| 人妖精品videosex性欧美| 天堂8中文在线| 久久夜精品香蕉| 国产在线二区| 久久久97精品| 含羞草www国产在线视频| 中文字幕亚洲二区| 中文字幕在线观看日本| 国产亚洲精品成人av久久ww| 手机看片福利在线观看| 日韩精品在线免费| 神马久久久久| 亚洲欧美另类中文字幕| 久香视频在线观看| 中文字幕亚洲欧美在线| 天堂地址在线www| 久久中文字幕在线| 18视频在线观看网站| 欧美激情图片区| 99re6在线精品视频免费播放| 欧美精品video| 高潮在线视频| 欧美一级电影久久| 影音成人av| 91精品视频免费看| 亚洲小说春色综合另类电影| 国产精品一区二区三区在线| 欧美一区二区三区久久| 欧美日韩国产不卡在线看| 欧美色网址大全| 少妇熟女一区二区| 狠久久av成人天堂| 欧美色图色综合| 日韩**一区毛片| 91人妻一区二区三区| www.久久精品| 真实乱视频国产免费观看| 国产精品―色哟哟| 久久视频免费看| 日韩欧美在线视频| 91国内精品视频| 欧美va亚洲va国产综合| 青青草在线免费视频| 日韩中文字幕视频在线观看| 青青在线视频| 日本aⅴ大伊香蕉精品视频| 亚洲日本中文| 久久波多野结衣| 成人中文在线| 一本久道高清无码视频| 日韩国产高清影视| 国产精品熟女一区二区不卡| 99re亚洲国产精品| 成人精品一二三区| 亚洲国产sm捆绑调教视频| 成人h动漫精品一区二区下载| 制服丝袜亚洲精品中文字幕| 日韩一级在线播放| 这里精品视频免费| 91九色porn在线资源| 国产精品青草久久久久福利99| 亚洲精品不卡在线观看| 日本免费高清一区二区| 欧美视频一区| 天天干天天操天天玩| aaa亚洲精品| 国产盗摄x88av| 在线观看一区日韩| 涩涩视频免费看| 久久精品国产一区二区三区| 成人勉费视频| www日韩av| 婷婷综合伊人| 欧美精品第三页| 成人免费视频视频| 欧美福利在线视频| 欧美日韩激情小视频| 精品二区在线观看| 亚洲一级免费视频| 国产在线美女| 国产成人亚洲欧美| 欧美一区精品| 午夜免费看毛片| 久久亚洲捆绑美女| 日本一区二区网站| 欧美一级国产精品| 米奇精品一区二区三区| 国产精品第一区| 一区二区导航| 免费观看美女裸体网站| 国产激情精品久久久第一区二区| 国产精品麻豆免费版现看视频| 欧美色videos| 天天操天天操天天干| 欧美激情一区二区三区久久久| 久久伊人久久| 男人天堂成人网| 精品一区二区三区免费观看| 亚洲一二三不卡| 中文在线一区二区| 人人妻人人爽人人澡人人精品| 日韩精品中文字幕久久臀| 91豆花视频在线播放| 产国精品偷在线| 欧美精品综合| 又大又长粗又爽又黄少妇视频| 亚洲天堂a在线| 亚洲一区二区激情| 少妇高潮 亚洲精品| 成人不卡视频| 在线成人性视频| 韩国欧美国产一区| 夫妻性生活毛片| 3751色影院一区二区三区| 国产激情在线| 97免费高清电视剧观看| 欧美天天在线| 中文文字幕文字幕高清| 大桥未久av一区二区三区| 天堂资源最新在线| 日韩美女主播视频| 精品大片一区二区| 少妇一级淫免费播放| 一色屋精品亚洲香蕉网站| 99国产在线播放| 久久免费在线观看| 丝袜美腿综合| 91av俱乐部| 成人一级片在线观看| 国产无遮挡又黄又爽| 亚洲精品国产精品国产自| 在线黄色的网站 | 欧美电影免费观看高清| 在线观看国产一级片| 亚洲精品视频在线观看免费| 人妻少妇精品无码专区久久| 91a在线视频| 欧美日韩水蜜桃| 亚洲免费成人在线视频| 亚洲一二三区不卡| 九色在线视频蝌蚪| 95av在线视频| 日韩视频免费| 粉嫩精品久久99综合一区| 3atv在线一区二区三区| h片在线观看视频免费| 日本在线免费观看一区| 国产在线精品不卡| 亚洲视频免费播放| 中文字幕欧美日韩精品| 91精品久久久久久综合五月天| 日韩久久一级片| 亚洲欧美成人一区二区三区| 熟妇高潮一区二区三区| 国产精品免费福利| 亚洲小说欧美另类社区| 精品人妻互换一区二区三区| 欧美一个色资源| 国产亚洲一区二区手机在线观看| 男人j进女人j| 久久成人免费电影| 日本少妇吞精囗交| 日韩中文字幕网址| 羞羞色国产精品网站| 女人扒开腿免费视频app|