1.回顾:上篇了解了 asp.net的运行机制
3.JQuery学习方法和asp.net(server,request)
(1) jquery 学习方法总结
jquery在学习的时候,不能一味的只去找源码,而是看参考文档,参考文档写的十分清楚,不同的效果的实现和组合,通过选择器来实现。当样式(css)和动画(anmin)衔接的时候,用队列来实现(queue)来实现。
(2) server对象
server对象如下面所示:
第一个(MapPath)是取得文件的物理路径;
第二个server.Excute和Transfer方法是内部重定向(运行在服务器端)。Excute方法重定向后,将当前的网页和重定向的网页内容全部显示出来。而Transfer方法重定向后,
直接将专向另一个界面。
第三个HtmlEncode和HtmlDecode:是将如果是html网页带标签的内容通过HtmlEncode方法后,显示的是html的内容,而HtmlDecode则是将标签和内容全部显示出来。
第四个:UrlEncode和URlDecode方法:这是对URL进行的编码/解码,如果URL里中文的话,用URLEncode进行编码后,讲不直接显示内容。
具体如下图所示:
(3) Request对象
Request对象除了接收post提交、get提交和外部重定向外,还有下面成员:
图片盗链:Request.UrlReferrer请求图片的来源,用来防止图片的来源。用来获得上一个访问的地址。从而可以比较是否是本网站的内容,来防止盗链。
防止图片盗链,还有一种情况是本地有加密的一种方式,放到图片链接后面,在一分钟后失效,即可。
获得访问者的IP地址:Request.UserHostAddress获得。
(4) Response对象
Response对象除了可以write出内容外,还可以有一下几种方式。
这里解释一下,reponse在write的时候,是将内容先存在缓存区内,当到达一定时间后或者某种状态的时候,才将内容缓存的内容全部给显示出来。
如果想要不缓存,显示出来的话,则将request.output=false即可。
4.状态保持机制
(1).状态保持机制内容如下
(1) Cookie
Cookie的实现原理是通过http协议,请求报文头和响应报文头实现的。服务器端通过下面代码实现:cookie的实现:
//新建一个cookie对象,并赋值 键值对
HttpCookie cookie = newHttpCookie("un", strName);
HttpCookie cookieDate = newHttpCookie("ud", DateTime.Now.ToString());
if(!string.IsNullOrEmpty(Request.Form["chkIsAll"]))
{
//设置cookie14天后失效(此cookie在浏览器端会以文本的方式保存在浏览器所在电脑的硬盘中)
cookie.Expires =DateTime.Now.AddDays(14);
cookieDate.Expires =DateTime.Now.AddDays(14);
}
//输出cookie对象信息到浏览器
Response.Cookies.Add(cookie);
Response.Cookies.Add(cookieDate);
然后,浏览器自动将cookie上传服务器端:服务器端实现如下:
//从Request中获得浏览器提交来的cookie
HttpCookie cookie =Request.Cookies["un"];
//Response.Write(cookie.Expires.ToString());
if (cookie != null)
{
具体的流程如下图所示:
(3)Session
Session是在服务器端存在一个Session池,当Session对象创建达到一定的容量,Session池就会重新启动。导致丢失Session数据。不过存储少量数据还是可以得。
在HttpApplication请求管道 第9个事件的时候,根据浏览器发来的SessionId自动从服务器端Session池中读取SessionId对应的Session对象,并赋值给当前页面对象的Session属性。
如果浏览器禁用了Cookie的话,那服务器也可以通过将sessionId保存在url中来完成sessionid在浏览器和服务器间的传递。(需要设置配置文件里的 sessionState节点的cookieless="autodetect")
<sessionState cookieless="AutoDetect"></sessionState>
Session["对象名称"] = strName;
具体的实现如下图:
(2) ViewState
页面的ViewState属性实际上就是获取了浏览器提交过来的一个名为__VIEWSTATE的隐藏域里的值
在页面类对象,执行PR方法的时候,先创建了控件树,然后通过执行LoadState方法,将请求报文中的名字为__VIEWSTATE的值,然后反base64编码,进行反序列化,最终还原成集合,然后将其中属于程序员自己添加到ViewState里的键值对还原到 页面对象的ViewState属性中。然后才执行的Page_Load方法。
5.Application
(1) 图片介绍
(2) 代码实现
Application.Lock();
Application[“变量名”]=“值”;
Application.unLock();