ASP.NET基础 专题
您的位置:csharp > ASP.NET基础专题 > ASP.NET服务端
ASP.NET服务端
作者:--    发布时间:2019-11-20 09:53:51

在这章中,我们研究页面生命周期以及页面如何包含各种控件。页面本身被实例化为一个控制对象。所有的web窗体基本上都是asp.net page类的实例。 page类具有以下对应于内部对象的非常有用的属性:

  • session
  • application
  • cache
  • request
  • response
  • server
  • user
  • trace

我们将在适当的时候讨论这些对象。在本教程中,我们将学习server对象,request对象和response对象。

server对象

asp.net中的server对象是system.web.httpserverutility类的一个实例。 httpserverutility类提供了许多执行各种作业的属性和方法。

服务器对象的属性和方法
httpserverutility类的方法和属性通过asp.net提供的内部服务器对象公开。

下表提供了属性的列表:

属性 描述
machinename 服务器计算机的名称
scripttimeout 获取和设置请求超时值,以秒为单位。

下表列出了一些重要的方法:

编号 方法 描述
1 createobject(string) 创建由其progid(编程id)标识的com对象的一个实例。
2 createobject(type) 创建由其类型标识的com对象的一个实例。
3 equals(object) 确定指定的对象(object)是否等于当前的对象。
4 execute(string) 在当前请求的上下文中执行指定虚拟路径的处理程序。
5 execute(string, boolean) 在当前请求的上下文中执行指定虚拟路径的处理程序,并指定是否清除querystringform集合。
6 getlasterror 返回以前的异常。
7 gettype 获取当前实例的类型。
8 htmlencode 将普通字符串更改为具有合法html字符的字符串。
9 htmldecode 将html字符串转换为普通字符串。
10 tostring 返回表示当前对象的字符串。
11 transfer(string) 对于当前请求,终止当前页面的执行,并使用指定的页面url路径开始执行新页面。
12 urldecode 将url字符串转换为普通字符串。
13 urlencodetoken urlencode相同,但是在包含base64编码数据的字节数组上。
14 urldecodetoken urldecode相同,但在包含base64编码数据的字节数组上。
15 mappath 返回与服务器上指定的虚拟文件路径对应的物理路径。
16 transfer 将执行转移到当前应用程序中的另一个网页。

httprequest对象

httprequest对象是system.web.httprequest类的一个实例。 它表示使页面加载到浏览器中的http请求的值和属性。

这个对象提供的信息被更高层次的抽象(web控制模型)所包围。 但是,此对象有助于检查某些信息,如客户端浏览器和cookie。

请求对象的属性和方法

下表提供了request对象的一些值得注意的属性:

编号 属性 描述
1 accepttypes 获取客户端支持的mime接受类型的字符串数组。
2 applicationpath 获取服务器上的asp.net应用程序的虚拟应用程序根路径。
3 browser 获取或设置有关请求客户端的浏览器功能的信息。
4 contentencoding 获取或设置实体主体的字符集。
5 contentlength 指定客户端发送的内容的长度(以字节为单位)。
6 contenttype 获取或设置传入请求的mime内容类型。
7 cookies 获取客户端发送的cookie的集合。
8 filepath 获取当前请求的虚拟路径。
9 files 获取客户端上传的文件的集合,采用多部分mime格式。
10 form 获取表单变量的集合。
11 headers 获取http标头的集合。
12 httpmethod 获取客户端使用的http数据传输方法(如getposthead)。
13 inputstream 获取传入的http实体主体的内容。
14 issecureconnection 获取一个值,该值指示http连接是否使用安全套接字(即https)。
15 querystring 获取http查询字符串变量的集合。
16 rawurl 获取当前请求的原始url。
17 requesttype 获取或设置客户端使用的http数据传输方法(getpost)。
18 servervariables 获取web服务器变量的集合。
19 totalbytes 获取当前输入流中的字节数。
20 url 获取有关当前请求的url的信息。
21 urlreferrer 获取有关链接到当前url的客户端先前请求的url的信息。
22 useragent 获取客户端浏览器的原始用户代理字符串。
23 userhostaddress 获取远程客户端的ip主机地址。
24 userhostname 获取远程客户端的dns名称。
25 userlanguages 获取客户端语言首选项的排序字符串数组。

下表列出了一些重要的方法:

编号 方法 描述
1 binaryread 对当前输入流执行指定字节数的二进制读取。
2 equals(object) 确定指定的对象是否等于当前对象。 (从object继承。)
3 gettype 获取当前实例的类型。
4 mapimagecoordinates 将传入的图像字段形式参数映射到适当的x坐标和y坐标值。
5 mappath(string) 将指定的虚拟路径映射到物理路径。
6 saveas 将http请求保存到磁盘。
7 tostring 返回表示当前对象的字符串。
8 validateinput 对通过cookiesformquerystring属性访问的集合进行验证。

