B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
几个Web下常用的对象。
1.Request -- 获取请求
string s = Reqeust["key"]; //?带过来的“名=值”对或者通过表单元素的name值来获取表单元素value值。
Request["地址栏中?后面名值对的名/表单元素的name名"]
2.Response -- 进行响应
Response.Write("字符串"); //服务器的程序代码向页面输入一串字符。 相当于商店老板直接把东西卖给你。
Response.Redirect("重定向页面"); 相当于商店老师介绍另一个商店让你去买。
所有的Web程序都是无状态的。
原因:它们使用的Http传输协议本身就是无状态的协议。
表现:每个返回到客户的页面,都与之前或之后的页面不相关,无法访问之前页面的数据,或为之后页面送数据。
解决:在服务端或客户端通过使用几个对象来专门存储相关状态的数据。
存储在服务端的状态对象
Session:
每个独立的浏览器会创建一个独立的Session ,不是一台电脑一个Session。
Session存储的数据,在当前会话中共享。
Session在20分钟之内,如果没有会话操作,则Session会自动释放。
语法:
1.用Session存值:Session["key名"] = 值; 值,不只是个字符串,可以是对象。
2.从Session取值:类型 变量名 = (强制转换的类型名)Session["key名"]
3.判断Session中是否存有某个值
if(Session[“key名”] == null)
{
}
4.释放Session
释放某个Session:Session["key名"] = null;
释放会话中的所有的Session:Session.Clear();
自动释放:20分钟
案例:
1.登录:防止绕过登录界面。
2.登录:把用户名记好。在每个界面上显示“欢迎您:用户名”
Application
所有会话共享一个Application空间,任何一个人改变Applciation中的内容,其它人都会发现被改变了。
Application中的数据不会自动释放。
1.用Application存值:Application["key名"] = 值; 值,不只是个字符串,可以是对象。
2.从Application取值:类型 变量名 = (强制转换的类型名)Application["key名"]
3.判断Application中是否存有某个值
if(Application[“key名”] == null)
{
}
4.释放Application:Application["key名"] = null;
存储在客户端的状态对象:
Cookie
保存在客户端内存或硬盘般上的。
临时Cookie是存在浏览器内存中的。持久Cookie是存在硬盘上浏览器相关的Cookie目录中的。
设置Cookie
Response.Cookies["key名"].Expires = 过期时间。
Response.Cookies["key名"].Value = 值。
读取Cookie
string s = Request.Cookies["key名"].ToString();
会写入临时Cookie,持久Cookie;会读取Cookie;会删除Cookie。
QueryString