asp.net session 简单测试应用程序

asp教程.net session 简单测试应用程序

<%@ page language="c#" autoeventwireup="true"  codefile="default.aspx.cs" inherits="_default" %>

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>session测试</title>
    <script type="text/网页特效">
    function ajaxget()
 {
   var ajaxobject = window.activexobject?new activexobject("microsoft.xmlhttp"):new xmlhttprequest();
   ajaxobject.onreadystatechange = function ajaxstatechange() {
       if(ajaxobject.readystate==4)
     {
       if(ajaxobject.status==200)
       {
         var strdata = ajaxobject.responsetext;
         if(strdata == 1)
         {
          window.cleartimeout(auto);
          alert(ajaxcount);
         }
         return;
       }
       else
       {
         alert('网络繁忙,请刷新后重试!');
       }
     }
    };
   ajaxobject.open('get', 'default.aspx?ajax=1', true);
   ajaxobject.setrequestheader("content-type","application/x-www-form-urlencoded;charset=utf-8");
   ajaxobject.send();
 }
 
 var ajaxcount = 0;
 var auto = null;
 function startajax()
 {
  //当通过ajax定时请求aspx页面时,可防止当前页面session丢失!
  var btnajax = document.getelementbyid('btnajax');
  btnajax.disabled = true;
  ajaxcount++;
  btnajax.value = ajaxcount;
  ajaxget();
  auto = window.settimeout(startajax, 1000);
 }
    </script>
</head>
<body style="font-family:georgia;">
    <form id="form1" runat="server">
    <input id="btnajax" type="button" value="心 跳" onclick="startajax();" />
    <asp:textbox id="textbox1" runat="server"></asp:textbox>
 <asp:button id="button1" runat="server" text="添加session" onclick="button1_click" />
 <asp:button id="button2" runat="server" text="释放session" onclick="button2_click" />
 session包含的值数量:[<%= session.count %>]
 <%= session["test"] %>
    <div>
    当前session数:<%= constants.sessioncount %> <br />
    累计session数:<%= constants.sessionallcount%>
    </div>
    <table border="1" cellpadding="5" style="border-collaps教程e:collapse;">
    <tr style="background-color:#dff;">
    <th>sessionid</th>
    <th>启动时间</th>
    </tr>
    <% foreach (dictionaryentry r in constants.sessionlist) {
     bool iscur = r.key.tostring() == session.sessionid;  %>
    <tr style="color:<%= iscur?"blue":"black" %>;">
    <td><%= r.key %></td>
    <td><%= r.value %></td>
    </tr>
 <% } %>
    </table>
    </form>
</body>
</html>

cs文件

using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.collections;

public partial class _default : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
 {
  //注意当ajax请求aspx页面时,aspx页面应设置为不允许缓存!
  response.appendheader("pragma", "no-cache");
  response.appendheader("cache-control", "no-cache, must-revalidate");
  response.appendheader("expires", "0");
  if (request.querystring["ajax"] != null)
  {
   //ajax返回当前网站session数量
   response.write(constants.sessionlist.count.tostring());
   response.end();
  }
    }

 protected void button1_click(object sender, eventargs e)
 {
  //添加session
  //session["test"] = datetime.now;
  session.add("test", datetime.now);
  response.redirect(request.url.tostring());
 }

 protected void button2_click(object sender, eventargs e)
 {
  //移除指定session
  //session["test"] = null;
  //session.remove("test");

  //移除所有session 与 session.removeall();功能相同
  //session.clear();

  //终止当前回话状态 注意会触发session_end 与session超时效果相同
  //调用此句后,sessionid并没有被重置。
  //当仅仅调用此句时(当session超时过期时),如果再刷新当前页面则会一直调用session_start 和 session_end
  //除非给session添加值或重置sessionid后,才会退出此状态。
  session.abandon();

  //重置当前sessionid
  //如果设置的sessionid与已存在的sessionid重复,则将发生session劫持。
  //如不存在则会系统会自动创建新session
  //response.cookies.add(new httpcookie("asp.net教程_sessionid", this.textbox1.text));
  response.redirect(request.url.tostring());
 }
}

constanst.cs

using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.collections;

/// <summary>
/// constants 的摘要说明
/// </summary>
public class constants
{
 public constants()
 {
  //
  // todo: 在此处添加构造函数逻辑
  //
 }

 /// <summary>
 /// 当前所有session列表
 /// </summary>
 public static hashtable sessionlist = new hashtable();

 /// <summary>
 /// 当前session个数
 /// </summary>
 public static int sessioncount = 0;

 /// <summary>
 /// 累计session个数
 /// </summary>
 public static int sessionallcount = 0;
}

global.asax

<%@ application language="c#" %>

<script runat="server">

    void application_start(object sender, eventargs e)
    {
        // 在应用程序启动时运行的代码
    }
   
    void application_end(object sender, eventargs e)
    {
        //  在应用程序关闭时运行的代码

    }
       
    void application_error(object sender, eventargs e)
    {
        // 在出现未处理的错误时运行的代码

    }

    void session_start(object sender, eventargs e)
 {
  constants.sessionallcount++;
  constants.sessioncount++;
  constants.sessionlist.add(session.sessionid, datetime.now);
  //session["sessionstartdatetime"] = datetime.now;
    }

    void session_end(object sender, eventargs e)
 {
  constants.sessioncount--;
  constants.sessionlist.remove(session.sessionid);
    }
      
</script>

时间: 2024-09-20 10:31:07

asp.net session 简单测试应用程序的相关文章

ASP一个很简单的验证码程序

程序|验证码    原程序   http://vifo.vicp.net:8088/datalib/ShowTopic.asp?id=108:10:1:1      主程序共三个      我的调用方式 <script language="javascript" src="/verify/num.asp"></script>   验证方式 if trim(Loginnum)<>trim(session("Loginnum

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间!这分数据应该有很多同学想要,看看EF的性能! 服务器 现在来向SQL2008R2插入1000000条数据吧 declare @i int; set @i=0; while @i<1000000 begin INSERT INTO [AppDB].[dbo].[MIS_Article] ([Id] ,

asp简单聊天室程序 二

asp简单聊天室程序 二 <%@Language="JavaScript" CodePage="936"%><% var Nothing; Response.addHeader("Cache-Control","no-cahce"); if(!Session.Contents("Chat_User")) {     Session.Contents("Chat_User"

关于oracle session的简单测试

平时查看v$session的时候要定位一个session,需要sid,serial#这个两个值,其实更多时候我们关注更多的是sid,对于serial#却不太了解. 至少从v$mystat中,可以看到,是只能定位到sid的,对于serial#的值还需要借助v$session来查找. SQL> desc v$mystat Name                                      Null?    Type ----------------------------------

asp.net session使用与过期判断程序

1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服务器就清除Session对

asp简单聊天室程序 一

很多以前的聊天室程序哦,只用到两个文件哦.下我看第一个html文件吧. <html><head><title>asp简单聊天室程序</title> <style>*{font:9pt 宋体;line-height:1.7}</style> <script> var XmlDom = document.createElement("xml"); XmlDom.onreadystatechange=func

asp 一个简单生成随机数程序

一个简单生成随机数程序  Public Function GetRndCode(maxLen)   Dim strNewPass,whatsNext,upper,lower,intCounter   Randomize   For intCounter = 1 To maxLen    whatsNext = Int((1 - 0 + 1) * Rnd + 0)    If whatsNext = 0 Then     upper = 90     lower = 65    Else    

[ASP.NET] Session 详解

asp.net|session|详解 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程  了解ASP/ASP.NET的Session模型  了解ASP.NET Web应用程序模型  了解ASP.NET Web应用程序配置文件Web.config的作用.意义及使用方法  了解Internet Information Services(以下简称IIS)的基本使用方法  了解如何在Microsoft S

ASP.NET Session的七点认识

ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一 对于值类型的变量,Session中保存的是值类型的拷贝 Session["__test0"] = 1;  int i = (int)Session["__test0"]+1;  int j = (int)Session["__test0"]; 结果i=2,j=1 A