6.6 Web程序中网页间数据传递方法小结

2016-02-19 14:04 39 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享6.6 Web程序中网页间数据传递方法小结,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

介绍

我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页。

Response.Redirect

让我们首先看一看如何使用Response.Redirect方法传递数据。这是它们之中最简单的方法。在文本框中输入一些数据,并且当你输入完成数据后,按下Respose.Redirect按钮。我们会得到一个提示,有时我们想在catch程序中传递另一个网页,意味着捕捉到例外程序并且向另一个网页传递。如果你试图这样做,它会给你一个System.Threading例外程序。因为你想遗留下一个线程向另一个网页传递数据,所以这个例外程序就会被抛出。

Response.Redirect("WebForm5.aspx",false);

这个语句告诉编译器定位到WebForm5.aspx,这里的false意味着在当前网页不能结束你正在做的事情。应该看一看线程发布命令的System.Threading类。在下面,看一看按钮事件的C#代码。txtName文本控件的名字,文本框的内的值传递到一个叫做WebForm5.aspx的网页。在?之后的Name符号只是一个临时的响应变量,这个变量保持着文本的数值。

private void Button1_Click(object sender, System.EventArgs e)

{

// Value sent using HttpResponse

Response.Redirect("WebForm5.aspx?Name="+txtName.Text);

}

好的,到这种观点为止,你使用Response发送了数值。刚刚,在此我收集到了这些数值,所以在WebForm5.aspxpage_Load事件中,写入这些代码。首先,我们检查到输入的值不为null。如果不是这样,我们只是简单地在网页上使用Label控件显示数值。注意:如果你使用Response.Redirect方法来传递这些数值,所有这些数值在浏览器的URL中都是不可见的。你绝不能使用Response.Redirect来传递信用证号码和机密信息。

if (Request.QueryString["Name"]!= null)

Label3.Text = Request.QueryString["Name"];

Cookies

接下来使用Cookies。Cookies在服务器端创建,但是客户端省略。在此 Cookies 按钮的click事件中,写入以下代码:

HttpCookie cName = new HttpCookie("Name");

cName.Value = txtName.Text;

Response.Cookies.Add(cName);

Response.Redirect("WebForm5.aspx");

首先,创建一个cookie命名为cName。既然一个cookie实例可以拥有许多数值,告诉编译器这个cookie持有Name数值。我们将它赋值给TextBox并且最结后将它加入Response流,再使用Response.Redirect方法传递给其它网页。

让我们看一看如何得到被另一个网页传递的cookie数值。

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

Label3.Text = Request.Cookies["Name"].Value;

如你所看到的,象我们以前做一的一样正是使用同一种方法,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注一些浏览器不接收cookies。

Session Variables

接下来我们看一看session变量,这些变量由服务器来处理。第一个响影一从客户端传递到服务器,Sessions就创建了,并且当用户关闭浏览器窗口或者一些异常操作发生,session就会结束。给你一些可以使用session变量来传递数值的方法。在下面你看到为用户创建的Session和 Name是关键字,也如知名的Session关键字一样,关键字被赋给TextBox数值。

// Session Created

Session["Name"] = txtName.Text;

Response.Redirect("WebForm5.aspx");

// The code below shows how to get the session value.

// This code must be placed in other page.

if(Session["Name"] != null)

Label3.Text = Session["Name"].ToString();

Application Variables

有时,我们需要存取来自网页任何地方的数值。因为那样,可以使用Application变量。这里有一小段代码,这段代码显示如何做到那些事情。一旦创建Application变量并且为其赋值,在应用程序的任何地方都可以重新得到它的值。

// This sets the value of the Application Variable

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

Application["Name"] = txtName.Text;

Response.Re

direct("WebForm5.aspx");

// This is how we retrieve the value of the Application Variable

if( Application["Name"] != null )

Label3.Text = Application["Name"].ToString();

HttpContext

可以使用HttpContext从网页中重新得到数值。通过使用方法的属性获得那些数值。既然它们易于编写代码和修改,使用属性是一种好方法。在你的第一个网页中,制造一个属性,这个属性可以返回TextBox的值。

public string GetName

{

get { return txtName.Text; }

}

我们使用Server.Transfer来将此控件发送到一个新网页。注意:Server.Transfer仅仅将此控件传递到新的网页并且不重新定位该网页,这意味着你会看到在URL中旧网页的地址。简单地在Server.Transfer按钮单击事件,并且增加下列代码。

Server.Transfer("WebForm5.aspx");

现在,让我们定位网页,数值就传递到该网页上,在这种情况下使用的该网页是webForm5.aspx。

// You can declare this Globally or in any event you like

WebForm4 w;

// Gets the Page.Context which is Associated with this page

w = (WebForm4)Context.Handler;

// Assign the Label control with the property "GetName" which returns string

Label3.Text = w.GetName;

Special Note

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

特别注意 与你看到的一样,从一个网页向别一网页传递数值时有不同的方法。每一个方法有它自己的优点也有其缺点。所以,当你传递数值时,选择好你所需要的所以你就会有一种好方法,这种方法对你是最为可行的。

来源:https://www.tulaoshi.com/n/20160219/1606094.html

延伸阅读
标签: PHP
原文转自:http://www.richweb.cn/showthread.php?t=5 JSON(Javascript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于Javascript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于...
标签: Web开发
代码如下: Usertable user=null; Session session=HibernateSessionFactory.getSession(); String sql="from Usertable as user where user.username=?"; Query q=session.createQuery(sql); q.setString(0,username); List l=q.list(); Iterator ite=l.iterator(); if(ite.hasNext()){ user=(Usertable)ite.next(); } return user;...
有些数据库文件在打开的时候要求输入密码,在程序中自动传递密码的方法为: 1.把Table及DataSource设置好,指向该数据库,Table的Active为false; 2.添加Session-AddPassWord(12345); //12345为打开该数据库的密码 Table-Active=true; //就可以打开该表了 3.移去密码:Session-RemovePassword(12345);
第一步:编写服务器的应用程序 首先在Delphi的IDE中选择File|New|Other,然后在WebServices页面中选择Soap Server Application图标。 然后在New Soap Server Application对话框中选择Web App Debugger executable。 点击OK按钮之后,Delphi会自动生成一个WebModule,在这个Module中会包含三个WebServices的控件。 然后然...
  风花雪月 e梦情缘 网络代号:wnhoo or sos_admin 网名:e梦缘 Mail: wnhoo@163.com 功能: 第一次執行的時候…會開啟project1.exe 第二次執行的時候…不開啟project1.exe(因程式已執行)…但会将參數會丟給已執行的project1.exe 第3次執行的時候…不開啟project1.exe(因程式已執行)…但会将參數會丟...

经验教程

968

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部