ASP.NET中Server对象的用法
ASP.NET中Server对象的用法
ASP.NET中Server对象的用法ASP.NET中Server对象是context的一个属性,是HttpServerUtility类的一个对象
一、Server对象的常用属性
(1).MachineName
(2).ScriptTimeout:属性用于设置脚本程序执行的时间,适当地设置脚本程序的ScriptTimeout可以提高整个Web应用程序的效率。
语法如下:
Server.ScriptTimeout=time;(以s(秒)为单位)
ScriptTimeout属性的最短时间默认为90 s。对于一些逻辑简单、活动内容较少的脚本程序该值已经足够。但在执行一些活动内容较多的脚本程序时,就显得小了些。比如访问数据库的脚本程序,必须设置较大的ScriptTimeout属性值,否则脚本程序就不能正常执行完毕。
代码
public void ProcessRequest(HttpContext context)
{
context.Response.Write(context.Server.MachineName); //输出 KISSDODOG-PC 获取计算机名
context.Response.Write(context.Server.ScriptTimeout); //输出 110
}
二、Server对象的主要方法
ClearError 清除前一个异常。
CreateObject 已重载。 创建 COM 对象的一个服务器实例。
CreateObjectFromClsid 创建 COM 对象的服务器实例,该对象由对象的类标识符 (CLSID) 标识。
Execute 已重载。 在当前请求的上下文中执行指定资源的处理程序,然后将执行返回给调用它的页。
GetLastError 返回前一个异常。
HtmlDecode 已重载。 对已被编码以消除无效 HTML 字符的字符串进行解码。
HtmlEncode 已重载。 对要在浏览器中显示的字符串进行编码。
MapPath 返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。 该方法经常使用。将虚拟路径转换为服务器物理路径。
Transfer 已重载。 终止当前页的执行,并为当前请求开始执行新页。
TransferRequest 已重载。 异步执行指定的 URL。
UrlDecode 已重载。 对字符串进行解码,该字符串针对 HTTP 传输进行了编码并在 URL 中发送到服务器。
UrlEncode 已重载。 编码字符串,以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输。
UrlPathEncode 对 URL 字符串的路径部分进行 URL 编码并返回编码后的字符串。
UrlTokenDecode 将 URL 字符串标记解码为使用 64 进制数字的等效字节数组。
UrlTokenEncode 将一个字节数组编码为使用 Base 64 编码方案的等效字符串表示形式,Base 64 是一种适于通过 URL 传输数据的编码方案。
实例
1、Server.MapPath
context.Response.Write(context.Server.MapPath("/")); //输出 C:\\Users\\Administrator\\Desktop\\WebApplication1\\WebApplication1\\ //该方法经常用,将虚拟路径转换为物理路径
context.Response.Write("<li style='background-color:red'>HtmlEncode测试</li>"); //如果不编码,默认就是会被浏览器解析的
context.Response.Write(context.Server.HtmlEncode("<li style='background-color:red'>HtmlEncode测试</li>")); //经过编码之后 原样输出
效果如下:
2、Excute方法
使用Server对象的Execute方法可以在当前页面中执行同一Web服务器上的另一页面,当该页面执行完毕后,请求上下文,包括表单数据,URL信息都都会传送过去。Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
实例
test。ashx页面:
public void ProcessRequest(HttpContext context)
{
context.Response.Write("我是第一个text.ashx处理结果");
context.Response.Write("<br/>");
context.Server.Execute("/Default.aspx");
context.Response.Write("我是第二个text.ashx处理结果");
}
Default。aspx页面代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("我是Default.aspx处理的输出!");
}
效果:
Server.Transfer与Response.Redirect方法类似,只是Response.Redirect的作用相似,不同之处在于,Response.Redirect是客户端发送请求到服务器,服务器执行Response.Redirect之后,返回302,浏览器接收到请求后,再次发送一次请求到要跳转的URL,而Server.Transfer的跳转完全是在服务器端,浏览器根本不知道已经跳转了,因此路径显示的仍然是原路径。
在网络状态较好的情况下,Redirect(url)方法效率最高!! 可重定向到同一台或非同一台服务器上的aspx或非aspx(html)资源
Server.Transfer方法和Server.Execute方法最灵活!! 但只能转到同一Application目录下,也有可能导致不期望的结果发生
Server.Execute方法占用资源最多.
3、字符串的编码与解码
在某些情况下,可能需要在网页中显示“段落标记<p>”之类的内容,而不希望浏览器将其中的<p>解释为HTML语言中的段落标记;在上述场合,应当调用Server对象的HtmlEncode方法对要在浏览器中显示的字符串进行编码
有时候,在传递参数时,是将数据附在网址后面传递,但是如果遇到一些如“#”等特殊字符的时候,就会读不到这些字符后面的参数。所以需要在传递特殊字符的时候,需先将要传递的内容先以UrlEncode编码,这样才可以保证所传递的值可以被顺利读到。
另外有些服务器对中文不能很好的支持,这时候也需要利用UrlEncode对其进行编码,以被服务器所识别。
protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write(Server.HtmlEncode("粗体标记为:<B>粗体文字</B>"));//HtmlEncode对字符串进行HTML编码并返回编码后的字符串,所以这个原样输出
Response.Write("<br>");
Response.Write(Server.HtmlDecode("粗体标记为:<B>粗体文字</B>"));//HtmlDecode对字符串进行HTML解码并返回解码后的字符串,所以这个后面加粗
Response.Write("<A href='1.aspx?data=" + Server.UrlDecode("name@#163.com") + "'>没有编码的参数内容</A><br>");//在1.aspx页面输出:name@
Response.Write("<A href='1.aspx?data=name@#163.com'>没有编码的参数内容</A><br>");//在1.aspx页面输出:name@
Response.Write("<A href='1.aspx?data=" + Server.UrlEncode("name@#163.com") + "'>编码的参数内容</A><br>");//在1.aspx页面输出:name@#163.com
Response.Write(Server.UrlDecode("name@#163.com"));//对字符串进行URL解码,这里输出:name@#163.com
Response.Write("<br>");
Response.Write(Server.UrlEncode("name@#163.com"));//对字符串进行URL编码,这里输出:name%40%23163.com
Response.Write("<br>");
Response.Write(Server.UrlDecode("中文"));//输出:中文
Response.Write("<br>");
Response.Write(Server.UrlEncode("中文"));//输出:%e4%b8%ad%e6%96%87
Response.Write("<br>");
Response.Write(Server.UrlEncode("english"));//输出:english
Response.Write("<br>");
Response.Write(Server.UrlDecode("english"));//输出:english
}
- sqlserver基本知识(sql server学习基础之内存初探)
- SQL Server与Oracle数据类型的对应关系
- SQL SERVER存储过程调试
- sql server数据库权限(SQL Server中通用数据库角色权限的处理详解)
- sql死锁进程保护(SqlServer查询和Kill进程死锁的语句)
- sql server 视图操作(Sql Server 视图数据的增删改查教程)
- SQL Server批处理注意的事项
- windowsftp服务与配置实验仿真(Wing FTP Server FTP服务器端安装使用教程)
- sql server 数值类型运算(SQL SERVER2012中新增函数之字符串函数CONCAT详解)
- sql server2012下载安装教程(SQL Server 2012 安装与启动图文教程)
- sqlserver判断条件输出字符(SQL Server查询条件IN中能否使用变量的示例详解)
- sqlserverselect选择两个参数(SQL SERVER中SELECT和SET赋值相同点与不同点推荐)
- SQL Server中row_number的用法
- sqlserver常用基本数据类型有哪些(浅述SQL Server的语句类别 数据库范式 系统数据库组成)
- sqlserver完全删除教程(sql server编写archive通用模板脚本实现自动分批删除数据)
- sqlserver数据库的对象有哪些(详解SQL Server数据库架构和对象、定义数据完整性)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
- 冯骥才 年意(冯骥才年意)
- ()
热门推荐
- centos 测试环境搭建(centos7下安装并配置supervisor守护程序的操作方法)
- css垂直居中图解(全面总结使用CSS实现水平垂直居中效果的方法)
- docker目录映射不起作用(关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法)
- css隐藏div(CSS控制DIV层显示和隐藏的实现方法)
- 云主机和虚拟主机的区别(云主机有哪些虚拟化技术?)
- centos7 apache配置(CentOSLinux下的apache服务器配置与管理方法分享)
- layui导航栏(使用layui实现左侧菜单栏及动态操作tab项的方法)
- css3菜单特效(超酷炫 CSS3垂直手风琴菜单)
- VS2012、VS2010、VS2008常用的快捷键有哪些
- sql死锁进程保护(SqlServer查询和Kill进程死锁的语句)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9