asp.net session的原理
session,会话,指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。
A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。
当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。当用户访问web服务器,则被分配一个sessionID,会话结束或超时时自动释放。没有存储类型限制,存储大小只受内存限制。
设置页的代码:
protected void Button1_Click(object sender, EventArgs e)
{
Session["txt1"] = (TextBox1.Text == "") ? "空字符串" : TextBox1.Text;
}
protected void Button2_Click(object sender, EventArgs e)
{
string[] str = TextBox2.Text.Split(',');
Session["txt2"] = str;
}
protected void Button3_Click(object sender, EventArgs e)
{
Session["cal"] = Calendar1;
}
protected void Button4_Click(object sender, EventArgs e)
{
Session.Add("txt1", "");
}
protected void Button5_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
目标页:
protected void Page_Load(object sender, EventArgs e)
{
if(Session["txt1"]!=null)
{ Label1.Text = Session["txt1"].ToString(); }
else
{ Label1.Text = "session为null"; } if(Session["txt2"]!=null )
{ string[] str = (string[])Session["txt2"];
for (int i = ; i < str.Length; i++)
Label2.Text += str[i] + "\n";
} if(Session["cal"]!=null)
{
Calendar cal = (Calendar)Session["cal"];
Label3.Text = cal.SelectedDate.ToShortDateString();
} if (Session["txt1"] != null)
{ Label4.Text = Session["txt1"].ToString(); }
else
{ Label4.Text = "session为null"; }
}
添加重名的session后,会将原来的session覆盖。
创建session有两种方式:Session["txt1"]=“xxxx”和Session.Add("txt1", "234345");
在获取session时,返回的是一个object对象,因此要注意显示转换类型。
清除某一个session:session.remove("keyName");
清除所有的session:Session.Abandon();
注意,如果是在按钮中清除session,那么由页面的生命周期可以知道,pageload事件中仍能读取到清除之前的session值,如果想得到清除之后的值,就需要在清除之后,再一次获取页面response.redirect(当前url);
protected void Button5_Click(object sender, EventArgs e)
{
Session["userName"] = TextBox1.Text;
Response.Redirect("Default2.aspx");
}
目标页面:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userName"] == null)
Response.Redirect("Default.aspx");
else
Label1.Text += Session["userName"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session.Remove("userName");
Response.Redirect("Default2.aspx");//这里也可以回到登陆页面
}
asp.net session的原理的更多相关文章
- ASP.NET Session的实现原理分析
ASP.NET Session的实现原理分析 用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也就是说只要Coo ...
- ASP.NET Session原理及处理方法
session是怎么存储,提取的 1.在服务器端有一个session池,用来存储每个用户提交session中的数据,Session对于每一个客户端(或者说浏览器实例)是“人手一份”,用户首次与Web服 ...
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...
- ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节
https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...
- ASP.NET Session丢失的情况
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...
- ASP.NET Session丢失的解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...
- ASP.NET Session丢失问题原因及解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...
- ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界
HttpContext是ASP.NET中的核心对象,每一个请求都会创建一个对应的HttpContext对象,我们的应用程序便是通过HttpContext对象来获取请求信息,最终生成响应,写回到Http ...
- ASP.NET Session 简单超实用使用总结
一.概述 Session用于存储特定的用户会话所需的信息 . Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议. Session中文是“会话”的意思,在ASP.NE ...
随机推荐
- java排列
排列:它可以被看作是多个相同类型的数据的组合,这些数据的统一管理. 1.声明. 创建 一维:type[] var 比如:int[] a或 int a[]: 数组名= new 数组元素的类型[数组 ...
- Entity Framework 6 Code First创建
基本上我是DB先设计好的,所以就按现存在的table去写程式. 1.Web.config里配置Db连接字串,Connection String Name为DefaultConnection <c ...
- 【转载】Xcode6中添加pch文件
//原文地址:http://www.cnblogs.com/YouXianMing/p/3989155.html 1. 新建工程: 2. 创建pch文件:cmd+n->other->PCH ...
- IOS开发系列 --- 核心动画
原始地址:http://www.cnblogs.com/kenshincui/p/3972100.html 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥i ...
- 天坑 之 Eclipse J2EE Preview 运行正确项目一直显示http 404
昨天下载了几个新Demo学习,结果不知道改了哪里,导致运行原先自己写的项目(JSP+Servlet+JDBC)(这理论上不会出什么大的问题吧?这么底层),结果莫名其妙的出现Http 404. 搞的我一 ...
- linux crontab设置
cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. 服务的启动和停止 ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
- supervisor python开发的进程管理工具
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- STL set 使用小结
这是微软帮助文档中对集合(set)的解释: “描述了一个控制变长元素序列的对象(注:set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分 量)的模板类 ...
- 学习笔记之--java EE 环境的搭建
一.前期准备.(apache-maven-3.0.5.apache-tomcat-7.0.23-windows-x86.eclipse-jee-kepler-SR1-win32.jdk-7u45-wi ...