乱想-HTTP请求常用对象

写后台程序,要获取前台的请求等参数,返回响应,免不了接触Request,Response等对象,其实不止这些,还有其他的如:session,cookie等,ASP.NET是7个,JSP中是9个,因为我是NET下的coder,所以就介绍ASP.NET中的,这里转载一篇博文,对ASP.NET做了详细介绍。


http://blog.sina.com.cn/s/blog_4099e60a0101a6x5.html 一、ASP.NET 提供的7大内置对象: Response 服务器端将数据作为请求的结果发送到浏览器端(输出) Request 浏览器端对当前页请求的访问发送到服务器端(输入) Application 存储跨网页程序的变量或对象,中止于停止IIS服务(公用变量和对象) Session 存储跨网页程序的变量或对象,中止于联机离线或有效时间(单一用户对象) Server 定义一个与Web服务器相关的类提供对服务器上方法和属性的访问 Cookie 保存客户端浏览器请求的服务器页面,存放保留非敏感用户信息 Cache Web应用程序的缓存 二、内置对象常用属性、方法或集合 1.Response对象: Cache 获取Web页缓存策略(过期时间、保密性等) AppendToLog 自定义日志信息添加到IIS日志文件 Charset 设置或获取HTTP的输出字符编码 Clear 将缓冲区的内容清除 Expires 设置或获取浏览器上缓存页过期之前的分钟数 End 将目前所有缓冲区中的内容发送至客户端后关闭 Cookies 获取当前请求的Cookie集合 Flush 将缓冲区中所有的数据发送至客户端 IsClientConnected 传回客户端是否仍然和Server连接 Redirect 将网页重新导向另一个地址 SuppressContent 是否将HTTP的内容发送到客户端浏览器,若为true,则网页将不会传至客户端 Write 将数据输出到客户端浏览器 WriteFile 将指定的文件直接写入HTTP内容数据流 实例: Response.Write("欢迎光临天神的博客! ") Response.WriteFile(@"E:\test.txt"); Response.Redirect("login.aspx"); Response.Write(" Response.End; 用于调试程序检测出错地点(放在最前面一步步往下检测) 2. Request对象: ApplicationPath 获取服务器ASP.NET的虚拟应用程序根目录路径 MapPath 将请求的URL中的虚拟路径映射到服务器上的物理路径 Browser 获取或设置有关正在请求的浏览器的功能信息 SaveAs 将HTTP请求保存到磁盘 ContentLength 指定客户端发送的内容长度 Cookies 获取客户端发送的Cookie集合 FilePath 获取当前请求的虚拟路径 Files 获取采用多部分MIME格式的由客户端上载的文件集合 Form 获取窗体变量集合 Item 获取Cookies、Form、QueryStringServerVariables集合中指定的对象 Params 获取Cookies、Form、QueryStringServerVariables项的组合集合 Path 获取当前请求的虚拟路径 QueryString 获取HTTP查询字符串变量集合 UserHostAddress 获取远程客户端IP主机地址 UserHostName 获取远程客户端DNS名称(主机名) 实例:查询浏览器的相关信息 Response.Write(Request.Browser.Platform); Response.Write(" "); Response.Write(Request.UsrHostAddress); Response.Write(" "); Response.Write(Request.QueryString); Response.Write(" "); this.Label.Text=Request.QueryString["接受值"]; //接受地址传值 3.Application对象: Contents 用于访问应用程序状态集合中的对象名 AllKeys 返回全部Application对象变量名到一个字符串数组中 Add 新增一个Application对象变量 StaticObjects 确定某对象指定属性的值或遍历集合,并检索所有静态对象的属性 Count 获取Application对象变量的数量 Clear 清除全部Application对象变量 Item 允许使用索引或Application变量名称传回内容值 Lock 锁定全部Application对象变量 Remove 使用变量名称移除一个Application对象变量 RemoveAll 移除全部Application对象变量 Set 使用变量名更新一个Application对象变量的内容 UnLock 解除锁定Application对象变量 语法: Application["变量"]="变量内容"; 实例: Application.Add("App1","Value1"); Application.Add("App2","Value2"); for(int i=0;i {Response.Write("变量名:"+Application.GetKey(i)); Response.Write(",值:"+Application[i]+" "); } 4.Session对象: Contents 用于确定指定会话项的值或遍历 TimeOut 传回或设定Session对象变量的有效时间,当使用者超过有效时间没有动作,Session对象就会失效,默认时间为20分钟 Abandon 结束当前会话,并清除会话中的所有信息。如果用户随后访问页面,可以为他创建新会话(重新建立会话) StaticObjects 确定某对象指定属性的值或遍历集合,并检索所有静态对象的所有属性 Clear 清除全部的Session对象变量,但不结束会话 语法: Sessionp["变量名"]="内容"; //对象中存放信息 VariablesName=Session["变量名"]; //从会话中读取信息 实例: Session["name"]=this.Text1.Text; //放入Default.aspx页面中的TextBox控件 Response.Redirect("Default.aspx"); this.Label1.Text=Session["name"].ToString(); //在Default2.aspx页面中放入Label控件以读取会话中的信息。 5. Server对象: MachineName 获取服务器的计算机名称 HttpDecode 对已被编码以消除无效HTML字符的字符串进行解码 ScriptTimeOut 获取和设置请求超时值(以秒计) HttpEncode 对要在浏览器中显示的字符串进行编码 MapPath 返回与Web服务器上的指定虚拟路径相对应的物理文件路径 UrlDecode 对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器 UrlEncode 编码字符串,以便通过URL从Web服务器到客户端进行可靠的HTTP传输 实例: Response.Write(Server.MapPath("Default.aspx")); Response.Write(Server.HtmlEncode("天神")); Response.Write(Server.HtmlDecode("天神羽翼")); Response.Write(Server.MachineName); Response.Write(Server.ScriptTimeOut); 6. Cookie对象: Expires 设定Cookie的有效时间,默认为1000分钟,若设为0,则可以实时删除Cookie变量 Finalize 允许Object在“垃圾回收”回收Object之前尝试释放资源并执行其他清理操作 Name 获取Cookie变量的名称 MemberwiseClone 创建当前Object的浅表副本 Value 获取或设置Cookie变量的内容值 Path 获取或设置Cookie适用于的URL Port 获取或设置Cookie适用于的TCP端口的列表 语法: Response.Cookies[Name].Value="资料"; //要存储一个Cookie变量可以通过Response对象的Cookies集合 变量名=Request.Cookies[Name].Value; //要取回Cookie,则要使用Request对象的Cookies集合,并将指定的Cookies集合返回。 实例: if(Request.Cookies["user"]!=null) {this.Label1.Text=Request.Cookies["user"]["username"]; this.Label2.Text=Request.Cookies["user"]["password"]; } HttpCookie aCookie; for(int i=0;i { aCookie=Request.Cookies[i]; this.Label3.Text=string.Format("Cookie 用户名={0} Cookie 值={1}",aCookie.Name,aCookie.Value); } } Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2109。它是网景公司的前雇员Lou Montulli在1993年3月的发明。   服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。   Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。 程序代码 //写入   protected void Button1_Click(object sender, EventArgs e)   {     HttpCookie cookie=new HttpCookie("MyCook");//初使化并设置Cookie的名称     DateTime dt=DateTime.Now;     TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//过期时间为1分钟     cookie.Expires = dt.Add(ts);//设置过期时间     cookie.Values.Add("userid", "userid_value");     cookie.Values.Add("userid2","userid2_value2");     Response.AppendCookie(cookie);     //输出该Cookie的所有内容     //Response.Write(cookie.Value);//输出为:userid=userid_value&userid2=userid2_value2   }   //读取   protected void Button2_Click(object sender, EventArgs e)   {     // HttpCookie cokie = new HttpCookie("MyCook");//初使化     if (Request.Cookies["MyCook"]!=null)     {       //Response.Write("Cookie中键值为userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行       //Response.Write("Cookie中键值为userid2的值" + Request.Cookies["MyCook"]["userid2"]);       Response.Write(Request.Cookies["MyCook"].Value);//输出全部的值     }   }   //修改Cookie   protected void Button3_Click(object sender, EventArgs e)   {     //获取客户端的Cookie对象     HttpCookie cok = Request.Cookies["MyCook"];     if (cok != null)     {       //修改Cookie的两种方法       cok.Values["userid"] = "alter-value";       cok.Values.Set("userid", "alter-value");       //往Cookie里加入新的内容       cok.Values.Set("newid", "newValue");       Response.AppendCookie(cok);     }   }   //删除Cookie   protected void Button4_Click(object sender, EventArgs e)   {     HttpCookie cok = Request.Cookies["MyCook"];     if (cok != null)     {       if (!CheckBox1.Checked)       {         cok.Values.Remove("userid");//移除键值为userid的值       }       else       {         TimeSpan ts = new TimeSpan(-1, 0, 0, 0);         cok.Expires = DateTime.Now.Add(ts);//删除整个Cookie,只要把过期时间设置为现在       }       Response.AppendCookie(cok);     }   } 7. Cache对象: Count 获取存储在缓存中的项数 Add 将指定项添加到Cache对象 Item 获取或设置指定键处的缓存项 Get 从Cache对象检索指定项 Insert 向Cache对象插入项。使用此方法的某一版本改写具有相同Key参数的现有Cache项 Remove 从应用程序的Cache对象移除指定项 实例:为用户显示缓存中的某一项赋值 Cache.Add("Key1","Value",null,DateTime.Now.AddSeconds(60),TimeSpan.Zero,CacheItemPriority.High,onRemove); ——————————————————— Global.asax ——————————————————— Global.asax 文件响应ASP.NET和HTTP模块所引发的应用程序级别和会话级别事件的代码,运行时分析Global.asax文件并将其编译到一个动态生成的NET Framework类中,配置ASP.NET,以便自动拒绝对Global.asax文件的任何直接的URL请求,外部用户不能下载或查看其中的代码,它只在希望处理程序事件或会话事件时才创建它,不能用任何输出语句(比如Response.Write、HTML等),它用

 

你可能感兴趣的:(http)