response对象

response对象表示服务器对客户端请求的响应。 它是system.web.httpresponse类的一个实例。

在asp.net中,响应对象在向客户端发送html文本时不起任何重要作用,因为服务器端控件具有嵌套的,面向对象的方法来呈现自己。

但是,httpresponse对象仍然提供了一些重要的功能,如cookie功能和redirect()方法。 response.redirect()方法允许将用户转移到另一个页面。

response对象的属性和方法

下表提供了response对象的一些值得注意的属性:

编号 属性 描述
1 buffer 获取或设置一个值,指示是否缓冲输出并在完成响应完成处理后发送。
2 bufferoutput 获取或设置一个值,指示是否在完成页面处理完成后缓存输出并发送。
3 charset 获取或设置输出流的http字符集。
4 contentencoding 获取或设置输出流的http字符集。
5 contenttype 获取或设置输出流的http mime类型。
6 cookies 获取响应cookie集合。
7 expires 获取或设置在浏览器上缓存的页面到期之前的分钟数。
8 expiresabsolute 获取或设置从缓存中删除缓存信息的绝对日期和时间。
9 headerencoding 获取或设置一个编码对象,该对象表示当前标题输出流的编码。
10 headers 获取响应标头的集合。
11 isclientconnected 获取一个值,指示客户端是否仍连接到服务器。
12 output 启用将文本输出到传出的http响应流。
13 outputstream 启用二进制输出到传出http内容主体。
14 redirectlocation 获取或设置http location标头的值。
15 status 设置返回给客户端的状态行。
16 statuscode 获取或设置返回给客户端的输出的http状态码。
17 statusdescription 获取或设置返回给客户端的输出的http状态字符串。
18 substatuscode 获取或设置一个限定响应状态码的值。
19 suppresscontent 获取或设置一个值,指示是否向客户端发送http内容。

下表列出了一些重要的方法:

编号 方法 描述
1 addheader 将http标头添加到输出流。提供addheader是为了与早期版本的asp兼容。
2 appendcookie 基础架构将http cookie添加到内部cookie集合中。
3 appendheader 将http标头添加到输出流。
4 appendtolog 将自定义日志信息添加到internet信息服务(iis)日志文件。
5 binarywrite 将一串二进制字符写入http输出流。
6 clearcontent 清除缓冲流中的所有内容输出。
7 close 关闭与客户端的套接字连接。
8 end 将所有当前缓冲的输出发送到客户端,停止页面的执行,并引发endrequest事件。
9 equals(object) 确定指定的对象(object)是否等于当前对象。
10 flush 将所有当前缓冲的输出发送到客户端。
11 gettype 获取当前实例的类型。
12 pics 将http pics-label标头附加到输出流。
13 redirect(string) 将请求重定向到新的url并指定新的url。
14 redirect(string, boolean) 将客户端重定向到新的url。指定新的url以及当前页面的执行是否应该终止。
15 setcookie 更新cookie集合中的现有cookie。
16 tostring 返回表示当前对象的字符串。
17 transmitfile(string) 将指定的文件直接写入http响应输出流,而不将其缓冲在内存中。
18 write(char) 将一个字符写入http响应输出流。
19 write(object) 将对象写入http响应流。
20 write(string) 将一个字符串写入http响应输出流。
21 writefile(string) 将指定文件的内容直接写入http响应输出流作为文件块。
22 writefile(string, boolean) 将指定文件的内容直接写入http响应输出流作为内存块。

示例

下面的简单例子有一个文本框控件,用户可以输入名字,一个按钮将信息发送到服务器,一个标签控件用于显示客户端的url。

打开visual studio,创建一个空的网站项目:serverside,参考下图 -

在项目名称上点击右键,并添加一个web窗体文件(defualt.aspx),参考下图 -

其内容如下:

<%@ page language="c#" autoeventwireup="true" codefile="default.aspx.cs" inherits="_default" %>

<!doctype html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>服务器端示例</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:label id="label1" runat="server" text="请输入姓名:"></asp:label>
            <asp:textbox id="textbox1" runat="server"></asp:textbox>
            <asp:button id="button1" runat="server" text="提交" onclick="button1_click" />
            <br />
            <br />
            <asp:label id="label2" runat="server"></asp:label>
        </div>
    </form>
</body>
</html>

打开 default.cs,添加button1_click事件处理的代码:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;

public partial class _default : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
    {

    }

    protected void button1_click(object sender, eventargs e)
    {
        if (!string.isnullorempty(textbox1.text))
        {

            // access the httpserverutility methods through
            // the intrinsic server object.
            label1.text = "欢迎您, " + server.htmlencode(textbox1.text) + ". <br/> 当前 url 是 " + server.urlencode(request.url.tostring());
        }
    }

}

运行该项目(页面),得到类似以下结果:

输入一个名字:h3,然后提交,得到以下结果 -


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册