欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

动态网站开发技术学习3:ASP.NET内置对象之Response对象

程序员文章站 2022-05-26 23:13:47
response对象是httprespone类的一个实例。该类主要是封装来自asp.net操作的http相应信息。response 对象将数据作为请求的结果从服务器发送到客户中,...

response对象是httprespone类的一个实例。该类主要是封装来自asp.net操作的http相应信息。response

对象将数据作为请求的结果从服务器发送到客户中,并提供有关响应的消息。它可用来在页面中输出数据,在

页面中跳转,还可以传递各个页面的参数。

response对象的常用属性和方法及其说明:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

一向页面中输出数据

语法格式

response对象通过write方法或writefile方法在页面输出数据,输出的对象可以是字符,字符串,字符数组,对

象或文件。

用response输出数据时,asp.net最重要的语法是:response.write(...);

实例:

(1)建立一个asp.net空网站,将网页的标题设置为“在页面中输出数据”。

(2)右击资源管理器中的项目名称,选择“添加新项”命令,在弹出的添加新项的对话框中选择“文本文件”,名称设

置为“writefile.txt”。

(3)在writefile.txt文本文件中输入如下文本:

english can be displayed normally.
for example,this is a book.

但是中文文字需要设置一下:

即在response.write开始写上如下的语句:

response.contentencoding = system.text.encoding.utf8;或response.contentencoding = system.text.encoding.default;

(4)在default.x.cs文件中找到page_load函数,在函数中输入如下内容:

 

        //response.contentencoding = system.text.encoding.utf8; 
        //response.contentencoding = system.text.encoding.default;
        char c='a';
        string s=用response打印字符串;
        char[] carray = { '用', 'r', 'e', 's', 'p', 'o', 'n', 's', 'e', '打', '印','字','符','数','组',};
        page p = new page();
        response.write(输出单个字符:+c+

); response.write(输出一个字符串: + s +
); response.write(输出字符数组:); response.write(carray,0,carray.length); response.write(
); response.write(输出一个对象: + p +
); response.write(输出一个文件: +
); response.writefile(@~writefile.txt);

 

(5)启动调试运行的结果为:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

二向页面输出图像文件

1)利用writefile方法

语法格式

该方法将图片文件以文件流的方式输出到客户端页面。该方法使用使用之前,必须通过contenttype属性定义文

件流是什么类型文件。

response.contenttype=image/jpeg;

response.writefile(包含图片的文件名);

实例

(1)我们可以利用windows自带的画图工具简易画一个图像,也可以从网上下载一个图像,保存在本地硬盘文

件系统中,文件名设置为tempimage.jpg。

(2)在本地硬盘文件系统中找到tempimage.jpg,将其复制到网站资源管理器中。右击资源管理器,选择“粘贴”选

项,将此文件粘贴到本项目中。

(3)在default.aspx.cs文件中找到page_load函数,在函数中输入如下内容:

        response.contenttype = image/jpeg;
        response.writefile(@~	empimage.jpg);

(4)运行的结果为:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

2)用binarywrite方法输出图像

语法格式

通过response对象的binarywrite方法输出二进制图像格式如下:

byte[] buffer=new byte[整型文件长度];

response.binarywrite(buffer);

实例

(1)从网上找一个*.gif文件,保存到本地硬盘文件系统中,文件名设置为picture.gif。

(2)右击网站资源管理,选择“添加现有项”,弹出“添加现有项”对话框,找到你保存图片的本地位置,点击“添

加”即可。

(3)在default.aspx.cs文件中找到page_load函数,在函数中输入如下内容:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.io;//添加的命名空间


public partial class _default : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
    {
        //打开图片文件,并存在文件流中
        filestream stream = new filestream(server.mappath(picture.gif),filemode.open);
        long filesize = stream.length;//获取流的长度
        byte[] buffer=new byte[(int)filesize];//定义一个二进制数据
        stream.read(buffer,0,(int)filesize);//从流中读取字节块并将该数据写入给定缓冲区中
        stream.close();//关闭流
        response.binarywrite(buffer);//将图片输出在页面上
        //设置页面的输出格式
        response.contenttype = image/gif;
        response.end();//中止页面的其他输出
    }
}

(4)运行的结果为:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

三页面跳转

response对象的redirect和appendheader方法均可实现页面重定向功能。redirect方法较为常用,但该方法在

页面进行跳转,即在页面打开后才执行的页面重定向。而appendheader方法是在页面打开前执行的页面重定向。前

者还会执行页面的一些程序,而后者不会。

1appendheader方法

语法格式

response.appendheader(name,value)

参数name为http头,参数value为http头的值。

http头是http协议规定的请求和响应消息都支持的头域内容。http头是页面通过http协议访问页面时,最

先响应的请求和响应消息,例如http头中的location,location头用于将页面重定向到另一个页面,与redirect方法

相似。

实例

(1)建立一个新的网站,默认主页为default.aspx。在default.aspx.cs文件中找到page_load函数,在函数中输入

如下内容:

        response.status = 302 object moved;
        response.appendheader(location,https://www.baidu.com);

(2)运行的结果为:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

2redirect方法

语法格式

response.redirect(重定向网页方法)方法

实例

(1)建立一个新的网站,默认主页为default.aspx。在default.aspx.cs文件中找到page_load函数,在函数中输入

如下内容:

    response.redirect(@~/redirect.aspx);

(2)右击网站资源管理器,选择“添加新项”,在“添加新项”对话框中选择“web窗体”,命名为redirect.aspx。

(3)在redirect.aspx窗体中,添加代码:
       

这是重定向页!!!

(4)运行的结果为:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

四response对象与javascript结合使用

有时候,我们需要在后台服务器通过c#语言来执行前台客户端的javascript代码,有一种方法就是采用response

对象。采用response.write()方法将javascript脚本写入客户端页面的

中并执行,我们来说说常用的

三种方法:

1弹出提示对话框

alert在javascript中主要用于警告作用,例如将要关闭一个网页时,可以提醒用户网页将要关闭。

response.write(<script>alert('这是提示对话框')</script>);

2打开窗口

window.open用于打开新的窗口,语法格式如下:

response.write(<script>window.open(url,windowname[,loctaion])</script>);

可以对打开的新窗口设置文档的名称,窗口的宽高等一些参数。

3关闭窗口

window.close用于关闭浏览器窗口。

response.write(<script>window.close()</script>);

实例

(1)建立一个新的网站,默认主页为default.aspx,打开设计视图,从工具箱拖入三个button控件,分别设置为按

钮1,按钮2,按钮3。

(2)分别双击三个button控件,添加click事件的代码为:

    protected void button1_click(object sender, eventargs e)
    {
        response.write(<script>alert('这是提示对话框')</script>);
    }
    protected void button2_click(object sender, eventargs e)
    {
        //在新窗口中打开newwindow.aspx,各参数如下设置
        string str = <script>window.open('newwindow.aspx','','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')</script>;
        response.write(str);
    }
    protected void button3_click(object sender, eventargs e)
    {
        response.write(<script>window.close()</script>);
    }

(3)右击网站资源管理器中的“添加新项”,在“添加新项”的对话框中选择“web窗体”,设置为newwindow.aspx。在

页面中添加代码:

    

这是window.open打开的新窗体!!!

(4)运行的结果为:

单击第一个按钮:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

点击第二个按钮:

动态网站开发技术学习3:ASP.NET内置对象之Response对象

点击第三个按钮,我运行了google,firefox,2345浏览器,第三个按钮均没有弹出提示框,最后使用ie打开有了

效果(这是浏览器设置的原因):

动态网站开发技术学习3:ASP.NET内置对象之Response对象