如何在页面和服务器间传值

如何在页面和服务器间传值,第1张

楼主说的是怎么在页面服务器之间传值,一个个都说ajax,是,没错,你们都学过很长时间的web编程了,用ajax进行异步通信貌似很火,但是楼主很显然是说基础的传值,你们这样不就是显摆么?
lymeng520更搞笑,到网上摘了点ajax只是就来答题了!!
既然楼主是来java板块,那么我说下jsp,servlet等基础传值方法。
比如你的一个页面(html,jsp啊什么的)上要在人点击一个按钮之后将输入的信息传给后台,那么首先要一个表单Form如<form id="xxx" name="xxx" action="actionjsp">这个意思就是后台处理程序是actionjsp这个文件,当然了,也可以是servlet。用一个form包含一个提交按钮,那么点击这个按钮之后就会自动将他所属于的form提交。
如:
<form id="xxx" name="xxx" action="actionjsp">
<!-- 这里放一些你的信息输入栏,比如输入名字啊什么的-->
<input type="text" name="userName" id="userName"><!--这里要用户输入一些名字信息-->
<input type="submit" value="提交">
</form>
这就是一个最最基础的传值给后台的代码片段。
你在actionjsp中就可以用requestgetParameter("userName");来获取别人填写的名字信息userName就是指<input type="text" name="userName" id="userName">中的name属性的值,用requestgetParameter("userName");就是获得了这个文本框内的东西了。
另一种常见方式就是session之间传值,比如你一个jsp页面中来个sessionsetAttribute("a",new String("aaa")),那么当这个jsp页面提交给后台处理程序(可能是一个jsp或一个servlet程序),那么再后台程序里面就可以用String aa=sessiongetAttribute("a")toString();来将之前那个Jsp页面中所设定的属性a的值"aaa"获取并赋给后台程序中定义的变量aa中。
当然,以上都是很基础的传递方式,楼主会了这些再看看ajax来进行异步通信那样才好些,如果什么都还不会就直接搞ajax那样不好。

直接在服务器A 上通过scp 命令 传到B上。
scp local_file remote_username@remote_ip:remote_folder
或者 scp local_file remote_username@remote_ip:remote_file
或者 scp local_file remote_ip:remote_folder
或者 scp local_file remote_ip:remote_file

用的是TCP/IP协议
TCP/IP即Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

过程:电脑将数据封装上一定的头部,转换成0,1等二进制信号在线路上传播给路由器,路由器根据路由表转发数据,直达目的主机,再拆去头部信息,将纯的数据交给应用程序。
c/s(客户机/服务器)有三个主要部件:数据库服务器、客户应用程序和网络。服务器负责有效地管理系统的资源,其任务集中于:
1数据库安全性的要求
2数据库访问并发性的控制
3数据库前端的客户应用程序的全局数据完整性规则
4数据库的备份与恢复
客户端应用程序的的主要任务是:
1提供用户与数据库交互的界面
2向数据库服务器提交用户请求并接收来自数据库服务器的信息
3利用客户应用程序对存在于客户端的数据执行应用逻辑要求
4网络通信软件的主要作用是,完成数据库服务器和客户应用程序之间的数据传输。
三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。
解决方案是:对这三层进行明确分割,并在逻辑上使其独立。
在三层C/S中, 表示层 是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行 *** 作,一般要使用图形用户接口 (GUI), *** 作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。
功能层 相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。表示层和功能层之间的数据交往要尽可能简洁。
数据层 就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统 (RDBMS)。因此一般从功能层传送到数据层的要求大都使用SQL语言。
在三层或N层C/S结构中,中间件 (Middleware) 是最重要的部件。所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统。该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。随着网络计算模式的发展,中间件日益成为软件领域的新的热点。中间件在整个分布式系统中起数据总线的作用,各种异构系统通过中间件有机地结合成一个整体。每个C/S环境,从最小的LAN环境到超级网络环境,都使用某种形式的中间件。无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递C/S链路,用以消除通信协议、数据库查询语言、应用逻辑与 *** 作系统之间潜在的不兼容问题。
三层C/S结构的优势主要表现在以下几个方面:
1利用单一的访问点,可以在任何地方访问站点的数据库;
2对于各种信息源,不论是文本还是图形都采用相同的界面;
3所有的信息,不论其基于的平台,都可以用相同的界面访问;
4可跨平台 *** 作;
5减少整个系统的成本;
6维护升级十分方便;
7具有良好的开放性;
8系统的可扩充性良好;
9进行严密的安全管理;
10系统管理简单,可支持异种数据库,有很高的可用性。

