ASP NET页面数据传递方法分析
页面数据传递的方法分析
摘要:在web应用开发中,web页面间经常需要进行少量或大量的数据传输,目前web页面数据传输有许多不同的方法,各自也存在着一些问题和不足。
本文主要以这个当前比较流行和常用的编程工具为例,讨论各种web页面数据传递方法,比较它们的优缺点,希望对web程序开发人员有所帮助。
关键词:;页面数据传输;方法
中图分类号:tp311文献标识码:a文章编号:1007-9599 (2013) 07-0000-02
1引言
是目前比较热门的开发工具。
它的前身是鼎鼎大名的asp 程序。
由于asp在web应用开发上存在着种种先天不足,2000年微软对asp低层架构进行了大幅度修改,诞生了.net架构。
在web应用开发中,因为强大的多平台适用性受到越来越多的程序员的青睐。
在进行网页应用程序开发时需要处理很多web页面间的数据传递。
因为数据传递的方式涉及到整个系统整体设计以及程序运行的安全性和合理性,所以在asp的编程思维中,开发程序时的数据传递普遍采用post方法通过定义全局变量把值从页面传送到服务器。
而在中,开发程序则有多种不同的数据传递方式,下面一一进行阐述和分析。
页面数据传递方式探讨
2.1用查询串实现页面数据传递
querystring方式是最为常用的一种页面数据传递方式,用过asp的用户可以很明显找到它们之间的相似之处,都是将目标数据放在网页的地址栏中进行传递。
例如:
1234567.asp?pn=abcdefg.那?号后面的就是querystring。
而url 的querystring参数就是变量pn等于abcdefg。
这种方式的特点比较容易实现,服务器端开销也小,但缺点也非常明显。
它在实现传递数据的过程中,数据内容在url栏中是以明文方式显示的,数据的安全性非常差,因此该方法仅仅适合用在传递安全性不重要的数值。
2.2借助隐藏文本框实现数据传递
使用隐藏文本框实现数据传递,是在网页页面加入隐藏控件,这样数据就不会显示在用户的浏览器上,而且通过使用隐藏文本框可以储存任何与网页有关的信息。
使用隐藏文本框存入数值时可以设置属性为hidden的文本框.而变量value=数值,那么接收数值时用:变量=hidden控件.value。
这样通过一个中间转换的方法就可以很方便的实现页面之间的数据传递,而且也不需要耗费服务器端的资源,同时最明显的优点是隐藏性好,因为所有的用户的浏览器都可以支持隐藏文本框的控件。
但是同样该方法也有明显的缺点,主要是它仅仅支持简单的数值,对比较复杂的存贮数值无能为力,并且会收到用户端的防火墙或者代理的阻止。
2.3使用cookie方式实现数据传递
cookie是服务器存放在客户端的缓存信息,当客户浏览网站,web 服务器发送小段信息存放在客户端,它可以是文本或者图片等信息,当客户再次访问相同页面时web服务器会判断是否有上次的上次访问的cookie资料,再传递特定页面内容给客户端。
因此,可以利用cookie方式来实现数据传递。
使用该方法的优点是:cookie 因为是存在在客户端因此不耗费服务器端的资源,并且实现起来非常简单,但同样缺点是:可以存储的信息非常少,数据是透明可读的,所以并不适合保存加密性文件;并且cookie并不对所有浏览器开放,而且用户还可以设置成禁止接收cookie信息或者删除,所以也不能用于保存关键数据。
2.4使用表单方式实现数据的传递
开发人员在web页面上制作表单(form),目的是用户在客户端输入数据,通过表单(form)发送到服务器,服务器端的表单(form)页面里就可以接收到相应数据,也就是服务器端的的action页面中用request对象来接收客户端所发送的数据。
利用form页面的文本框来接收用户数据的输入,通过submit按钮提交后在targetweb.aspx页面中使用request来接收数据。
这种方法比较适合用于提交大量的数据,但同样存在安全性差的缺点。
2.5使用session对象实现数据的传递
session对象是记录客户端浏览器的变量,服务器会对每一个访问者的浏览器发送一个session对象,它的作用是用来存储对访问者在访问时打开的网页中可用的变量和对象。
实现方法是:
session(“变量名”)=数据。
对于session对象实现数据的传递的优点是很容易实现,并且可以能够保证安全和稳定,主要作用于iis重启和辅助进程重启,并且该方法可以在多进程中使用。
但是缺点是耗费服务器端的资源,因此并不适合存储大量的数据信息。
2.6使用application对象实现数据的传递
application对象是用来记录所有客户端浏览器共享的变量信息,无论有多少浏览者同时存取网页,都只会产生一个application 对象实例。
同时,该变量是全局性,所有客户端都共享一个变量,因此,只要被定义,就会对整个程序都产生影响。
实现方式是服务器端存入数据时,把值覆盖到application变量里:
application[“变量名”]=数值;客户端访问数据用:变量
=application[“变量名”]而当不再需要application时,用null 就可以清除。
application对象的优点是方便快速使用,设置好全局变量,就可以在应用程序中供所有访问者使用。
但它的缺点和session类似,耗费系统资源较多,使得服务器的负载过重,而且如果因为服务器端的故障,那么数据就会丢失。
因此在使用时要做好备份。
3结束语
随着计算机技术和网络技术的飞速发展,网络开发技术和环境每天都在进步和改变。
通过介绍页面数据传递的这些方法,用户可以应用在不同的环境和目标中应用各种方式。
比如在页面间
简单数据传递可使用查询串和表单方式实现。
cookie的传递是存放string类型的数据。
application对象和session对象适用于流量比较大的网页,但是操作比较复杂,耗费系统资源比较多,使用结束后还需要清理,否则大量数据可能会导致服务器的瘫痪。
开发者在开发应用程序中,需要抱着具体问题具体分析的策略,找出最适合的选择,从而提高程序的合理运用和优化。
参考文献:
[1]周敏的授权机制应用研究[j].电脑爱好者,2006,3.
[2]白兰环境下两种web报表解决方案的[j].编程爱好
者,2006,12.
[3]孙屏实用操作[d].现代计算机,2001,7.
[作者简介]陈其嶙(1977-),男,广东省湛江市人,湛江师范学院基础教育学院计算机科学系教师,助教,硕士学位,主要研究方向:c#程序设计,网页设计。
[基金项目]2012年度湛江市非资助科技攻关项目“多目标优化方法在物流系统优化问题中的应用研究”,项目编号:2012c3101019。
ASP传递参数方法汇总
asp传参数的方法dadaV2016.02.15asp传参数的方法常用的有三种:1、用户端用http方式传参数到服务器(FORM表单方式)用表单的action属性,将参数传递到接收的文件中。
<form action="test.asp" method="get">//test.asp 为接收参数的页面,method为传送方式,分post方式和get方式。
2、用链接传递参数 <a href='test.asp?name=bansi&sex=man'> 会员</a>href后面的属性首先跟的是一个提交到后台处理的asp文件,"?"后面跟的是参数,参数值是在"="后面。
当多个参数时,使用"&"将参数隔开。
这里就有两个参数name与sex,参数值分别为bansi与man。
比如 <a href="test.asp?action=check<%=rs("字段名")%>">使用mid(request("action"),1,5)获取 check使用mid(request(action),5) 获取<%=rs("字段名")%>3、使用<input>标签方式设置为隐藏方式传递一个参数<input type="hidden" name="id" value="<%=request.querystring("id")%>">下一页面使用 request.form("id")获取id参数asp的参数传递和获取设计交互式网页离不开接收用户的输入信息,也即参数传递和获取。
ASP页面传值
页面之间传递值的几种方式页面传值是学习初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。
但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer。
一、QueryStringQueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。
如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。
但是对于传递数组或对象的话,就不能用这个方法了。
这种方法的优点:1.使用简单,对于安全性要求不高时传递数字或是文本值非常有效。
这种方法的缺点:1.缺乏安全性,由于它的值暴露在浏览器的URL地址中的。
2.不能传递对象。
使用方法:1.在源页面的代码中用需要传递的名称和值构造URL地址。
2.在源页面的代码用Response.Redirect(URL);重定向到上面的URL地址中。
3.在目的页面的代码使用Request.QueryString["name"];取出URL地址中传递的值。
例子:(1)a.aspxprivate void Button1_Click(object sender, System.EventArgs e){string s_url;s_url = "b.aspx?name=" + Label1.Text;Response.Redirect(s_url);}(2)b.aspxprivate void Page_Load(object sender, EventArgs e){Label2.Text = Request.QueryString["name"];}二、Session想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。
aspx页面传值--7种方式
aspx页⾯传值--7种⽅式1、get⽅式发送页<form id="form1" runat="server"><div><a href="WebForm2.aspx?name=5">调转到Form2</a><asp:Button ID="button2" Text="跳转页⾯" runat="server" onclick="button2_Click"/></div></form>protected void button2_Click(object sender, EventArgs e){Response.Redirect("WebForm2.aspx?name=5");}接受页 bel1.Text = Request["name"];//bel2.Text = Request.Params["name"];//bel3.Text = Request.QueryString[0];2、post⽅式a\不带 runat="server"形式发送页<form id="form2" action="WebForm2.aspx" method="post"><input name="txtname" type="text" value="lilili" /><input type="submit" value="提交⽹页" /></form>接受页 bel1.Text =Request.Form["txtname"];b\带 runat="server"发送页<form runat="server" id="form3"><input id="btnTransfer" type="button" onclick="post();" runat="server" value="跳转" /></form><form id="form4" method="post"><input type="text" runat="server" id="txtname" value="lili" /></form><script type="text/javascript">function post() {form4.action = "WebForm2.aspx";form4.submit();}</script>接受页 bel1.Text =Request.Form["txtname"];3、Session 和 ApplicationSession["name2"] = "sessontest";Application["name3"] = "applicationtest";bel2.Text =(string)Session["name2"];bel3.Text =(string)Application["name3"];4、静态变量发送页public static string statest="static string";protected void button2_Click(object sender, EventArgs e){Server.Transfer("WebForm2.aspx");}接受页 bel1.Text = WebForm1.statest;5、Context.Handler 获取控件发送页 <asp:TextBox ID="TextBox1" runat="server" Text="lilili"></asp:TextBox><asp:Button ID="button2" Text="跳转页⾯" runat="server" onclick="button2_Click"/> protected void button2_Click(object sender, EventArgs e){Server.Transfer("WebForm2.aspx");}接受页 //获取post传过来的对象if (Context.Handler is WebForm1){WebForm1 poster = (WebForm1)Context.Handler;bel1.Text = ((TextBox)poster.FindControl("TextBox1")).Text;}6、Context.Handler 获取公共变量发送页 public string testpost = "testpost";protected void button2_Click(object sender, EventArgs e){Server.Transfer("WebForm2.aspx");}接受页 //获取post传过来的对象if (Context.Handler is WebForm1){WebForm1 poster = (WebForm1)Context.Handler;bel2.Text = poster.testpost;}7、Context.Items 变量发送页protected void button2_Click(object sender, EventArgs e) {Context.Items["name"] = "contextItems";Server.Transfer("WebForm2.aspx");}接受页 //获取post传过来的对象if (Context.Handler is WebForm1){bel3.Text = Context.Items["name"].ToString(); }。
asp.netmvc通过修改路由规则来实现页面的URL多参数传递
mvc通过修改路由规则来实现页⾯的URL多参数传递修改MVC3中的路由规则在Global.asax.cs中,修改路由规则原路由规则routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default", // 路由名称"{controller}/{action}/{id}", // 带有参数的 URLnew { controller = "Home", action = "Index", id = UrlParameter.Optional} // 参数默认值);MapRoute⽅法在RouteCollectionExtensions⾥有6个重载版本!在这⾥我挑了⼀个参数最多的重载版本来进⾏介绍public static Route MapRoute(this RouteCollection routes,string name,string url,Object defaults,Object constraints,string[] namespaces)name:路由在路由列表⾥的唯⼀名字(两次MapRoute时name不能重复)url:路由匹配的url格式defaults:路由url {占位符} 的默认值constraints:url的 {占位符} 的约束namespaces:这个是⽤于设置路由搜索的控制器命名空间!⽐如,我们可以修改为下⾯的规则routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default", // 路由名称"{controller}/{action}/{uid}_{token}_{others}.html", // 带有参数的 URLnew { controller = "Home", action = "Index", uid = UrlParameter.Optional, token = UrlParameter.Optional,others = UrlParameter.Optional} // 参数默认值 );controller="Home", action="Index", uid=123, token=tokenvalue, others=othersvalue获取和上⾯的⽅法⼀样。
页面传递参数的方法
页面传递参数的方法页面传递参数的方法在我们日常的开发中是非常常见的。
当用户在页面上提交表单、点击链接或者执行其他操作时,我们需要将相关的参数传递给服务器端进行处理。
下面将介绍几种常见的页面传递参数的方法。
1. GET方法:GET方法是最常见也是最简单的一种传递参数的方式。
它通过URL的查询字符串来传递参数。
查询字符串是指URL中问号(?)后面的部分,参数名和参数值用等号(=)连接,多个参数之间使用&符号分隔。
例如,GET方法的特点是参数会显示在URL中,因此可以直接通过修改URL的方式修改参数。
此外,GET方法对传递的参数有长度限制(通常为2048字节),对于较大的参数不适用。
2. POST方法:POST方法通过HTTP请求的消息体来传递参数。
参数不会显示在URL中,因此相对于GET方法更加安全。
POST方法没有参数长度限制。
在使用POST方法传递参数时,通常需要借助表单来提交数据。
我们可以在HTML表单中定义多个input元素,通过设置其name属性来指定参数名称,用户在提交表单后,参数将会被封装到请求的消息体中。
3. 请求头:除了通过URL和消息体传递参数,我们还可以通过设置请求头来传递参数。
请求头是指HTTP请求中的一些元数据,比如Content-Type、User-Agent等。
我们可以通过自定义请求头来传递参数。
但需要注意的是,自定义请求头的使用涉及到HTTP协议规范,需要在服务端和客户端都进行相应的配置和解析。
4. Cookie:Cookie是一种在浏览器端保存数据的机制,可以用来传递参数。
在服务器端设置Cookie时,会将Cookie发送给浏览器,并存储在浏览器中。
在下一次请求同一个网站时,浏览器会自动将Cookie发送给服务器。
通过设置Cookie,我们可以在多个页面间传递参数。
但需要注意的是,Cookie 有大小限制(通常为4KB),如果需要传递较大的参数,可能会出现截断的情况。
基于ASP.NET平台页面传递参数比较研究
面 ,如果用 户刷新此页面 ,页面可能出现预想不到 的结果。 以上 3种方 法 ,各有 优 缺点 ,可 以根 据 自己的 需要 在
程 序页 面传递参 数方法 ,但是 缺少 程序 实例性 证 明 ,没有 系 统 比较 与分析各 种方法 的优点 与缺点 。用 程序 验证 方法分 析
页面重定 向及页 面传递参数 的基 本方法 ,利用 V S开发工具 给 出应 用实 例 。在 页面重定 向方面 ,分析 、比较各 种方 法在 响 应 速度 、占用计 算机 资源 、安 全性 、传递 限制 等 方面 差异 ; 在 页面传 递参数方 面 ,实 例验证两 类页 面传递 参数方 法 ,证
A PN T平 台下 页面传 递参数 时有选择 的使用 ,表 1 举 出 S .E 列
以 上 方法 的特 点 。 表 1 页面 重 定 向方 法 特 点
有效性 。该研 究有助 于开发 出高性能 BS动 态 We / b应用程序 。
关 键 词 :A PN T ; 面重 定 向 ;页面 传 参 S .E 页
The Co pa a i e Re e r h fTr nse rn r m e e so e g m r tv s a c o a f r i g Pa a t r fW b Pa e Ba e o t e Pl to m fASP. s d n h a f r o NET
.
o ih—pe om an e B/ n m i e pp iai n . p hg f r r c S dy a c W b a lc to s
Ke r s AS . T ; b P g dr c T a se r g P r me e so e y wo d : P NE We a e Re i t; r n f ri a a tr f e n W b
ASP.NET多层网络构架下的页间传值方法及应用研究
C E i—e , i g H A G We —ig H N Xnw nEhuU i. E hu4 60 , h a D p.o m ue zo n , zo 30 0 C i ) C r v n
Ab t a t I so c n e i n o p s a u mo g W e a e n A P. T mut・ y rn t o k f me r b p o r mmi g s r c :ti fi o v n e tt a sv l e a n b p g s i n S NE l l e e w r r ia a wo k We rg a n. T e p p rsu is t e me h n s fv u rn mi in i h lt l y r n t r r me o k r p s s s v r ls l t n o p s h a e t de h c a i m o a e ta s s o n t e mu i a e ewok f l s - a w r ,p o o e e e a o u i s t a s o
维普资讯
计 算
20 0 8年第 7期
文 童 编 号 : 0 -4 5 20 )70 0 - 1 62 7 (0 8 0 -1 30 0 4
机
与
现
代
化
总第 15期 5
JS A J Y IN A H A IU N I U X A D I U
1 多层 网 络构 架下 页 间传 值 机 制
A P N T的多层 架构 系统 结 构 规 范 一般 分 为 三 S.E 层 或 四层 。 即用 户服 务层 、 务 逻辑 层 、 据访 问层 业 数 三层 , 或将三层结构中的业务逻辑层分为业务外观层
asp.netmvc从后台向前台传送数组或JSON数据
mvc从后台向前台传送数组或JSON数据⽐如传送这样的数组{ { "build", "" },{ "analyse", "" },{ "openbook", "" }},可以把这样的数组转换成JSON数据,然后传递到前台.后台代码:1namespace myapp.Controllers2 {3public class HomeController : Controller4 {5public ActionResult Index()6 {7return View();8 }910public ActionResult GetData()11 {12string mystring = "[{ \"第⼀项\": \"build\", \"第⼆项\":\"\" },{ \"第⼀项\": \"Brett\", \"第⼆项\":\"\" },{ \"第⼀项\": \"openbook\", \"第⼆项\":\"\" }]"; 1314return Json(mystring, JsonRequestBehavior.AllowGet);15 }16 }17 }Index.cshtml ⾥⾯:1 <script type="text/javascript" src="~/myjquery/jquery.min.js"></script>2 <script type="text/javascript">3 function hhh() {4 $.ajax({5 url: "/myapp/Home/GetData",6 type: "GET",7async: false,8 dataType: "json",9 error: function () { alert("err"); },10 success: function (data) {11var json = JSON.parse(data);12 $.each(json, function (idx, obj) {13 alert(obj.第⼀项);14 alert(obj.第⼆项);15 });16 }17 });18 }19 </script>。
Asp net Web页面之间传值问题研究
Web页面之间传值问题研究摘要:在程序中,各个Web页面是相互孤立的,信息不能进行传递,如何高效地交换数据,是一个值得研究的问题。
Web页面之间传值的方法较多,但多数对性能消耗较大,利用Microsoft Visual Studio 2010开发平台,精选出三种性能高效的传值方法。
关键词: Web程序开发;Web页面传值0 引言 Web页面之间传值有多种方法,性能好的Web传值方法有以下3种。
1 查询字符串所谓查询字符串,是采用?name=wupingui之类的写法,在这一URL中,从问号(?)开始到结尾的部分就是查询字符串。
在网页之间相互跳转,常常需要传值,如何传值就需要使用查询字符串,其代码如下:/index.aspx?name=wuping&salary=3000在上述的url中,查询字符串有两个字段,一个字段是name,另外一个字段是salary,不论目标网页是相同Web应用程序中的网页还是外部网站的网页,查询字符串都可以顺利运行,而且目标网页不限于网页。
不过当目标网页是一个网页时,可以在目标网页中使用HttpRequest对象的QueryString属性来读取查询字符串的字段值。
在vs2010中新建一个页面employee.aspx,在页面上放置两个lable、两个TextBox和一个Button在该页面的Button1_Click事件中增加以下代码:protected void Button1_Click(object sender, EventArgs e){string name = this.TextBox1.Text;string salary = this.TextBox2.Text;Response.Redirect("salary.aspx?name=" + name +"&salary=" + salary + "",true);}在页面salary.aspx页面Page_Load事件上增加以下代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){string name = Request.QueryString["name"].ToString();string salary = Request.QueryString["salary"].ToString();Response.Write(“姓名为:”+ name + "");Response.Write(“工资为:”+ salary);}}在页面employee.aspx中,姓名文本框中输入wupingui,在工资文本框中输入2500。
Asp.net页面之间传递参数的几种方法
页面之间传递参数的几种方法第一种方法:通过URL链接地址传递send.aspx:protected void Button1_Click(object sender, EventArgs e){Request.Redirect("Default2.aspx?username=honge");}receive.aspx:string username = Request.QueryString["username"];这样可以得到参数值。
第二种方法:通过post方式send.aspx<form id="form1" runat="server" action="receive.aspx"method=post><div><asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><asp:TextBox ID="username" runat="server"></asp:TextBox> </div></form>receive.aspxstring username = Ruquest.Form["receive"];第三种方法:通过sessionsend.aspx:protected void Button1_Click(object sender, EventArgs e){Session["username"] = "honge";Request.Redirect("Default2.aspx");}receive.aspx:string username = Session["username"];这样可以得到参数值。
