A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊双 中级黑马   /  2012-10-16 10:47  /  1650 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

页面传值有哪些方式保持?最好举例讲解,谢谢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

正序浏览
因为HTTP协议是无状态的啊,服务器不知道上次浏览器做了什么请求,所以每次给服务器发请求的时候要依靠Cookie,请求的时候把上次的值带上再传给服务器,服务器运算完后把值响应给浏览器的Cookie中。但因为Cookie是存储在客户端,用户可能会禁用Javascript脚本,所以用Session,它是把数据以键值对的形式存储在服务器(这种方式有一个回收机制,比如用Session后会在服务器分配一个区域存储,但如果一段时间不给服务器发请求,服务器就会释放这个Session占据的存储空间),这样即使客户端禁用了JavaScript也不影响了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
老师视频里不是都讲过了吗?http协议是无记忆无状态的协议,所以服务器不会知道上次客户端做了什么请求,因为状态已经丢失。如果要实现跨页面读取数据(不同页面共享数据),最简单的可以使用Cookie,因为Cookie是和站点相关的,在每次浏览器和服务器之间发送或返回数据时,都会携带上Cookie。在http协议那块,老师做了讲解。还有就是可以使用基于Cookie实现的Session。用表单实现跨页面数据的话,会比较麻烦,Cookie的出现就是为了解决这个问题。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
html页面代码
  1. <form action ="index.aspx" method="post">
  2.    用户名称:<input name="username" type="text" />
  3.    <br />
  4.    用户密码:<input name="userpwd" type="text" /><br />
  5.    <br />
  6.    &nbsp;<input name="Submit1" type="submit" value="提交" onclick="return Submit1_onclick()" />


  7.    <input name="Reset2" type="reset" value="重置" />
  8. </form>
复制代码
然后aspx页面代码
  1. protected void Page_Load(object sender, EventArgs e)
  2.      {
  3.          string userName = Request.Form["username"].ToString();
  4.          string userPwd = Request.Form.Get("userpwd").ToString();
  5.          Response.Write("用户名称:" + userName + "<br/>"+"用户密码:" + userPwd);
  6.      }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马