ASP内置对象—Request、Response 、Server、Application 、ObjectContent (二)

Response (应答)对象

Request 对象,用于在HTTP请求期间,访问任何客户端浏览器传递给服务器的信息,包括通过URL传递的参数信息、使用GET方法或POST方法传递的HTML表单数据、Cookie和用户认证信息等。


页面重定向,并传递参数(防乱码处理)

Response.Redirect("~/modifyReader.aspx?key="+ Server.UrlEncode(key));

 

Cookie的存储

  • 通过Response对象的Cookie集合存储。

<span style="font-size:24px;"><span style="white-space:pre">	</span>Response.Cookies["username"].Value= "徐凤竹";</span>


  • 通过HttpCookie对象的实例存储。

<span style="font-size:24px;"><span style="white-space:pre">	</span>HttpCookiecookie = new HttpCookie("username","徐凤竹");
<span style="white-space:pre">	</span>Response.Cookies.Add(cookie);</span>

  • 多值Cookie的存储。
    • <span style="font-size:24px;">Response.Cookies["LoginInfo"]["username"] = "徐凤竹";
      Response.Cookies["LoginInfo"]["password"]= "123456";</span>
  • <span style="font-size:24px;">    HttpCookie cookie = new HttpCookie("LoginInfo");
        cookie.Values ["username"]="徐凤竹";
        cookie.Values["password"]= "123456";
        Response.Cookies.Add(cookie);</span><span style="font-size:18px;">
     </span>

缓冲页面输出

        Response 对象的Buffer属性用于指定是否缓冲页面输出。如果缓冲页输出,只有当页面的所有服务器脚本处理完毕,或者Flush、End方法被调用,服务器才将输出发送给客户端。

        Buffer属性必须在任何输出之前进行设置,也就是说,应该在.asp文档的首行调用Response.Buffer,当服务器将信息发送给客户端就不能再设置Buffer属性了。


Server 对象语法

Server 对象的语法格式:

Server[.property|method]

语法说明:

  • property,对象的属性(ScriptTimeout属性,指定脚本超时期限)。
  • method,方法
    • CreateObject,创建组件对象、
    • HTMLEncode,对字符串进行HTML编码。
    • MapPath,将相对路径或虚拟路径映射成服务器上的物理路径。
    • URLEncode,对字符串进行URL编码。

 

Session (会话)对象

         Session 对象可以用于存储特定的用户会话所需的信息。这样,当用户在应用程序的页面之间跳转时,存储在session对象中的变量不会丢失,而是在整个会话中始终存在。

        当用户请求来自应用程序的web页时,如果该用户还没有会话,则web服务器将自动创建一个session对象。当会话过期或被放弃后,服务器将终止该会话。

        我们希望后台管理在多长时间没有操作的情况下,让session失效,重新登录,可以使用session.timeout=5,以分钟为单位,表示5分钟之内没有其他操作,就失效,或者在配置文件中配置<sessionStatetimeout="5" mode="InProc" />也可以。

 

简单说说session的几个方法的区别:

Session.clear():表示将会话中所有的session的键值都清空,但是session还是依然存在,同等于Session.RemoveAll()

Session[“admin”]=null:表示将制定的键的值清空,并释放掉,和session[“admin”]=””不一样,它清空了,但是session不释放,同等于session.Remove(“name”);

Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。


        主要的不同之处在于当使用Session.Abandon时,会调用Session_End方法(InProc模式下)。当下一个请求到来时将激发Session_Start方法。而Session.Clear只是清除Session中的所有数据并不会中止该Session,因此也不会调用那些方法,Abandon方法用于主动结束会话,若没有调用该方法,当会话超时后,也会自动结束当前会话。

 

补充:

清除cookie

A、

<span style="font-size:24px;">tpCookie cookie =System.Web.HttpContext.Current.Request.Cookies.Get("tuser");
cookie.Expires =DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);</span>

B、

