WebFrom 【内置对象】— —跳转页面,页面传值

时间:2023-11-29 08:24:44

  Response    --  响应请求对象

传值

 Response.Redirect("url");     --  地址?变量= 值 

Response      -- Response响应对象, 将 http 响应数据发送的客户端

Redirect       -- 重定向,将客户端重定向到新的 URL,

       Response.Write("string");

  -- 将此字符串输出到页面的最顶部

  Request      -- 获取请求对象

接收

 string s = Request["key"];    -- key 为传过来的变量 

Request       -- 获取请求对象

                            key             -- 抓取从地址栏传过来的值

Restonse 与 Request 组合成 QueryString 传值方式。也称为 url传值,地址传值

1、不占用服务器内存

2、保密性差,传递值的长度有限

3、只能传 string 类型

Response.Redirect("Default2.aspx?a="+textBox1.Text);

     

        string  s = Request[a];

 label1.Text = s ; 

-- textBox1.Text 文本框的值

-- 必须在地址后加  ?变量=  

  Session  

传值

string  s =  textBox1.Text;

 session [ " a " ]= s ;

Response.Redirect(  " 地址 " );

取值

Label.Text = session[ " a " ].Tostring( );

清除

 sessin[ "a" ]=null ; 

特点

    Session里面能存储 Object 类型 

存贮在服务端,占用服务器内存,很好用,速度很快但不要滥用,容易溢出

不需要地址传值,同一服务器上可以随意访问

浏览器一旦关闭,那么会断开此条Session的连接

-- (直接打开页2,页2 无数据,页1打开页2,页2有数据,关闭页2再直接打开页2 ,页2无数据)

生命周期:20分钟,每一次新的请求都会刷新这个时间

 例  

        //发
Student s = new Student();
s.Name = "张三";
s.Sex = "男";
Session["a"] = s;
Response.Redirect("Default2.aspx"); //收
if (Session["a"] != null)
{
Student ss = Session["a"] as Student;
Label1.Text = ss.Name + ss.Sex; }

  Cookie  

与Session一模一样
      不一样的地方:Cookies是存储在客户端的 ,有可能被非法访问

传 string 类型,传汉字会因编码方式不同出现乱码

传值:

string  s =  textBox1.Text;

  Response.Cookies["aa"].Value = s;

Response.Redirect(  " 地址 " );            -- 只能是 string 类型

取值:
          string ss = Request.Cookies["aa"].Value;

-- 只能用 Request 取值

清除(将日期变为过期)

Response.Cookies["user"].Expires = DateTime.Now.AddDays(-1); 

1、判断、赋值

 void Button1_Click(object sender, EventArgs e)
{
//判断用户名密码是否正确
if (TextBox1.Text == "zhangsan" && TextBox2.Text == "")
{
Response.Cookies["user"].Value = TextBox1.Text; if (CheckBox1.Checked) //如果选保存密码
{
Response.Cookies["user"].Expires = DateTime.Now.AddDays();
} //改会话 cookies 为持久 cookies Response.Redirect("Default2.aspx");
}
else
{
Response.Write("用户名密码错误!");
} }

2、判断取值

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断是否有传值过来 ——--—— 此时不加 Value
if (Request.Cookies["user"] != null)
{
Label1.Text = Request.Cookies["user"].Value + "欢迎你!";
}
else
{
Response.Redirect("Default.aspx");
}
Button1.Click += Button1_Click;
} //退出按钮
void Button1_Click(object sender, EventArgs e)
{ //改变会话时间 关闭 cookies 会话
Response.Cookies["user"].Expires = DateTime.Now.AddDays(-);
Response.Redirect("Default.aspx");
}
}

if  (  Request.Cookies["user"] != null )

-- 判断是否有传值过来,此时不加 Value

Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);

--  改会话 cookies 为持久 cookies(加三天时间)

 Application 

  全局公共变量组

使用方法:与Session一样,传任意类型,

实际运用过程中 常被用作缓存

  存放位置:服务器

  特点:所有访问用户都是访问同一个变量,但只要服务器不停机,变量一直存在于服务器的内存中

不要使用循环大量的创建Application对象,可能会造成服务器崩溃。

  生命周期:永久,只要服务器不停机

string s = TextBox1.Text;

 Application["aaa"] = s;

Label2.Text = Application["aaa"].ToString( );

  

 ViewState 

  

用于记录页面的一些状态,就像人的病例,比如当执行提交后,网页可以保留一些已经输入的文本框而非清空

  webform中微软已经给我们做好了这个对象,自带此功能。

在查看源代码会发现一个自动加载的 aspNetHidden 标记,里面的隐藏域的东西就是 viewstate

.aspx 是由 .ashx  .html  组成, .ashx 写后台 .html 展示

!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form action="aaaa.ashx" method="post"> <!-- post 可理解我服务端传值-->
<!-- method="get"--> <!-- get 可理解为客户端传值 -->
<input type="text" name="txt1" />
<input type="submit" value="提交" /> </form>
</body>
</html>

html

.
<%@ WebHandler Language="C#" Class="aaaa" %>

using System;
using System.Web; public class aaaa : IHttpHandler { public void ProcessRequest (HttpContext context) { //所有的东西都要写在这个方法里
string s = context.Request["txt1"]; context.Response.Write(s);
context.Response.Redirect("HtmlPage.html"); } public bool IsReusable {
get {
return false;
}
} }

aspx