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
浙公网安备 33010602011771号