<span style="font-size:24px;">tpCookie httpCookie =Request.Cookies["httpCookie"];
httpCookie.Expires =DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie);</span>

AB两种方法都可以

Session 与Cookie的区别

  • Session是存在服务器端的;而Cookie是存在客户端的。
  • Session更不需要Cookie来支持和不会受浏览器端的设置影响,可记录每个访问者的信息,独立在服务器端,比Cookie安全。
  • Session是存在内存中的,浏览器关闭它也就“死”了;Cookie是以文件方式存在的,可以修改其“存活”时间。


Application (应用程序)对象

    使用Application对象可以在应用程序的所有用户之间进行数据信息共享,并在服务器运行期间持久的保存数据。

Application 对象的语法格式:

Application[.collection|method](variable)

语法说明如下:

  • collection,对象的集合。
    • Contents ,获取应用程序中的静态对象
    • StaticObject ,获取应用程序中的静态对象。
  • method,对象方法。
    • Lock ,锁定应用程序对象。
    • Unlock ,解锁应用程序对象 。
  • variable,对象的成员变量。

此外,Application对象还包括Application_OnStart(应用程序开始)和Application_OnEnd(应用程序结束)等两个事件,这两个事件都必须放在Global.asa文件中。

 

在应用程序中共享数据

Application 对象的Contents集合和StaticObjects集合包含应用程序中所有的共享信息数据,与Session对象的相应集合基本类似。


安全地共享数据

        因为多个用户可以共享Application 对象,所以需要Lock方法和Unlock方法以确保多个用户无法同时更改Application 对象。

        Lock方法用于阻止其他用户修改存储在Application 对象中的对象,以确保在同一时刻仅有一个用户可以修改和存取Application 对象。

        Unlock 方法用于解除使用Lock方法锁定的Application 对象,之后其他用户才可以对该Application 对象中的对象进行访问。如果用户没有显示的调用Unlock方法,则服务器将在ASP文件结束或超时后,解除对Application 对象的锁定。

<span style="font-size:24px;">Application.Lock
Application.Unlock</span>
 

总结

  • ASP内置对象
  • Request 对象,包括读取验证字段信息、读取Cookie数据、读取表单或URL传递的数据、读取服务器环境变量等内容。
  • Response 对象,包括写入Cookie数据、缓冲页面输出、页面重定向、将数据输出到页面等内容。
  • Server 对象,包括脚本超时期限、创建组件对象、对字符串进行HTML或URL编码、映射到服务器物理路径等。
  • Session 对象,包括读取会话中的数据、读取会话标识、删除会话对象等内容。
  • Application 对象,包括在应用程序中共享数据、安全地共享数据等内容。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
ASP二进制下载是指在ASP网页中实现通过代码下载二进制文件的操作。以下是一段示例代码: ``` <% ' 定义下载文件的路径和文件名 Dim filePath, fileName filePath = "文件路径" ' 可以从查询字符串或表单中获取文件名,也可以直接指定 fileName = Request.QueryString("filename") ' 检查文件是否存在,如不存在则给出提示 If Not File.Exists(filePath & fileName) Then Response.Write "文件不存在!" Response.End End If ' 打开要下载的文件 Dim objStream Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = 1 ' 二进制模式 objStream.Open objStream.LoadFromFile filePath & fileName ' 设下载的内容类型和文件名 Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename=" & Server.URLEncode(fileName) ' 将文件输出到客户端 Response.BinaryWrite(objStream.Read) ' 关闭文件流和响应对象 objStream.Close Set objStream = Nothing %> ``` 以上代码首先定义了要下载的文件的路径和文件名,然后检查文件是否存在,如不存在则给出提示。接下来,通过创建`ADODB.Stream`对象并设为二进制模式,打开要下载的文件并将其加载到文件流中。然后,设下载的内容类型为"application/octet-stream",并设文件名为要下载的文件名。最后,通过`Response.BinaryWrite`方法将文件二进制数据输出到客户端,完成文件下载操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值