Sunday, January 2, 2011

Creating an HttpHandler to handle request of your own extension

I have already posted about http handler in details before some time here. Now let’s create an http handler which will handle my custom extension. For that we need to create a http handlers class which will implement Ihttphandler. As we are implementing IHttpHandler we need to implement one method called process request and another one is isReusable property. The process request function will handle all the request of my custom extension.

so Here is the code for my http handler class.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;

namespace Experiement
{
public class MyExtensionHandler:IHttpHandler
{
public MyExtensionHandler()
{
//Implement intialization here
}

bool IHttpHandler.IsReusable
{
get { return true; }
}

void IHttpHandler.ProcessRequest(HttpContext context)
{
string excuttablepath = context.Request.AppRelativeCurrentExecutionFilePath;

if (excuttablepath.Contains("HelloWorld.dotnetjalps"))
{
Page page = new HelloWorld();
page.AppRelativeVirtualPath = context.Request.AppRelativeCurrentExecutionFilePath;
page.ProcessRequest(context);

}
}
}
}
Here in above code you can see that in process request function I am getting current executable path and then I am processing that page.

Now Lets create a page with extension .dotnetjalps and then we will process this page with above created http handler. so let’s create it.

Creating your own extension

It will create a page like following.

Extension

Now let’s write some thing in page load Event like following.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Experiement
{
public partial class HelloWorld : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Hello World");
}
}
}

Now we have to tell our web server that we want to process request from this .dotnetjalps extension through our custom http handler for that we need to add a tag in httphandler sections of web.config like following.

<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" path="*.dotnetjalps" type="Experiement.MyExtensionHandler,Experiement"/>
</httpHandlers>
</system.web>
</configuration>
That’s it now run that page into browser and it will execute like following in browser

Browser

That’s you.. Isn’t it cool.. Stay tuned for more.. Happy programming..
Technorati Tags: ,,
Shout it
Share:

2 comments:

Your feedback is very important to me. Please provide your feedback via putting comments.

Support this blog-Buy me a coffee

Buy me a coffeeBuy me a coffee
Search This Blog
Subscribe to my blog

  

My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews