Request

 

该对象用于检索从浏览器向服务器所发送的请求中的信息。在按下“提交”按钮时,Request对象将读取和提取通过HTTP请求发送的参数。在用户提交表单时,包含在输入控件中的数据将与表单一起被发送。

当向服务器提交数据时,分为两种方式:

Get提交:

  1. //get
  2. string userName = Request.QueryString["txtUserName"].ToString();
  3. string userPwd = Request.QueryString["txtUserPwd"].ToString();
  4. Response.Write("登录的用户名为" + "userName ");

Post提交:

  1. //post
  2. string userName = Request["txtUserName"].ToString();
  3. string userPwd = Request["txtUserPwd"].ToString();
  4. string userName = Request.Form.Get("txtUserName").ToString();
  5. string userPwd = Request.Form.Get("txtUserPwd").ToString();

Post与Get的不同:

1,Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

比如你有一个页面index.html,这个页面有一个文本域,名称是:a,值是123,你用get提交后,你的url会变成:index.html?a=123,在获取的时候,就是从浏览器中回去参数了,而不是表单!

2,Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。

3,Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post。

4,Get是Form的默认方法。

Response

 

主要用于服务器端向客户端发送数据,其中可以利用Response.Write直接向客户发送信息,也可以利用response.Redirect进行重新定位客户端到另一个URL上去,当然也可以利用Response.Cookies来设置Cookies的值。

Response和Request区别:

Application

 

此对象用于共享应用程序级信息。即,维护整个应用程序的一组变量,这些变量可以由所有访问该应用程序的用户共享。

使用Application对象来使整个ASP应用程序的所有用户共享数据,把一个ASP程序中的不同用户、不同页面联系在一起

Session

 

该对象用于存储在多个页面调用之间特定用户的信息。存储访问者的用户信息,多个页面可以访问该信息,但是两个访问者之间不能共享该信息。

每个用户以这台web服务器建立连接时,他就创建链接,并与这个服务器建立了一个session,并且服务器就自动为其分配一个sessionID,用以识别这个用户的唯一身份。特别说明的是Session对象的变量只是对一个用户有效,不同的用户的会话信息用不同的Session对象的变量存储。在网络环境下Session对象的变量是有生命周期的,如果在规定的时间没有对Session对象的变量刷新,系统会终止这些变量。

Server

 

该对象用于访问服务器上的资源。来获取你现在请求的那个服务器中的一些信息。例如:访问服务器上创建和安装的组件。

  1. //单击加载,上传服务器
  2. protected void btnLoad_Click(object sender, EventArgs e)
  3. {
  4. this.FileUpload1.PostedFile.SaveAs(Server.MapPath("upFile") + "\\1.jpg");
  5. this.Image1.ImageUrl = Server.MapPath("upFile") + "\\1.jpg";
  6. }

Cookie:

 

在Web程序设计中,它表示一个长度不超过4K的一个普通的文本文件。这个文件在用户的硬盘上,可以由Web浏览器进行访问。由WEB服务器嵌入用户浏览器中,以便标识用户,且随同每次用户请求发往WEB服务器。这样可以让服务器识别是哪个用户。

Global.asa文件:

 

用来存储事件信息和由应用程序全局使用的对象。global.asa是ASP的一个全局应用文件.主要是定义Session对象和Application对象,以及相应的事件.

Session对象和Application对象都有两个事件,要使用他们的事件,就必须首先在Global.asa文件文件中声明,该文件对于用户来说是不可见的,文件名也是固定的,并且该文件还必须放在应用程序的根目录下,每个应用程序只能拥有一个Global.asa文件.

举例:查看在线人数,在global.asa中编写

  1. public class Global : HttpApplication
  2. {
  3. void Application_Start(object sender, EventArgs e)
  4. {
  5. // 在应用程序启动时运行的代码
  6. BundleConfig.RegisterBundles(BundleTable.Bundles);
  7. AuthConfig.RegisterOpenAuth();
  8. Application.Add("count", 0);
  9. Application["online"] = 0;
  10. }
  11. void Application_End(object sender, EventArgs e)
  12. {
  13. //  在应用程序关闭时运行的代码
  14. }
  15. void Application_Error(object sender, EventArgs e)
  16. {
  17. // 在出现未处理的错误时运行的代码
  18. }
  19. void Session_Start(object sender, EventArgs e)
  20. {
  21. Session.Timeout = 1;
  22. Application.Lock();
  23. Application["count"] = (int)Application["count"] + 1;
  24. Application["online"] = (int) Application["online"] +1;
  25. Application.UnLock();
  26. }
  27. void Session_End(object sender, EventArgs e)
  28. {
  29. Application.Lock();
  30. Application["online"] = (int)Application["online"] - 1;
  31. Application.UnLock();
  32. }
  33. }

在web应用程序中编写:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. Response.Write(Application["count"].ToString());
  4. }

以上这些对象提供了相当多的功能,但是不同的对象的应用场合不同,这需要我们加深理解,在以后的实践中应用。

最新文章

  1. 自定义UITableViewCell实现左滑动多菜单功能LeftSwipe
  2. 利用fsockopen可实现异步成功访问
  3. 2016 CCPC 合肥赛区 平行四边形//打铁记录..... 背锅还是我在行 此处@ctr 233
  4. 腾讯云centos 7部署 dotnetcore+Angular2 实践
  5. 用于主题检测的临时日志(452a49c2-4455-430f-a1cc-bbcd2d1944dd - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  6. C语言断言
  7. jQuery $.ajaxSend()
  8. linux下更改ssh登录前的banner信息
  9. MFC中应用对象的成员:窗口指针m_pMainWnd说明
  10. 用video标签流式加载
  11. MongoDB简单操作(java版)
  12. groovy 从jsonList中读取某个字段
  13. Nuget挂了的解决方法(转)
  14. 20145332卢鑫 WEB基础
  15. es-hadoop saveToEsWithMeta
  16. Spark Streaming updateStateByKey案例实战和内幕源码解密
  17. js中startWith、endWith 函数不能在任何浏览器兼容的问题
  18. Redis(RedisTemplate)使用hash哈希
  19. 反片语 (Ananagrams,UVa 156)
  20. Delphi 实现多线程编程的线程类 TThread

热门文章

  1. Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)
  2. JavaScript------Throw和Try-Catch的使用
  3. Android无线测试之—KEYCODE键值对应大全
  4. [多媒体] m3u8简介
  5. Mac下安装apk(命令形式)
  6. 《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别
  7. 延迟任务和循环任务ScheduledExecutorService
  8. telnet --- no route to host solution "iptables -F " in the target machine
  9. [转载]js复制内容加版权声明代码
  10. Java 之 GUI 编程