(1)Respose对象

  利用Response对象输出文字信息:

protected void Page_Load(object sender, EventArgs e)
{
  string message = "您好,欢迎光临本网站!";
  Response.Write(message);
}

  

  利用Response对象实现网页跳转:

protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect("http://www.easou.com");
}

  

  利用response对象像浏览器输出字符串:

protected void Page_Load(object sender, EventArgs e)
{
Response.Write(@"C:\Users\light\Desktop\Sample\Sample\Default.aspx");
}

  利用response对象停止输出:

protected void Page_Load(object sender, EventArgs e)
{
for(int ss=1;ss<30;ss++)
{
Response.Writer(i);
if(i==8)
Response.End();
}
}

  利用Response对象传递参数:

Response.Resirect("page.aspx?Num=4");

(2)Request对象

  QueryString的使用。使用QueryString来获取从上一个页面传递来的字符串参数。

    在Default.aspx中:

<div>
  <a href="page1.aspx?Num=1&Name=Liu">页面跳转</a>
</div>

    

    在page1.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
Response.Write("传递来的变量值:");
Response.Write("Num的值:" + Request.QueryString["Num"] + "Name的值" + Request.QueryString["Name"]);
}

  

  用类似的方法也可以获取Form、Cookies、SeverVaiables的值。调用方法是:Request.Collection["variable"](variable是要查询的关键字)。Collection包括QueryString、Form、Cookies、SeverVaiables四种集合。使用方式也可以是Request["variable"],与Request.Collection["variable"]的效果一样。省略了Collection,Request对象就会依照QueryString,Form,Cookies,SeverVaiables的顺序查找,直到发现了variable所指的关键字并返回其值,否则方法返回空值。

  Form集合:

    Request.Form["Name"].ToString();

  ServerVariable集合:

    Request.ServerVariable[参数类型];

  Cookies集合:

    写入数据:

      Response.Cookies[Cookie名称].Value=数据;

      Response.Cookies[Cookie索引号]=数据;

    读取数据:

      CookiesValue=Request.Cookies[Cookie名称].Value;

      CookiesValue=Request.Cookies[Cookie索引号].Value;

  移出某项数据:

    Response.Cookies.Remove("Cookie名称");

  移出所有数据:

    Response.Cookies.Clear();

  Saves的使用(将HTTP请求保存到磁盘):

protected void Page_Load(object sender, EventArgs e)
{
Request.SaveAs("G:/sample.txt", true);
}

 (3)Server对象

  MachineName的使用。获取本地服务器计算机名称。

protected void Page_Load(object sender, EventArgs e)
{
string machineName;
machineName = Server.MachineName.ToString();
Response.Write(machineName);
}

  HtmlEncode、HtmlDecode的使用。将<h1>HTML内容</h1>编码后输出到浏览器中,再利用HtmlDecode方法将编码后的结果还原。

protected void Page_Load(object sender, EventArgs e)
{
string str1;
str1 = Server.HtmlEncode("<h1>HTML编码</h1>");//编码
Response.Write(str1 + "<br/>" + "<br/>");
str1 = Server.HtmlDecode(str1);
Response.Write(str1);
}

  URLEncode、UrlDecode的使用。Server对象的URLEncode方法根据URL规则对字符串进行编码。Server对象的UrlDecode方法根据URL规则对字符串进行解码。URL规则是当字符串数据以URL的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。

protected void Page_Load(object sender, EventArgs e)
{
string str2;
str2 = Server.UrlEncode("http://www.easou.com");
Response.Write(str2+"<br/>"+"<br/>");
str2 = Server.UrlDecode(str2);
Response.Write(str2);
}

(4)ViewState对象

  使用ViewState对象计数。

    在Default.aspx中:

<div>
<a href="page1.aspx?Num=1&Name=Liu">页面跳转</a>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"/>
</div>

    在Default.aspx.cs中:

