很多,常用的有response.getOutputStream()获得字节输出流,如做image下载用;getWriter()获得字符流,按字符输出流获取,如使用json返回值等。sendRedirect重定向;。。。。。看servlet规范即可
② 在ASP程序中,Response对象的方法有哪些,各代表什么功能
Response方法负责将信息传递给用户的对象是Response,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。
一,Response.write
在Response中write方法是使用最频繁的一个了,write就是写:将指定的字符串写到当前的
HTTP
输出。
1,write.asp
<%
response.write("hello,world"&"<br>")
Randomize
response.write
"任意数是"&rnd()&"<br>"
%>
response.write后面为所显示的信息,可以用括号包含,也可以直接书写(注意和response.write之间有空格)。
书写的字符串信息或者HTML代码相关,用引号包含;而ASP本身的函数或变量则不需要,直接用即可。
并且无论字符串信息、HTML代码、函数还是变量之间进行连接都是采用&号(针对vbscript)
以上遇到一个随机函数rnd(),该函数返回一个小于
1
但大于或等于
0
的值。
需要注意的是在调用
Rnd
之前,先使用无参数的
Randomize
语句初始化随机数生成器,该生成器具有基于系统计时器的种子。
若缺少Randomize,则无法继续生成随机种子。
下面一个利用随机函数的例子,产生随机背景颜色效果:
运行代码框
<script
language=vbs>
Randomize
'首先Randomize产生随机种子
suij=rnd()
'接着将函数值赋变量suij
suij=replace(suij,".","9")
'然后对变量suij中小数点符号转换为数字9
suij=left(suij,6)
'再取变量中的左6位
document.write
"<body
bgcolor=#"&suij&">"
'最后应用到背景颜色中去
</script>
[Ctrl+A
全部选择
提示:你可先修改部分代码,再按运行]
当然要产生指定范围的随机整数,请使用以下公式:
Int((upperbound
-
lowerbound
+
1)
*
Rnd
+
lowerbound)
这里,
upperbound
是此范围的上界,而
lowerbound
是此范围内的下界。
运行代码框
<script
language=vbs>
Do
Until
choose
=
vbNo
value
=
Int((41
*
Rnd)
+
60)
'产生
60
到
100
之间的随机数。
msgbox
value
choose
=
MsgBox
("Roll
again?
",
vbYesNo)
Loop
</script>
[Ctrl+A
全部选择
提示:你可先修改部分代码,再按运行]
随机函数在做考试系统的时候非常有用,当然你也可以用来自己摇奖,拿个头彩也分点我就行了:)
二,Response.end
这是Response常用的一种方法,使
Web
服务器停止处理脚本并返回当前结果,文件中剩余的内容将不被处理。
主要放在一页多功能的ASP页中,为让程序运行到此,抑或往下的程序没必要再执行显示……
2,end.asp
<%response.write
now()
response.end
'程序执行显示到此结束
response.write
rnd()%>
三,Response.clear
该方法主要作用是清除缓冲区中的所有
HTML
输出,但该方法只清除响应正文而不清除响应标题。
该方法和end方法似相反,end是到此结束返回上面的结果,而clear却是清除上面的执行,然后只返回下面的结果。
3,clear.asp
<%response.write
now()
response.clear
'以上程序到此全被清除
response.write
rnd()%>
下面通过一个例子来仔细看看end
and
clear
4,end2clear.asp
<%
filepath=request.servervariables("script_name")
user=Request.Form("username")
pwd=Request.Form("password")
%>
<form
method="POST"
action="<%=filepath%>">
name:<input
type="text"
name="username"><br>
pwd:<input
type="password"
name="password"><br>
<input
type="submit"
value="submit">
</form>
<%
If
user="cnbruce"
and
pwd="cnbruce"
Then
response.write
"采用clear方法,上面的程序结果将清除。"
response.clear
'
清空存储在缓存中的页面
Else
response.write
"采用end方法,下面的程序将停运。"
Response.End
'
立即停止脚本处理,并将缓存中的页面输出
End
If
%>
如果你只看到“刷新”链接就表明clear方法已经生效<br>
<a
href="<%=filepath%>">刷新</a>
以上程序中,当输入用户名和密码同为cnbruce的时候会发现clear方法的处理结果,反之是另外一个效果。
四,Response.redirect
Redirect
方法是让浏览器立即重定向到程序指定的URL地址。这在根据客户的不同响应,为不同的客户指定不同的页面,或根据不同的情况指定不同的页面时,显得非常重要。
该方法是立即生效的,在其后的脚本都不执行。
5,redirect.asp
<%response.redirect("http://www.cnbruce.com/")%>
以上四则运用属于Response对象的几个比较重要的方法:write、end、clear、redirect等当然方法还有:AddHeader、AppendToLog、BinaryWrite、Flush……
早说过,一个ASP对象除了对象方法外,还有对象属性
那response对象的属性有哪些呢?
五,Response.ContentType
ContentType
属性指定服务器响应的
HTTP
内容类型。如果未指定
ContentType,默认为
text/html。
6,contenttype.asp(非text/html的)
<%
Response.ContentType
=
"text/HTML"
%>
<%
Response.ContentType
=
"image/GIF"
%>
<%
Response.ContentType
=
"image/JPEG"
%>
<%
Response.ContentType
=
"text/plain"
%>
<%
Response.ContentType
=
"image/JPEG"
%>
六,Response.charset
Charset
属性将字符集名称附加到
Response
对象中
content-type
标题的后面,用来设置服务器响应给客户端的文件字符编码。
7,charset.asp
<%
Response.charset
=
"big5"
%>
中文显示,但采用的big5繁体的编码,所以看到的是乱码。
当然Response.ContentType和Response.charset应用得比较少了。直接在head头部属性里面添加就OK了。
七,Response.expires
该属性指定了在浏览器上缓冲存储的页,距过期还有多少时间。
如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。
但若设置
response.expires=0,则可使缓存的页面立即过期。
这是一个较实用的属性,当客户通过
ASP
的登陆页面进入
WEB
站点后,应该利用该属性使登陆页面立即过期,以确保安全。
引用一个经典的例子
8,expires.asp
<%
Response.Expires
=
0
Response.Expiresabsolute
=
Now()
-
1
Response.AddHeader
"pragma","no-cache"
Response.AddHeader
"cache-control","private"
Response.CacheControl
=
"no-cache"
%>
八,Response.status
设置服务器要响应的状态行的值。Response.status="状态描述字符串",字符串可以为一个三位整数或一串说明文字组成,但必须防在<html>之前。
9,status.asp
<%
Response.Status
=
"401
Unauthorized"
%>
九,Response.buffer
比较重要的一个,值为true
or
false。该属性指示是否缓冲页输出。
引用:当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了
Flush
或
End
方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置
Buffer
属性。因此应该在
.asp
文件的第一行调用
Response.Buffer。
Response.buffer=true
③ 请说出HttpServletResponse的3个方法的用法,并说出每种方法的作用是什么
HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。
(1)setStatus方法用来设置Servlet向客户端返回的状态码,它用来设置没有出错的状态。如果Servlet运行出错,Servlet可以使用sendError方法设置状态码,如sendError(int sc)方法设置错误状态代码。sendError(int sc,String msg)方法除了设置状态码,还向客户发出一条错误信息。
(2)setHeader可以指定特定名称的头信息的值,addDateheader,addIntHeader,setDateHeader,setIntHeader可以加入或理性特定时间或整数型头信息。
(3)addCookie方法可以在Web服务器响应中加入Cookie对象,这个对象将被浏览器所保存。Cookie机制也被用来维护会话状态。
(4)sendRedirect方法向客户发出临时重新导向的响应。它生成的响应状态码为302。该响应给了客户一个新的URL风趣。如果缓冲器已经被清空,这个方法会弹出一个IllegalStateException例外。