Server对象,HttpServerUtility类,获取服务器信息
在Asp.net WebForm中,Server对象是HttpServerUtility类的实例。看下图:

而在Asp.net MVC中,Server对象是HttpServerUtilityBase对象。
来看下HttpServerUtility类提供的功能。顺便以一个ashx页面来展示一下该类的作用。
一、属性
MachineName 获取服务器的计算机名称。
ScriptTimeout 获取和设置请求超时值(以秒计)。
public void ProcessRequest(HttpContext context)
{
context.Response.Write(context.Server.MachineName); //输出 KISSDODOG-PC 获取计算机名
context.Response.Write(context.Server.ScriptTimeout); //输出 110
}
二、方法
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 传输数据的编码方案。
context.Response.Write(context.Server.MapPath("/")); //输出 C:\Users\Administrator\Desktop\WebApplication1\WebApplication1\ //该方法经常用,将虚拟路径转换为物理路径
context.Response.Write("<div style='HtmlEncode测试</div>"); //如果不编码,默认就是会被浏览器解析的
context.Response.Write(context.Server.HtmlEncode("<div style='HtmlEncode测试</div>")); //经过编码之后 原样输出
效果如下:

我们将那段经过HTML编码之后的字符解码之后再进行输出查看效果。
string str = "<div style='#39;>HtmlEncode测试</div>";
context.Response.Write(context.Server.HtmlDecode(str));
效果如下

从效果中我们看出,经过编码之后效果又变回被浏览器解析的了。
下面来看看Excute方法:
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处理的输出!");
}
效果:

很明显可以看到,Excute可以将请求再给另外一个处理程序,用于再次处理页面,当请求完毕后会返回到本页面继续执行,请求上下文,包括表单数据,URL信息都都会传送过去。Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
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方法占用资源最多.
text.ashx代码:
public void ProcessRequest(HttpContext context)
{
context.Server.Transfer("/Default.aspx");
}
Default.aspx代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("我是Default.aspx处理的输出!");
}
效果:

test.ashx页面代码:
public void ProcessRequest(HttpContext context)
{
string url = "http://www.xxx.com/username=zhangsan&Age=";
context.Response.Write(context.Server.UrlEncode(url)); //URL路径编码
context.Response.Write("<br/>");
string encodeurl = "http%3a%2f%2fwww.xxx.com%2fusername%3dzhangsan%26Age%3d";
context.Response.Write(context.Server.UrlDecode(encodeurl));
}
显示效果:

Server对象,HttpServerUtility类,获取服务器信息的更多相关文章
- php获取服务器信息类
<?php/**+------------------------------------------------------------------------------* 获取服务器信 ...
- .NET获取服务器信息,如服务器版本、IIS等
.NET获取服务器信息,如服务器版本.IIS等 .NET获取服务器信息,如服务器版本.IIS版本.数据库大小.网站系统空间占用大小.网站部署路径等等 .NET获取系统环境信息 #region 返回操作 ...
- Android之使用MediaMetadataRetriever类获取媒体信息
一.昨天.介绍了使用MediaMetadataRetriever类来获取视频第一帧:http://blog.csdn.net/u012561176/article/details/47858099,今 ...
- SQL Server 获取服务器信息
最近做了一个小工具,里面涉及到一些取SQL Server 服务器信息的一些东西,找了好久,找到一个不错的,贴出来分享. 系统函数 SERVERPROPERTY ( propertyname ) 包含要 ...
- Ajax获取服务器信息
xhr.onreadystatechange = function(){ if (xhr.readyState == 4){ if ((xhr.status >= 200 && ...
- ASP.NET获取服务器信息大全
p>服务器IP:<%=Request.ServerVariables["LOCAL_ADDR"]%></p> <p>服务器名:<%= ...
- Java运用第三方开源jar包sigar.jar获取服务器信息
通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 一.准备工作 (1)下载jar包和相关文件 资源链接:百度云:链接:https://pan.baidu.com/s/1nxccJHJ ...
- 使用Sigar获取服务器信息
Sigar简介 Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件.它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solari ...
- salt-api 获取服务器信息,minion批量执行cmd命令
import requests import json try: import cookielib except: import http.cookiejar as cookielib # 使用url ...
随机推荐
- React Js之组件(Component)与state
React Js组件: 组件(Component)是为了更好的维护我们的应用,可以在不影响其他的组件的情况下更新或者更改组件. state:是标记数据的来源,我们使state比较简单和单一,如果我们有 ...
- POJ 1753 bfs+位运算
T_T ++运算符和+1不一样.(i+1)%4 忘带小括号了.bfs函数是bool 型,忘记返回false时的情况了.噢....debug快哭了...... DESCRIPTION:求最少的步骤.使得 ...
- js获得焦点和失去焦点那些事
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- Spring MVC和Spring Data JPA之获取数据表数据放在List集合,显示在JSP页面
涉及到很多xml配置没写:只写具体实现的所有类 1.实体类 对应数据表SYS_SBGL, 主键是SBBM,主键是自动生成的uuid 数据表内容如下(有图有真相): package com.jinhet ...
- 软工作业No.3--团队作业:甜美女孩出击!
队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...
- DevExpress v18.1新版亮点——ASP.NET篇(一)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v18.1 的新功能,快来下载试用新版本!点 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(七)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...
- AVG Internet Security 2013 – 免费1年
AVG 是一款来自捷克的老牌的且非常优秀的免费杀毒软件,自推出以来就颇受用户好评!一直以来诸多的优点使其获得不少忠实用户,即便在中国也赢得了不少粉丝!AVG的安全产品广泛地被欧美以及大洋洲地区使用,并 ...
- vmware Esxi 回收Thin模式磁盘空间
本文来自:https://blog.csdn.net/happyfreeangel/article/details/85075179 第一部分 回收Thin模式磁盘空间背景:在使用Thin模式的磁盘, ...
- Python decode和encody
s = "我今天非常的困" bs = s.encode("utf-8")# 把字符串转化成utf-8格式bytes # bytes 不是给人看的, 给机器用的 ...