protected void Button1_Click(object sender, EventArgs e)
{
int count ;
if (ViewState["count"] == null)
count = 1;
else
count = (int)ViewState["count"] + 1;
ViewState["count"] = count;
Response.Write("你单间按钮的次数为:" + ViewState["count"].ToString());
}

  ViewState对象安全机制:

    1.哈希编码技术。哈希编码技术被称为是一种强大的编码技术。它的算法思想是让ASP.NET检 查ViewState中的所有数据,然后通过散列算法把这些数据编码。该散列算法产生一段很短的数据 信息,即哈希代码。然后把这段代码加在ViewState信息后面。

    哈希代码的的功能实际上是默认的,如果程序员希望有这样的功能,不需要采用额外的步骤, 但有时开发商选择禁用此项功能。以防止出现在一个网站系统中不同的服务器有不同的密钥。为了 禁用哈希代码,可以在Web.config文件中的<Pages>元素的enableViewStateMac属性。

      <pages enableViewStateMac="false"/>

    2.ViewState加密。尽管程序员使用了哈希代码,ViewState信息依然能够被用户阅读到,很多 情况下这是完全可以接受的。但如果ViewState里包含了需要保密的信息,就需要使用ViewState 加密。

      设置单独某一页面使用ViewState加密:

        <%Page ViewStateEncryptionMode="Always"%>

      设置整个网站使用ViewState加密:

        <pages viewStateEncryptionMode="Always"/>

  使用ViewState对象保留成员变量。基本原理:在Page.PreRender事件发生时把成员变量保存在ViewState中,在Page.Load事件发生时取回成员变量。

    在Default.aspx中:

<table>
  <tr>
    <td colspan="2">
      <asp:TextBox ID="TextBox1" runat="server" Width="100px" BackColor="Beige" />
    </td>
  </tr>
  <tr>
    <td>
      <asp:Button ID="Button1" runat="server" Width="50px" Text="保存信息" OnClick="Button1_Click"/>
    </td>
    <td>
      <asp:Button ID="Button2" runat="server" Width="50px" Text="读取信息" OnClick="Button2_Click"/>
    </td>
  </tr>
</table>

    在Default.aspx.cs中:

protected string TextBoxContent = "";
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)//回送
{
TextBoxContent = ViewState["TextBoxContent"].ToString();
}
} protected void Page_PreRender(object sender, EventArgs e)
{
ViewState["TextBoxContent"] = TextBoxContent;
} protected void Button1_Click(object sender, EventArgs e)
{
TextBoxContent = this.TextBox1.Text.ToString();//存储文本信息
this.TextBox1.Text = "";//清除信息
} protected void Button2_Click(object sender, EventArgs e)
{
this.TextBox1.Text = TextBoxContent;//读取TextBoxContent信息
}

  页面间信息传递:

    1)跨页传递。

      在Default.aspx中:

<div>
asp:TextBox ID="TextBox1" runat="server" Width="100px" BackColor="Beige" />
<br/>
<asp:Button ID="Button3" runat="server" Text="跨页传递" PostBackUrl="~/page1.aspx"/>
</div>

      在Default.aspx.cs中:

public string FullContent
{
get
{
return this.Title.ToString() + " " + this.TextBox1.Text.ToString();
}
}

      在page1.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
if (Page.PreviousPage != null)
Response.Write(Page.PreviousPage.Title.ToString());
Default default1=PreviousPage as Default ;
if (default1 != null)
Response.Write("<br/>" + default1.FullContent);//读取Default属性值
}

    2)使用QueryString

      在Default.aspx中:

<div>
<asp:Button ID="Button1" runat="server" Text="QueryString" OnClick="Button1_Click"/>
</div>

      在Default.aspx.cs中:

protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("page1.aspx?name=light&age=22");
}

      在page1.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
Response.Write("传递过来的信息为:" + "<br>");
Response.Write("name:" + Request.QueryString["name"].ToString() + "<br>");
Response.Write("age:" + Request.QueryString["age"].ToString());
}

(5)Cookies对象

  Cookie对象默认有效时间为20分钟,超过20分钟Cookie便会被清除。

  写入数据:

    Response.Cookies[Cookie名称].Value=数据;

    Response.Cookies[Cookie索引号]=数据;

  读取数据:

    CookiesValue=Request.Cookies[Cookie名称].Value;

    CookiesValue=Request.Cookies[Cookie索引号].Value;

  移出某项数据:

    Response.Cookies.Remove("Cookie名称");

  移出所有数据:

    Response.Cookies.Clear();

  创建一个cookie实例:

HttpCookie cookie = new HttpCookie("test");//创建一个cookie实例
cookie.Values.Add("Name", "周周");//添加要存储的信息,采用键/值结合的方式
cookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(cookie);//把cookie加入当前的页面的Respose对象里

  获取cookie信息:

HttpCookie cookie2 = Request.Cookies["test"];
string name1;//声明一个变量用于存储cookie信息
if (cookie2 != null)//判断cookie是否为空
{
name1 = cookie2.Values["Name"];
Response.Write("<br><br>保存的用户名:" + name1);
}

  修改cookie值:

    int counter = 0;
