学习Asp.Net时候,亲爱的于老师讲解了五大对象。趁着知识还没有忘记,趁热打铁,好好的总结一下。下面跟着我学习一下Asp.Net的五大对象。
Application
在没有学习Asp.Net之前就已经知道了Application这个东东,但是当时不是很了解,也不知道到底是什么,学习了Asp.Net才知道它是其中的一个对象。
Application:全局应用程序类。在服务器内存中存储数量较少又独立于用户请求的数据。由于它的访问速度非常快而且只要应用程序不停止,数据一直存在,我们通常在Application_Start的时候去初始化一些数据,在以后的访问中可以迅速访问和检索。当然,Application对象除了基本的初始化事件,还有与Start相对应的End事件,即Application_End,这个事件中通常要写一些程序关闭时候要运行的代码。程序在运行出现错误的时候,Application对象还提供了Application_Error事件来处理错误,可以在该事件下面书写程序出错时候要运行的代码。接下来要写的就是Application的这些事件并不是凭空书写的,他们需要存放在一个名为Global.asax中。Global.asax(通常我们不改名)是一个用来处理应用程序全局的事件。打开文件,系统已经为我们定义了一些事件的处理方法。用法如下:
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
</script>
Session
Session对象和Application对象很相似。含义是:会话。可以保存一段时间内运行的网页内容,只要不进行删除记录操作,都可以在下次运行的时候很快速度的找到之前运行的网页,便于提高运行效率。它也有和Application对象相似的事件。用法如下:
<script runat="server">
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为InProc 时,才会引发 Session_
End 事件
// 如果会话模式设置为 StateServer 或 SQLServer,则不会引发该事件
}
</script>
Server
ASP.NET中Server对象是context的一个属性,是HttpServerUtility类的一个对象。
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 传输数据的编码方案。 |
Request
三种获取表单值的方法:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Request三种获取表单值得方法。
#region 对于post方法递交表单的获取值方法
string userName = Request.Form.Get("txtUserName").ToString();
string userPwd = Request.Form.Get("txtUserPwd").ToString();
#endregion
#region 对于get方法递交表单的获取值方法
string userName = Request.QueryString["txtUserName"].ToString();
string userPwd = Request.QueryString["txtUserPwd"].ToString();
#endregion
#region 对两者方法都适用的方法,运用Reuqest的索引值去获取所要求的表单值
string userName = Request["txtUserName"].ToString();
string userPwd = Request["txtUserPwd"].ToString();
#endregion
Response.Write("登陆的用户名为:" + userName + ";密码为:" + userPwd);
if (userName=="a"&&userPwd=="b")
{
Response.Redirect("WebForm2.aspx");
}
else
{
Response.Redirect("login.html");
}
}
get和post方法的区别如下:
get方法提交,直接定义一个url就可以传值。缺点是,传的值是明码显示的。因为浏览器显示的字符是有长度的,所以他的数据显示的时候是受限制的。
post提交,是把数据作为一个整个集合进行提交,对于post方法传值的方法传的参数不会在url中用明码显示。
Response
response对象,最主要的用到的方法是respone.write(string)和responst.redirect(url).
response.write(string)的作用是从服务器端向客户端返回数据(写数据)。response.rediec(“url”)的作用是在服务器端重定向另一个网页。