zoukankan      html  css  js  c++  java
  • WebFrom 【内置对象】— —跳转页面,页面传值

      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;
            
            }
    View Code

      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 == "1234")
            {
                Response.Cookies["user"].Value = TextBox1.Text;
    
                if (CheckBox1.Checked)  //如果选保存密码
                {
                    Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);
                }                           //改会话 cookies 为持久 cookies 
    
                Response.Redirect("Default2.aspx");
            }
            else
            {
                Response.Write("用户名密码错误!");
            }
    
    
        }
    View Code

    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(-10);
            Response.Redirect("Default.aspx");
        }
    }
    View Code

    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
  • 相关阅读:
    web复制到剪切板js
    thinkphp 级联菜单实现
    一次$.getJSON不执行的记录
    php实现ppt转图片,php调用com组件问题
    模拟生成一天温度数据,精确到秒
    ffmpeg推rtmp流到crtmpserver直播
    博客新窝CSDN站
    Android开源框架Afinal第二篇——庖丁解牛,深入调查
    Android开源框架Afinal第一篇——揭开圣女的面纱
    AndroidのListView之加载说
  • 原文地址:https://www.cnblogs.com/Tanghongchang/p/6885877.html
Copyright © 2011-2022 走看看