if (Request.Cookies["counter"] == null)
{
counter = 0;
}
else
{
counter = counter + 1;
}
Response.Cookies["counter"].Value = counter.ToString();
Response.Cookies["counter"].Expires = System.DateTime.Now.AddDays(1);

  删除一个cookie:

            HttpCookie cookie3 = new HttpCookie("test");
cookie3.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie3);

  删除当前域中的所有cookie:

            HttpCookie cookie4;
int limit = Response.Cookies.Count;
for (int i = 0; i < limit; i++)
{
cookie4= Request.Cookies[i];
cookie4.Expires = DateTime.Now.AddYears(-1);//设置过期
    Response.Cookies.Add(cookie4);//覆盖
   }
for (int i = 0; i < limit; i++)//判断cookie是否为空
   {
cookie4 = Request.Cookies[i];
name = cookie4.Values["Name"];
Response.Write("<br><br>保存的用户名:" + name);
}

(6)Session对象

  读取数据:

    数据=Session[变量名]或数据=Session[索引号]。

  写入数据:

    Session[变量名]=数据或Session[索引号]=数据。

  移出Session对象中某项数据:

    Session.Remove("命名对象");

    Session.RemoveAt("命名对象索引");

  移出Session对象中的所有数据:

    Session.RemoveAll();

    Session.Clear();

  应用举例:

    在Default.aspx中:

    <div>
<table>
<tr>
<td colspan="2" style="height:80px">
<asp:Label ID="Label1" runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:label ID="Label2" runat="server" Text="请选择要查看的学生姓名:"/>
</td>
</tr>
<tr>
<td rowspan="2" style="width:200px">
<asp:ListBox ID="ListBox1" runat="server" Width="100px" Height="100px"/>
</td>
<td style="width:120px;height:20px">
<asp:Button ID="Button1" runat="server" Text="详细信息:" OnClick="Button1_Click"/>
</td>
</tr>
<tr>
<td style="width:120px;height:100px">
<asp:Label ID="Label3" runat="server"/>
</td>
</tr>
</table>
</div>

    在Default.aspx.cs中:

        public class Student
{
public string StuName;
public string StuAge;
public string StuScore;
public Student(string stuName, string stuAge, string stuScore)
{
StuName = stuName;
StuAge = stuAge;
StuScore = stuScore;
}
} protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//定义Student对象
Student student1 = new Student("李米", "24", "89");
Student student2 = new Student("刘宇", "22", "95");
Student student3 = new Student("吴雅", "23", "86");
//Session存储studnet信息
Session["student1"] = student1;
Session["student2"] = student2;
Session["student3"] = student3;
//绑定数据到ListBox
this.ListBox1.Items.Clear();
this.ListBox1.Items.Add(student1.StuName);
this.ListBox1.Items.Add(student2.StuName);
this.ListBox1.Items.Add(student3.StuName);
}
//显示Session信息
this.Label1.Text = "SessionId:" + Session.SessionID.ToString() + "<br>";
this.Label1.Text += "Session数量:" + Session.Count.ToString() + "<br>";
this.Label1.Text += "Session模式:" + Session.Mode.ToString() + "<br>";
this.Label1.Text += "Session有效期:" + Session.Timeout.ToString();
} protected void Button1_Click(object sender, EventArgs e)
{
if (this.ListBox1.SelectedIndex == -1)
this.Label1.Text = "";
else
{
//获取Session键值
string key = "student" + (this.ListBox1.SelectedIndex + 1).ToString();
//获取student对象
Student student = (Student)Session[key];
//显示学生信息
this.Label3.Text += "学生姓名:" + student.StuName + "<br>";
this.Label3.Text += "学生年龄:" + student.StuAge + "<br>";
this.Label3.Text += "学生成绩:" + student.StuScore;
}
}

  Session存储。

    1.在客户端存储。默认状态下在客户端使用Cookie存储Session信息。有时为了防止用户禁用Cookie造成程序混乱,不使用Cookie存储Session信息。

    2.在服务器端存储。包括存储在进程内、存储在进程外、存储在SQL Server中。

