Asp.net-知识总结(3)

1.回顾:上篇了解了 asp.net的运行机制

2.这篇将学习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();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值