写了个缓存 Session 的类

转载 2006年06月09日 17:53:00

 

    public class SessionCache
    
{
        
Get New Cache Table

        
public static void SessionStart(DataTable table, string strSessionId, string strHostAddress, string strPlatForm, string strBrowserType, DateTime dtNow)
        
{
            DataRow row 
= table.NewRow();

            DateTime now 
= DateTime.Now;

            row[
"SessionId"= strSessionId;
            row[
"HostAddress"= strHostAddress;
            row[
"PlatForm"= strPlatForm;
            row[
"BrowserType"= strBrowserType;
            row[
"StartTime"= dtNow;

            table.Rows.Add(row);
        }


        
public static void SessionEnd(DataTable table, string strSessionId, DateTime dtNow)
        
{
            DataRow[] rows 
= table.Select(string.Format("SessionId = '{0}'", strSessionId));

            
if( rows.Length == 0 )
                
return;

            rows[
0]["EndTime"= dtNow;

            
string connString = ConfigurationSettings.AppSettings["ConnString"];
            
using( SqlConnection conn = new SqlConnection(connString) )
            
{
                SqlCommand cmd 
= new SqlCommand();
                cmd.Connection 
= conn;

                
if( rows[0]["UserCode"!= DBNull.Value )
                
{
                    cmd.CommandText 
= "INSERT INTO SessionLog(SessionId, UserCode, HostAddress, PlatForm, BrowserType, StartTime, LoginTime, EndTime) VALUES(@SessionId, @UserCode, @HostAddress, @PlatForm, @BrowserType, @StartTime, @LoginTime, @EndTime)";
                    cmd.Parameters.Add(
"@UserCode", Convert.ToInt32(rows[0]["UserCode"].ToString()));
                    cmd.Parameters.Add(
"@LoginTime", Convert.ToDateTime(rows[0]["LoginTime"].ToString()));
                }

                
else
                
{
                    cmd.CommandText 
= "INSERT INTO SessionLog(SessionId, HostAddress, PlatForm, BrowserType, StartTime, EndTime) VALUES(@SessionId, @HostAddress, @PlatForm, @BrowserType, @StartTime, @EndTime)";
                }


                cmd.Parameters.Add(
"@SessionId", rows[0]["SessionId"].ToString());
                cmd.Parameters.Add(
"@HostAddress", rows[0]["HostAddress"].ToString());
                cmd.Parameters.Add(
"@PlatForm", rows[0]["PlatForm"].ToString());
                cmd.Parameters.Add(
"@BrowserType", rows[0]["BrowserType"].ToString());
                cmd.Parameters.Add(
"@StartTime", Convert.ToDateTime(rows[0]["StartTime"].ToString()));
                cmd.Parameters.Add(
"@EndTime", Convert.ToDateTime(rows[0]["EndTime"].ToString()));

                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }


            table.Rows.Remove(rows[
0]);
        }


        
public static void UserLogin(DataTable table,string strSessionId, int intUserCode, string strUserName, DateTime dtNow)
        
{
            DataRow[] rows 
= table.Select(string.Format("SessionId = '{0}'", strSessionId));

            
if( rows.Length == 0 )
                
return;

            rows[
0]["UserCode"= intUserCode;
            rows[
0]["LoginName"= strUserName;
            rows[
0]["LoginTime"= dtNow;
        }

    }


    public class Global : System.Web.HttpApplication
    
{
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.IContainer components = null;

        
public static string ErrorMessage = "NULL";

        
public Global()
        
{
            InitializeComponent();
        }
    
        
        
protected void Application_Start(Object sender, EventArgs e)
        
{
            
try
            
{
                Application[
"SessionCount"= 0;
                Application[
"SessionCache"= SessionCache.CreateCacheTable();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }

 
        
protected void Session_Start(Object sender, EventArgs e)
        
{
            
try
            
{
                Application.Lock();
                Application[
"SessionCount"= (int)Application["SessionCount"+ 1;
                SessionCache.SessionStart(
                    (System.Data.DataTable)Application[
"SessionCache"], 
                    Session.SessionID, 
                    Request.UserHostAddress, 
                    Request.Browser.Platform, 
                    Request.Browser.Type, 
                    DateTime.Now
                    );
                Application.UnLock();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }


        
protected void Application_BeginRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_EndRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_Error(Object sender, EventArgs e)
        
{

        }


        
protected void Session_End(Object sender, EventArgs e)
        
{
            
try
            
{
                Application.Lock();
                Application[
"SessionCount"= (int)Application["SessionCount"- 1;
                SessionCache.SessionEnd(
                    (System.Data.DataTable)Application[
"SessionCache"], 
                    Session.SessionID, 
                    DateTime.Now
                    );
                Application.UnLock();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }


        
protected void Application_End(Object sender, EventArgs e)
        
{

        }

            
        
Web 窗体设计器生成的代码
    }

 

http://weboy.cnblogs.com/archive/2006/06/06/418668.html

写了一个Java的简单缓存模型

一个java简单的缓存模型

nginx+tomcat7负载均衡+redis缓存session

  • 2017年03月19日 01:57
  • 58.49MB
  • 下载

给自己公司的项目写了两个功能 1.将对象 写入本地 缓存 2.去本地的缓存放到对象中

废话buduoshu //讲一个对象存储到本地缓存里面 public static void setObjectToSharedpreferences(Ob...

利用java 反射原理写了一个赋值和取值通用类

首先了解一下反射的原理,什么是反射?所谓的反射就是指java 语言在运行时拥有一项自观的能力,反射能使你得到装载到 jvm 中的类的内部信息,它不需要你在编码的时候就知道所需类的内部信息,允许程序执行...

cookie、session及一些缓存的对比

  • 2011年03月18日 11:14
  • 1.67MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写了个缓存 Session 的类
举报原因:
原因补充:

(最多只允许输入30个字)