ASP内置对象Response,Request(转载)

//本文转载http://hi.baidu.com/sunday_jia/blog/item/1053fbec0a6a014878f055da.html              http://www.cnblogs.com/freeskycd/archive/2010/03/03/1677750.html

 

//参考文章 http://blog.sina.com.cn/s/blog_49f801210100049x.html

#############################################################################################

一、Response对象的属性和方法

Response就是服务器响应浏览器请求的文件或数据,可以重定向,发送给浏览器,设置cookie


(一)Response属性:


(1)Buffer属性,用语指定是否缓冲输出,常与后面的Clear,Flush,或End方法配合使用.为正确使用这些方法,Bluffer属性应在Asp文件的第一行被设置,如Response.Buffer
(2)Charset属性.该属性将字符集名称附加到Response对象中Content-type标题的后面。对不含该属性的ASP页面,Content-type标题为:Content-type:text/html
(3)ContentType属性。指定服务器响应的HTTP内容类型。若为指定该属性,默认为"text/html"
(4)Expires属性.这是一个很实用的属性,用语指定浏览器上缓冲存储的也面离过时还有多少时间,若用户在某个页面过期又回到该页,就会显示缓冲区中的页面,若设Response.Expires=0,着可使缓存中的页面立即过期
(5)ExpiresAbsolute属性。用语指定缓存在浏览器中的页面确切的到过期日期和时间。在到过期之前,若用户又返回该页,则显示缓存中的页面,若为指定时间,则该页面当天午夜过期,若为指定日期,则在给页面在脚本运行当天的指定时间到期,例如<%Response.ExpiresSbsolute=#Mar 10,2001 9:30:20#%>
(6) Status


(二)Response方法


(1)clear 方法。用语清除缓冲区中的所用的HTML输出的正文,但不清楚标题,当Response.Buffer设为true时,clear方法使用时才不会出错。该方法可处理错误情况
(2)End 方法.该方法可使用Web服务器停止处理脚本并返回当前的处理结果,如果此时Response.Buffer为true,可调用Response.End可将缓存输出
(3)Flush方法,用于立即发送缓存区中的输出,若Response.Buffer不为true,会导致输出错误
(4)Redirect方法,使浏览器立即重定向到程序指定的URL地址。一旦使用了该方法。任何在页中显式设置的响应正文内容都将被忽略。但此方法不向客户端发送该页设置的其他HTTP标题,而是产生一个将重定向URL作为链接高寒的自动响应正文。如:
<%Response.redirect"http://www.sohu.com"%>
(5)Write方法。该方法使用最多,其作用是将指定的表达式的值写到当前的HTTP网叶上输出。
(6)AddHeader
(7) AppendTolog
Response的集合
Response只有一个集合就是cookie.
语法格式: Response.Cookie.cookie名[(key)|attribute]=cookie值

 

 二、Request的属性和方法

request.getParameter

request.setAttribute()

request.getAttribute

1.String sjlxdm=request.getParameter("sjlxdm");方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。

request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,代表HTTP请求数据;
2.将数据保存在session中(取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。

request.setAttribute("sjlxdm", sjlxdm);
3.在另一个页面获取保存在session中的值
String sjlxdm=(String)request.getAttribute("sjlxdm");
modelAndView.addObject("jsrq_gz", jsrq_str);

4、Request.UrlReferrer详解

使用前需要进行判断:

      if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer.PathAndQuery != null)
      {
            string previousURL = Request.UrlReferrer.PathAndQuery;
      }

 

 

实例说明:

     

Request.UrlReferrer可以获取客户端上次请求的url的有关信息。
这样我们就可以通过这个属性返回到“上一页”,
示例如下
   

1.      首先在Page_load中获得并储存该信息

Page_load(object obj,EventArgs e)
             {
                     if(!IsPostBack)
                    {
                         if(Request.UrlReferrer!=null) 
                        {
                             ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
                        }
                    }
             }

l        页面回发后会改变Request.UrlReferrer,将其指向当前页面,所以需要进行判断:只有在第一次请求页面的时候才储存该信息

l        因为可能“上一次”的url不存在,所以需要进行判断,只有在Request.UrlReferrer存在的情况下才进行储存
            

 

2.      然后在返回函数中使用该信息

void Return()

{

    if(ViewState["UrlReferrer"]!=null)

        Response.Redirect(ViewState["UrlReferrer"].ToString();

}

在使用Request.UrlReferrer时还要注意:
1.  如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2.  如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则    Request.UrlReferrer返回空。因

为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息  
3.  点击刷新按钮不会改变Request.UrlReferrer

posted on 2010-10-27 10:03  傻笑  阅读(592)  评论(1)    收藏  举报