• ASP.NET 内置对象


    内置对象:
    1、Response - 响应请求对象
    Response.Redirect("Default2.aspx"); //页面重定向到Default2.aspx
    Response.Write("<script>window.open('Default2.aspx');</script>");//在页面中写入一句话并显示在页面上,这里写入了一个js方法,里面写入了一句打开新页面的语句,同样执行打开新页面,也就是Response.Write,执行后面括号里写入的语句

    2、Request - 接收请求对象
    Request["键"] - 放在等号右边,用来取值
    服务器控 件是根据ID来作为键
    表单元素 是根据name值来作为键


    QueryString - 页面地址拼接数据
    如:Default2.aspx?aaa=呵呵&bbb=嘿嘿&ccc=hoho

    1.后台Response.Redirect("Default2.aspx?key="+值);

    例:创建两个Web窗体,在第一个窗体中放一个文本框和一个按钮,第二个窗体中Response.Write写入一个Request["name"]接收请求对象

    在第一个窗体的文本框中输入东西,点击按钮,页面重定向到第二个窗口,并且将文本框中输入的内容赋值给名为name的接收请求对象

    窗口2的后台:

    Response.Write(Request["name"]);//在页面中写一个Request接收请求对象,接收传过来的值,name是给他起得名字

    也可以用其他的控件来接收Request["name"]中所赋的值,比如将Request["name"]里的值给一个文本框,添加文本框,后台Textbox1.Text=Request["name"];

    窗口1的后台:

    //页面中按钮点击,执行页面重定向,并且将文本框中的信息通过页面地址拼接数据一起传到定向页面
    void Button1_Click(object sender, EventArgs e)
    {
          Response.Redirect("Default2.aspx?name=" + TextBox1.Text);
    }


    2.Form表单会通过submit按钮自动提交数据,将数据提交给action设置的页面中去,method=“get”方式来提交

    method 提交方式
    action 目标页面  

    在From的括号里写  method=“get”  action="页面名字.aspx"

    get提交方式:会在地址栏窗口aspx?后面拼接一些系统生成的代码

    提交窗口不需要写后台,写一个文本框和一个按钮,直接在Form中写提交方法和重定向页面,点击submit按钮直接将文本框中的内容传到新页面,新页面后台通过id来获取传来的值

    窗口1:

    <form id="form1" method="get" action="Default2.aspx" runat="server">
        <div>
            <asp:TextBox ID="user" runat="server"></asp:TextBox><br />  /*ID为user*/
            <asp:Button ID="Button1" runat="server" Text="Button" />
        </div>
        </form>

    窗口2:将文本框的Text为通过窗口1的ID接收的值:TextBox1.Text = Request["user"];

    post提交方式 - 直接数据提交方式
    除了不在地址栏拼接数据,其它的没有任何区别

    就是将method="get" 的提交方式改为method="post" 提交,这种方法地址栏aspx?后面没有拼接数据

    3、Session
    就是一个临时保存数据的对象,保存在服务器
    可以理解为容器,变量

    可以存Object类型,一个连接为独立的一组,默认生命周期为20分钟,如果在这20分钟内重新进行数据提交或是页面刷新,都会重置这20分钟倒计时时间。

    如果Session["键"]里面没有内容的时候,使用时会抛出异常,所以一定要在使用session的值之前判断此是否为空。

    注意:Session不要过度使用,因为放的东西太大了,用户连接多了就会导致内存溢出,服务器崩溃;也不要不使用,会造成资源浪费,因为内存中的数据是最快速的;

    例:创建三个Web窗体,第一个为登录页面,两个文本框账号和密码,通过Session将账号密码存放,点击按钮,将两个文本框中的值在第二个窗体显示,第二个窗体设置一个按钮,点击打开第三个窗体,在第三个窗体中显示Session中的值

    第一个窗体:

    前端:

    <body>
        <form id="form1"  runat="server">
            <h1>&nbsp;</h1>
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br />
            <asp:Button ID="Button1" runat="server" Text="登 录" />
            <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        </div>
        </form>
    </body>

    后端:

    void Button1_Click(object sender, EventArgs e)
        {
            //将文本框中的值放进Session中,在新开的页面接收这个Session中的值
            if (TextBox1.Text == "Admin" && TextBox2.Text == "123")
            {
                Session["code"] = TextBox1.Text;
                Session["pwd"] = TextBox2.Text;
                Response.Redirect("Default2.aspx");
            }
            else 
            {
                Label1.Text = "用户名密码有误!";
            }
        }

    第二个窗体:

    前端:

    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:Button ID="Button1" runat="server" Text="注 册" />
        </div>
        </form>
    </body>

    后端:

    protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
            if (Session["code"] != null&&Session["pwd"]!=null)//要进行判断是否为空
            {
                Label1.Text = "您的账号是:" + Session["code"].ToString();
                Label2.Text = "您的密码是:" + Session["pwd"].ToString();
            }
            else 
            {
                Response.Redirect("Default1.aspx");
            }
            //此页面如果不关闭。默认20分钟后此页面传过来的值则会无效
        }
    
        void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("Default3.aspx");
        }

    第三个窗体:

    前端:

    <body>
        <form id="form1" runat="server">
        <h1>注册成功</h1>
            账号:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
            密码:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        </form>
    </body>

    后端:

    protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["code"] != null && Session["pwd"] != null)
            {
                Label1.Text = Session["code"].ToString();
                Label2.Text = Session["pwd"].ToString();
            }
            else 
            {
                Response.Redirect("Default1.aspx");
            }
        }

    4、cookie
    临时保存数据的一个对象,保存在客户端
    不要保存很重要的信息,因为会随时被用户删掉,有些程序会自动抓取用户电脑上的cookie信息,如果密码保存进去了,就会被抓取到

    赋值:使用Response对象
    1、Response.Cookies.Add(new HttpCookie("键", 值));

    2、Response.Cookies["键"].Value = 值;

    3、制作持久Cookie :
    Response.Cookies["键"].Expires = DateTime.Now.AddDays(7);//设置7天后过期

    取值:使用Request对象
    Request.Cookies["UserName"].Value

    例:创建两个窗体,一个作为登录窗体,两个文本框和一个单选框及一个按钮,单选框用来记录Cookie的保存时间,另一个窗体将Cookie中的值显示,添加一个清除Cookie的按钮

    窗体一:

    前端:

    <body>
        <form id="form1" runat="server">
        <h1>用户登录</h1>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br />
            <asp:Button ID="Button1" runat="server" Text="登 录" />
            <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
            <br /><br />
            <asp:CheckBox ID="CheckBox1" runat="server" Text="3天自动登录" />
        </form>
    </body>

    后端:

    void Button1_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text == "马志杰" && TextBox2.Text == "123")
            {
                Response.Cookies["user"].Value = TextBox1.Text;
                if (CheckBox1.Checked)//如果单选框是选中的 
                {
                    //这个cookie三天到期,也就是保存三天
                    Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);
                }
                Response.Redirect("Default6.aspx");
            }
            else 
            {
                Label1.Text = "账号密码有误!";
            }
            
        }

    窗体二:

    前端:

    <body>
        <form id="form1" runat="server">
        <h1>欢迎界面</h1>
            <asp:Label ID="Label1" runat="server" Text="Label">
            </asp:Label><asp:Button ID="Button1" runat="server" Text="退 出" />
        </form>
    </body>

    后端:

     protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
            if (Request.Cookies["user"] != null)
            {
                Label1.Text = Request.Cookies["user"].Value + "小盆友,不欢迎你回来!";
            }
            else 
            {
                Response.Redirect("Default5.aspx");
            }
        }
    
        void Button1_Click(object sender, EventArgs e)
        {
            Response.Cookies["user"].Expires = DateTime.Now.AddDays(-2);
            Response.Redirect("Default5.aspx");
        }

    5、Appliction
    临时保存数据的一个对象,保存在服务器端
    全局变量
    所有人访问的都是同一个对象
    赋值:
    Application["键"] = 值;
    取值:
    Application.Get("键")

  • 相关阅读:
    linux之卸载软件
    linux之挂载硬盘
    windows MySQL 5+ 服务手动安装
    深刻理解Python中的元类(metaclass)
    Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
    WSGI、flup、fastcgi、web.py的关系
    Windows下python环境变量配置
    External file changes sync may be slow: Project files cannot be watched (are they under network mount?)
    as。 对象和数组
    为什么for不能有序遍历数组的所有元素?(Array的设计原理)
  • 原文地址:https://www.cnblogs.com/zyg316/p/5683275.html
Copyright © 2020-2023  润新知