准确地说,asp.net 并没有内置对象这一说,jsp 里确实把 request、response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已。
在 Web 中处于中心的是 Web 服务器,用来处理客户端的 HTTP 请求。由于 HTTP 是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应。
 
1.【Request】
Request封装了客户端请求信息。Request的常见属性如下:
 属性名  值类型  说明
 ApplicationPath  String  获取请求的资源在网站上的根路径
 ContentEncoding  Encoding  设置请求对象的编码
 Cookies  HttpCookieCollection  客户端发送到服务器的Cookie集合
 QueryString  NameValueCollection  当前请求的查询字符串集合
 UrlReferrer  Url 获取用户由哪个url跳转到当前页面
 
2.【Response】
Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。
 
Response常用属性如下:
 属性名  值类型  说明
 Charset  string  表示输出流的所使用的字符集
 ContentEncoding  Encoding  设置输出流的编码
 ContentLength  Int  输出流的字节大小
 ContentType  string   输出流的HTTP MIME类型
 Cookies  HttpCookieCollection  服务器发送到客户端的Cookie集合
 Output  TextWriter  服务器响应对象的字符输出流
 RedirectLocation  string  将当前请求重定向
 
Response常用方法
 属性名  返回值类型  说明
 AppendCookie  void  向响应对象的Cookie集合中增加一个Cookie
 Clear  void  清空缓冲区中的所有内容输出
 Close  void  关闭当前服务器到客户端的连接
 End  void  终止响应,并且将缓冲区中的输出发送到客户端
 Redirect  void  重定向当前请求
 
3.【Server】
Server对象是用于获取服务器的相关信息的对象。它常用方法如下:
 属性名  返回值类型  说明
 Execute  void  执行指定的资源,并且在执行完之后再执行本页的代码
 HtmlDecode  string  消除对特殊字符串编码的影响
 HtmlEncode  string  对特殊字符串进行编码
 MapPath  string  获取指定相对路径在服务器上的物理路径
 Transfer  void  停止执行当前程序,执行指定的资源
 UrlDecode  string  对路径字符串进行解码
 UrlEncode  string  对路径字符串进行编码
 
4.【Session】
Session对象用来保存与特定用户相关的信息,Session中的数据保存在服务器端,在客户端需要的时候创建Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。
在asp.net中Session的默认生命周期是20分钟,也就是当我们在9:00的时候设置了一个Session,如果在9:20之前客户端没有任何请求,那么它的生命周期就到9:20分钟结束。但是一旦用户在9:19又向服务器发送了一个请求,那么这个Session现在的生命周期就是在当前时间的基础上再加上20分钟,也就是此时这个Session的生命周期是到9:39结束。
 
Session具有以下特点:
Session中的数据保存在服务器端;
Session中可以保存任意类型的数据;
Session默认的生命周期是20分钟,可以手动设置更长或更短的时间。
 
假设我们要设置一个Session用来保存用户名,这个Session的名字是“UserName”,值是“sa”,代码如下:
Session[“UserName”]=”sa”;
 
一个网站里用到 Session 的地方肯定不止一个,所以在设置和获取 Session 的时候通过 Session 的名在来操作,并且 Session 被设置成能存储任意类型的对象(即 Object 类型),所以获取 Session 的时候要根据设置的时候的实际类型进行响应的强制类型转换(当然如果在 Session 中存放像 int/byte/short 这样的数据类型,获取 Session 的值算是一种拆箱操作而不是强制类型转换),对于上面的 Session ,获取 Session 的值的代码如下:
string username=(string)Session[“UserName”];
 
对于上面的代码,有个问题需要注意:当没有设置相应的 Session 或者 Session 因为超过生命周期而被销毁时,上面的代码有可能抛出异常。我们可以先判断是否存在指定名称的 Session,如果不存在就不用获取了,仅当存在的情况下才获取 Session 的值,上面的代码可以改进如下:
string userName;
if(Session["UserName"]!=null)
{
//当指定名称的Session存在时,获取指定Session的值
userName=(string)Session["UserName"];
}
5.【Cookie】
Cookie 对象和 Session 对象一样也是用来保存特定的用户相关的数据,不过 Session 不同的是 Cookie 保存在客户端而不是服务器上,每次客户端发出请求的时候都会把 Cookie 一起发送到服务器,服务器每次响应客户端请求的时候会重新把 Cookie 发送到客户端保存。
 
Cookie 保存数据有以下特点:
Cookie 中的数据保存在客户端;
Cookie 中只能保存字符串类型的数据,如果需要在Cookie中保存其它类型数据,需要将其转换成字符串类型后保存;
Cookie 也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。
 
同 Session 的情况一样,有可能在一个网站中使用到的 Cookie 不止一个,我们仍通过 Cookie 的名称来区分不同的 Cookie。
设置 Cookie 的过程就是在服务器的响应对象 Response 的 Cookie 集合中增加一个 Cookie ,Response 对象会把这个 Cookie 集合中的所有 Cookie 都发送客户端。代码如下(仍以保存用户名为例):

HttpCookie cookie = new HttpCookie("UserName", "sa");
Response.Cookies.Add(cookie);
 获取 Cookie 就是从客户端的请求对象中找到对应名称的 Cookie,当然也有可能出现 Cookie 不存在的情况,所以在获取之前也需要检查指定名称的Cookie是否存在,如下:

 string userName;
if (Request.Cookies["UserName"] != null)
{
userName = Request.Cookies["UserName"].Value;
}

6.【Application】

