2012年5月1日 天气有雨 今天是劳动节,突然看到腾讯登陆界面的一张图片,很有意思,画了几个图案,表面意思就是从古至今劳动工具的变化,第一张是一个石头,代表石器时间,然后是小镰刀,最搞笑的是最后面的工具是鼠标。
学了asp.net系统对象有段时间了,做一个复习吧
1、asp.net 9大对象
page :指向页面自身的方式。作用域为页面执行期。
Request:读取客户端在Web请求期间发送的值
Response:封装了页面执行期返回到HTTP客户端的输出
Application:作用于整个程序运行期的状态对象
Session:会话期状态保持对象,用于跟踪单一用户的会话。
Cookie:客户端保持会话信息的一种方式
Server:提供对服务器上的方法和属性的访问
还有viewstate和configuremanger
2、Request对象
用于取出客户端请求web时发送的值
关于get和post两种传参
关于传的参数问题:传的参数是form表单中带name属性的控件的值 在服务器中以键/值对的方式取值
get是地址栏传参(传参是有限 大文件通过file) 用querystring取值
post是表单(看不到的表单域)传参 用form取值
但有一小问题 就是 当你用get传值时 设置action=“111.htm?abc=123”
他会默认把你的?abc=123去悼 然后换成表单里控件 的值
解释办法 不用get传值 用post传值 你的此“111.htm?abc=123”路径 就可以传过去了
也就是说 method=get时 加参等于没加
3、asp.net状态保持方案
4、通过VIEWSTATE在页面中保存值
服务器在接收到用户请求一个页面后,会自动在请求报文中找看是否包含__VIEWSTATE的隐藏域,如果有,则将中间的值解码后添加到页面的ViewState属性中
作用域:页面级
主要是用于保存服务器控件的状态,我们也可以很方便的用来保存自己的值,保存的类型有String、Integer、Boolean、Array、ArrayList、Hashtable
缺点:加大网站的流量、降低访问速度、机密数据放到表单中会有数据欺骗等安全性问题,因为通过工具可以查看到他里面的值
5、cookie(绰号小甜饼)
HttpContext.current获得当前的HttpContext,这样就可以当参数传递到类
Cookie只能保证文本 cookie如果不设置Expires属性 默认是保存在浏览器缓存中 当浏览器关闭后 cookie消失
Session可以保存任意类型
Session是依靠cookie的 为什么会这样说呢?
因为当我们建立 一个session时,framework会给我产生一个sessionID, 然后设置一个cookie在浏览器缓存中保存sessionID ,下次当我们向服务器发出请求时,会把sessionID发送回去(通过设置在浏览器缓存中cookie保存sessionID),这样我们就可以知道是哪个浏览器发送 从服务器中匹配sessionID 这样就可以请求你上次保存的值了(就是一个凭证,像银行取钱时要求银行卡才行)
当浏览器关闭,sessionID就不存在了,就算你的session值没过期,保存值也找不到了,再次请求,服务器重新分配sessionID给浏览器
Session有两个对象
sessionId和session对象 其中session对象包括键值对
还有一种说话,说cookie可以禁用,但如果你禁用了cookie,你的session就用不了,那大部分网站就不能正常运行了。
浏览器第一次请求,不管你是否设置session,framework会自动分配一个sessionID给你。