本文我们将讨论的是页面间数据传递的几种方法 对此希望能帮助大家正确的理解ASP NET页面间数据传递的用处以及便利性

引言

Web页面是无状态的 服务器对每一次请求都认为来自不同用户 因此 变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留 在用ASP NET 设计开发一个Web系统时 遇到一个重要的问题是如何保证数据在页面间进行正确 安全和高效地传送 提供了状态管理等多种技术来解决保存和传递数据问题 以下来探讨 NET 下的解决此问题的各种方法和各自的适用场合

ASP NET页面间数据传递的各种方法和分析

使用Querystring 方法

QueryString 也叫查询字符串 这种方法将要传递的数据附加在网页地址(URL)后面进行传递 如页面A aspx 跳转到页面B aspx 可以用Request Redirect( B aspx参数名称=参数值 )方法 也可以用超链接 页面跳转后 在目标页面中可用Ruquest[ 参数名称 ]来接收参数 使用QuerySting 方法的优点是实现简单 不使用服务器资源 缺点是传递的值会显示在浏览器的地址栏上 有被篡改的风险 不能传递对象 只有在通过URL 请求页时查询字符串才是可行的

利用隐藏域

隐藏域不会显示在用户的浏览器中 一般是在页面中加入一个隐藏控件 与服务器进行交互时把值赋给隐藏控件并提交给下一页面 隐藏域可以是任何存储在网页中的与网页有关的信息的存储库 使用隐藏域存入数值时用 hidden 控件 value=数值 取出接收数值时用 变量=hidden 控件 value 使用隐藏域的优点是实现简单 隐藏域是标准的HTML 控件 不需要复杂的编程逻辑 隐藏域在页上存储和读取 不需要任何服务器资源 几乎所有浏览器和客户端设备都支持具有隐藏域的窗体 缺点是存储结构少 仅仅支持简单的数据结构 存储量少 因为它被存储在页面本身 所以无法存储较大的值 而且大的数据量会受到防火墙和代理的阻止

ViewState

ViewState 是由ASP NET 页面框架管理的一个隐藏的窗体字段 当ASP NET 执行某个页面时 该页面上的ViewState 值和所有控件将被收集并格式化成一个编码字符串 然后被分配给隐藏窗体字段的值属性 使用ViewState 传递数据时可用 ViewState [ 变量名 ]=数值 在取出数据时用 变量=ViewState[ 变量名 ] 使用ViewState 的优点是 在对同一页的多个请求间自动保留值 不用服务器端资源 实现简单 视图状态中的值经过哈希计算和压缩 并且针对Unicode 实现进行编码 其安全性要高于使用隐藏域 缺点是因为ViewState 存储在页面本身 因此如果

存储较大的值 用户显示页和发送页时的速度可能会减慢 虽然视图状态以哈希格式存储数据 但它仍可以被篡改

使用Cookie

Cookie 可以在页面之间传递少量信息 可以存储在客户端的文本文件中 也可存储在客户端的内存中 Cookie 方法适用于存储少量页面中经常改动的信息 如为登陆过的网站保存登陆用户名 为用户输入提供方便 还有在一些用户自定义项目上保存用户的个性化设置 使用Cookie传递数据时可用 Response Cookies[ 键名 ]=键值 取出数据用 变量名=Request Cookies[ 键名 ] 使用Cookie 优点是 Cookie 存储在客户端 不使用服务器资源 实现简单 可配置到期时间 缺点是 可以存储的数据量比较少 由于Cookie 并不被所有的浏览器支持 而且还可能被用户禁止或删除 所以不能用于保存关键数据 另外 Cookie 保存的形式是简单的明文文本 在它里面不宜保存敏感的 未加密的 数据

使用application 变量

