ASP.Net中自定义Http处理及应用之HttpModule篇
HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response)。HttpHandler功能的实现通过实现IHttpHandler接口来达到。而HttpModule实现了类似于ISAPI Filter的功能。
HttpModule的实现
HttpModules实现了类似于ISAPI Filter的功能,在开发上,通常需要经过以下步骤:
编写一个类,实现IhttpModule接口
实现Init 方法,并且注册需要的方法
实现注册的方法
实现Dispose方法,如果需要手工为类做一些清除工作,可以添加Dispose方法的实现,但这不是必需的,通常可以不为Dispose方法添加任何代码。
在Web.config文件中,注册您编写的类
下面是一个HttpModules的示例,在这个示例中,只是简单的注册了HttpApplication 的BeginRequest 和 EndRequest事件,并且通过这些事件的实现方法,将相关的信息打印出来。
例1:
using System;
using System.Web;
namespace MyModule{
public class MyModule : IHttpModule {
public void Init(HttpApplication application) {
application.BeginRequest += (new
EventHandler(this.Application_BeginRequest));
application.EndRequest += (new
EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source, EventArgs e) {
HttpApplication Application = (HttpApplication)source;
HttpResponse Response=Application.Context.Response;
Response.Write("<h1>Beginning of Request</h1><hr>");
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpResponse Response=Application.Context.Response;
Response.Write("<h1>End of Request</h1><hr>");
}
public void Dispose() { }
}
}
程序的开始引用了如下名称空间:
using System;
using System.Web;
因为HttpApplication、HttpContext、HttpResponse等类在System.Web中定义,因此,System.Web名称空间是必须引用的。
MyModule类实现了IhttpModule接口。在Init方法中,指明了实现BeginRequest 和EndRequest 事件的方法。在这两个方法中,只是简单的分别打印了一些信息。
下面,在Web.config文件中注册这个类,就可以使用这个HttpModule了,注册的方法如下:
<configuration>
<system.web>
相关文档:
数据绑定控件比较(Reapter\DataList\GridView\DatailsView\FormView):
1.插入功能方面:
DetailsView和FormView具有插入功能,其它控件没有
2.模板
DataList\FormView\Repeater三种必须编辑模板,而
GridView和DetailsView只有在将列转换成模板列以后才会出现各种模板.
3.自动分页功能
GridView ,DetailsView和FormView ......
1.前台页面一般不用gridview datalist treeview updatepanel 等控件,因为他们会生成很多我不想要的代码。而且嵌套一大堆table
2.用repeater+div+css+ul li已经足够我做很多东西了。
3.发布后的页面,可以把一些空行和换行 和一些不必要的空格去掉,尽量减少aspx页面的容量。提高加载速度。
4.在页面的title写上本页内容 ......
<system.web>
<!--********出错页的设定********-->
<customErrors mode="On" defaultRedirect="~/Error.htm"> </customErrors> ......
新建一个默认的ASP.NET MVC2应用程序,系统会默认的生成包含基本功能的应用程序,查看这些生成的代码,可帮助我们理解ASP.NET MVC2。下面是对URL路由的理解,以备忘。
一、Global.asax.cs中的代码:
public class MvcApplication : System.Web.HttpApplication
{
&n ......
模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性。你可能还记得ASP.NET v1.x中的几个模板化控件(例如DataList和Repeater控件)。ASP.NET 2.0仍然支持这些控件,但在模板中绑定数据的语法已经被简化和改善了。本文将讨论在数据绑定控件模板中绑定数据的多种方法。
数据绑定表达式
ASP.NET 2.0改善了模板中 ......