Application 和 Session 存储的数据类型和存储位置一样,都是存放 Object 类型的数据(也就是任意类型),并且存放在服务器上,不同的 Application 中的数据可以由网站中所有的用户来设置或者获取。并且 Application 中存放的数据没有时间限制,除非我们手动删除或者服务器重新启动,否则存放的数据都会丢失。
下面是 Session、Cookie 和 Application 的区别:

 名称  使用范围  存储位置  存放数据类型  生命周期
 Session  特定用户  服务器  Object,也就是任意类型  有,可以自行设置
 Cookie  特定用户  客户端  String,也就值字符串  可以自行设置
 Application  所有用户  服务器  Object,也就是任意类型  无
 
7.【<%%>表达式】
<%%>用来编写程序的代码部分。在其中可以声明变量和方法。如下:

 <%
string name = Request.Form["userName"].Trim();
string userName;
if (Request.Cookies["UserName"] != null)
{
userName = Request.Cookies["UserName"].Value;
}
%>

在<%%>就是符合C#要求的代码。

8.【<%=%>表达式】
<%=%>是用来向输出流中变量的值。其用法如下:

<% int i = 6; %>
<%=i %>
 
Response.Write()输出和<%=%>输出最后的效果是一样的。
 
 

【ASP.NET 基础】ASP.NET内置对象的更多相关文章

  1. ASP,ASP.net,JSP语法、内置对象对比

    1 各自的HelloWord版本 1.1 ASP <%  Response.Write("hello asp") %> 文件名为test.asp. 1.2 ASP.ne ...

  2. java基础篇---JSP内置对象详解

    在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用.   No. 内 ...

  3. ASP.NET内置对象

    ASP.NET中有六个内置对象 Response:向客户端输出信息或设置客户端输出状态. Request:获取客户端信息. Server:访问服务器的方法和属性. Application:用于将信息保 ...

  4. ASP.NET 内置对象涉略

    一.ASP.NET中内置的常用对象的介绍 本文列举了ASP.NET 的八个内置对象,其中前五个是比较常用的. 1.Response Response 对象用于从服务器向用户发送输出的结果. Write ...

  5. ASP.NET常见内置对象(一)

    在web开发中,数据库都是通过HTTP协议来传输的.但HTTP是一个无状态协议,不会保留数据的状态和信息. 为了解决问题.各种开发语言都提供了状态管理功能. 状态管理是在同一页或不同页的多个请求发生时 ...

  6. 初识 Asp.Net内置对象之Response对象

    Response对象 Respose对象用于将数据从服务器发送回浏览器.它允许将数据作为请求的结果发送到浏览器,并提供有光响应的信息,可以用来在页面中输入数据,在页面中跳转,还可以传递各个页面的参数, ...

  7. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  8. ASP.NET的六大内置对象

    ASP.NET 六大内置对象(System.Web.UI.Page类): 1.Response 2.Request 3.Server 4.Application 5.Session 6.Cooki R ...

  9. ASP.NET内置对象详解

    ASP.NET的内置对象介绍 1.Response 2.Request 3.Server 4.Application 5.Session 6.Cookie Request对象主要是让服务器取得客户端浏 ...

随机推荐

  1. 启动Eclipse 弹出"Failed to load the JNI shared library jvm.dll"错误

    启动Eclipse 弹出"Failed to load the JNI shared library jvm.dll"错误,如下 原因:eclipse的版本与jre或者jdk版本不 ...

  2. yii2时间日期控件的使用[转]

    注:原文http://www.manks.top/yii2-datetimepicker.html 有更改 1.安装 进入到项目文件中D:\phpStudy\WWW\yii2blog    使用cmd ...

  3. Linux 安装 Nginx

    1. nginx的安装: 开始学习如何安装nginx,首先安装必要的软件: # yum install libtool # yum install -y gcc-c++ # yum install z ...

  4. Mac OSX 下用 Homebrew 安装 MongoDB 并配置到 WebStorm 中

    1. 安装 Ruby OSX 操作系统内置 Ruby,但如果没有 Ruby,则需先输入以下命令安装能够进行多版本ruby环境安装.管理和切换的命令行工具 RVM. 1.1 安装 RVM 打开终端输入以 ...

  5. [性能] Bean拷贝工具类性能比较

    Bean拷贝工具类性能比较 引言 几年前做过一个项目,接入新的api接口.为了和api实现解耦,决定将api返回的实体类在本地也建一个.这样做有两个好处 可以在api变更字段的时候保持应用稳定性 可以 ...

  6. sublimeText插件推荐

    工欲善其事必先利其器.sublimeText是前端开发工程师的一把利器,它的优点包含: 随时保留文件的修改 Goto Anything,智能搜索; 简单全面的插件体系; 代码地图; 快速启动 ... ...

  7. HTML 5 中的标准属性

    HTML 全局属性 HTML 属性赋予元素意义和语境. 下面的全局属性可用于任何 HTML 元素. (5)= HTML5 中添加的属性. 属性 描述 accesskey 规定激活元素的快捷键. cla ...

  8. .NET破解之PDFdo转换器

    无意中看到一个PDF转换器,叫PDFdo,看起了功能挺多的,于是想把它破了. 下载 官网:http://www.pdfdo.com/ 安装 安装后,只有一个exe应用程序,如果是.NET 程序应该有很 ...

  9. 再议使用Python批量裁切栅格

    曾经写过<使用Python脚本批量裁切栅格>,但今天又遇到这个情况则发现了问题.我们遇到的实际问题往往是有一个需要裁剪的影像(大块的),另外有一个矢量面,现在需要按矢量面每一个要素进行裁剪 ...

  10. iOS 模仿微信的照片选择器

    功能和微信的基本一致. 这个选择器使用了循环方式,保证在浏览图片时内存中只加载最多3张图片.稳定的内存大小,可定义图片尺寸.详细说明在github. 下载地址: https://github.com/ ...