(7)Application对象

  Application对象写入数据格式:

    Application[变量名]=数据;

    Application[索引号]=数据。

  Application对象读取数据格式:

    数据=Application[变量名];

    数据=Application[索引号]。

  删除Application对象中的某项数据:

    Application.Remove("命名对象");

    Application.RemoveAt("命名对象的索引");

  移出Application对象中的所有数据:

    Application.RemoveAll();

    Application.Clear();

  加锁:Application.Lock();解锁:Application.UnLock();使用时必须成对出现。

  使用实例:

    在Global.asax.cs中:

        protected void Application_Start(object sender, EventArgs e)
{
//应用程序启动时运行的代码
Application["count"] = 0;
} protected void Session_Start(object sender, EventArgs e)
{
//新会话启动时运行的代码
Application.Lock();
int count = Convert.ToInt32(Application["count"]);
Application["count"] = count + 1;
Application.UnLock();
}

    在Default.aspx.cs中:

        protected void Page_Load(object sender, EventArgs e)
{
//第一次加载页面
if (!IsPostBack)
{
string Count = Application["count"].ToString();
Response.Write("访问次数为:" + Count + "次");
}
}

ASP.NET内置对象二的更多相关文章

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

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

  2. Unit05: JavaScript对象概述 、 常用内置对象一 、 常用内置对象二 、 常用内置对象三

    Unit05: JavaScript对象概述 . 常用内置对象一 . 常用内置对象二 . 常用内置对象三 常用内置对象使用演示: <!DOCTYPE html> <html> ...

  3. Asp.net内置对象用途说明

    Asp.net 内置对象 1.Session当客户第一次请求网页,session创建.当客户最后一次请求页面,一段时间后,session销毁.默认30分钟. 一般存用户信息,即登陆成功后,在sessi ...

  4. ASP.NET 内置对象涉略

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

  5. 【ASP.NET 基础】ASP.NET内置对象

    准确地说,asp.net 并没有内置对象这一说,jsp 里确实把 request.response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已.在 Web 中处于中心的是 ...

  6. ASP.NET内置对象详解

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

  7. ASP.NET内置对象一

    ASP.NET提供了大量的对象类库,在这些类库中包含了许多封装好的内置对象,我们只需要直接使用这些对象的方法和属性,就能简单快速地完成很多的功能.Request对象.Response对象和Serve对 ...

  8. 初识 Asp.Net内置对象之Server对象

    Server对象 Server对象定义了一个于Web服务器相关联的类提供对服务器上的方法和属性的访问,用于访问服务器上的资源. Server对象的常用属性 属性   MarhineName 获取服务器 ...

  9. ASP.NET内置对象

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

随机推荐

  1. [Swift]枚举

    1. Swift的枚举的基本用法: 1) 和其它语言枚举的意义相同,就是用有限的一组值(不能是无限的)来表示一些特定的含义: 2) Swift使用关键字enum定义枚举类型,定义体中用case定义成员 ...

  2. MyEclipse运行时自动保存

    今天第一次用MyEclipse,我发现我的代码明明修改了,但运行结果发现总是修改前的代码结果.后来发现,是代码修改后必须保存,再点运行.这个功能明显不合适,所以需要更改MyEclipse的配置.红框是 ...

  3. 一个类似bootstrap的foundation

    提供了和BOOTSTRAP一样的功能,但明显比bootstrap有更好的效果 比如 <button> 直接就添加了样式了. http://www.foundcss.com/ Bootstr ...

  4. jQuery:find()及children()的区别

    1:children及find方法都用是用来获得element的子elements的,两者都不会返回 text node,就像大多数的jQuery方法一样. 2:children方法获得的仅仅是元素一 ...

  5. ReverseBits

    eclipse没问题,leetcode 1不能通过,超出int最大值了,但是怎么转无符号? /*Write a function that takes an unsigned integer and ...

  6. IOS中类似的。9.png图片

    图形用户界面中的图形有两种实现方式,一种是用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片. 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空 ...

  7. 导出api文档

    Export,选中项目或者需要导出api的类,右键 java-->javadoc configure,选择C:\Program Files\Java\jdk1.6.0_29\bin\javado ...

  8. OC基础(18)

    Category基本概念 Category注意事项 *:first-child { margin-top: 0 !important; } body > *:last-child { margi ...

  9. H264-AVS POC理解

    H264码流的输出顺序是编码顺序,所以在编码B帧的时候,由于B是双向预测,需要先编码后面编码帧P/I,这时候先输出I/P,后面才有B帧. 在解码段拿到相应的I/P帧后,不能马上丢到buffer lis ...

  10. Android的消息处理机制,handler,message,looper(一)

    当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件.在程序开发时,对于比较耗时的操作,通常会为其开辟一个单独的线程来执行,以尽可能减少用户的等待时间. ...