使用Application 变量也可以实现页面间的传值 Application变量是全局性的 所有用户共享一个Application 变量 一旦定义 它将影响到程序的所有部分 如果想在整个应用程序范围使用某个变量值Application 对象将是最佳的选择 存入数据时 把值添加到Application 变量里 Application[ 变量名 ]=数值 取出数据用 变量=Application[ 变量名 ] 在不需要使用该Application 时 要显式清除它 Application[ 量名 ]=null

Application 优点 易于使用 全局范围 可供应用程序中的所有页来访问 缺点 若保存数据的服务器端进程被损坏(如因服务器崩溃 升级或关闭而损坏) 那么数据就会丢失 所以利用Application 一定要有保底的策略 占用服务器端的内存 这可能会影响服务器的性能以及应用程序的可伸缩性

使用session 变量

Session 对象可以用来存储需要维护的指定对话的信息 不同的客户端生成不同的Session 对象 Session 用于存储特定于单独会话的短期信息 Session 的使用方法和格式与Application 相同

优点 易于实现 并且提供较高的安全性和持久性 可以应对IIS 重启和辅助进程重启 可在多进程中使用 缺点是耗用服务器端的内存 所以不要存储大量的信息 Session 最常见的用途是与Cookie 一起向Web 应用程序提供用户标识功能 Session也可用于不支持Cookie 的浏览器 但是 使用无Cookie 的Session 需要将会话标识符放置在查询字符串中 同样会遇到本文在查询字符串一节中陈述的安全问题

使用类的静态属性

这种方法是利用类的静态属性实现两个页面间的值传 定义一个包含静态属性的类 将要传送的值赋给静态属性 目标页面中可以通过静态属性获得源页面中要传的值

优点是可以方便传送多个数据 缺点是需要额外编程 增加程序设计的工作量 占用服务器内存

使用Server Transfer

通过Server Transfer 方法把执行流程从当前的ASPX 文件转到同一服务器上的另一个ASPX 页面的同时 可保留表单数据或查询字符串 做法是把该方法的第二个参数设置成True 在第一个页面用Server Transfer( 目标页面名 aspx true) 目标页面取出数据用 Ruquest Form[ 控件名称 ]或Ruquest QueryString[ 控件名称 ] 中还可以这样来用 代码如下

PReviousPage pg

pg =(PreviousPage)Context Handler

Response Write(pg Name)

说明 此段代码用在目标页面中取出传递的值 Previous Page 是原页面的类名 Name 是在原页面定义的属性 需要传递 的数据存入到此属性中

使用这种方法 需要写一些代码以创建一些属性以便可以 在另一个页面访问它 可以在另一个页面以对象属性的方式来 存取数值 这个方法在页面间值传递中是特别有用的 这种方法 不但简洁 同时又是面向对象的

Cache

Cache 具有强大的数据 *** 作功能 以键值对集合的形式存 储数据 可以通过指定关键字来插入和检索数据项 它的基于依 赖性的终止功能 使它能够精确控制如何并及时更新和消除缓 存中的数据 它可以内部进行锁定管理 不需要象Application 对象那样使用Lock()和Unlock()方法进行串行化管理 缺点是使用 方法较复杂 使用不当反而降低性能

不同页面跳转情况下可采用的传值方法

情况一 源页面可以跳转到目标页面 源页面传递数据给目标页面

使用查询字符串 将少量信息从一页传输到另一页以及不 存在安全性问题时 是一个简单常用的方法 使用Server Transfer方法 可传递表单数据或查询字符串到另一个页面 还可以 保存初始页的>

ftp客户和服务器间传递ftp命令时,使用的连接是tcp。

FTP协议是基于传输层TCP协议的。FTP的控制连接使用端口21,用来传输控制信息(如连接请求、传送请求等),数据连接使用端口20,用来传输数据。

控制连接的特点是:

1、以客户一服务器方式建立。

2、服务器以被动方式打开用于FTP的端口21,等待客户的连接。

3、客户则以主动方式打开TCP端口21,来建立连接。

4、控制连接始终等待客户与服务器之间的通信。该连接将命令从客户传给服务器,并传回服务器的应答。由于命令通常是由用户键入的,所以IP对控制连接的服务主要责任就是“最大限度地减小迟延”。

扩展资料:

FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13463862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-12
下一篇 2023-08-12

发表评论

登录后才能评论

评论列表(0条)

保存